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 52e97435abSPratap Nirujogiconfig PINCTRL_AMDISP 53e97435abSPratap Nirujogi tristate "AMDISP GPIO pin control" 54*813b1a1aSGeert Uytterhoeven depends on DRM_AMD_ISP || COMPILE_TEST 55e97435abSPratap Nirujogi depends on HAS_IOMEM 56e97435abSPratap Nirujogi select GPIOLIB 57e97435abSPratap Nirujogi select PINCONF 58e97435abSPratap Nirujogi select GENERIC_PINCONF 59e97435abSPratap Nirujogi help 60e97435abSPratap Nirujogi The driver for memory mapped GPIO functionality on AMD platforms 61e97435abSPratap Nirujogi with ISP support. All the pins are output controlled only 62e97435abSPratap Nirujogi 63e97435abSPratap Nirujogi Requires AMDGPU to MFD add device for enumeration to set up as 64e97435abSPratap Nirujogi platform device. 65e97435abSPratap Nirujogi 66a0f160ffSJoey Goulyconfig PINCTRL_APPLE_GPIO 67a0f160ffSJoey Gouly tristate "Apple SoC GPIO pin controller driver" 68a0f160ffSJoey Gouly depends on ARCH_APPLE 69a0f160ffSJoey Gouly select PINMUX 70a0f160ffSJoey Gouly select GPIOLIB 71a0f160ffSJoey Gouly select GPIOLIB_IRQCHIP 72a0f160ffSJoey Gouly select GENERIC_PINCTRL_GROUPS 73a0f160ffSJoey Gouly select GENERIC_PINMUX_FUNCTIONS 74a0f160ffSJoey Gouly select OF_GPIO 75a0f160ffSJoey Gouly help 76a0f160ffSJoey Gouly This is the driver for the GPIO controller found on Apple ARM SoCs, 77a0f160ffSJoey Gouly including M1. 78a0f160ffSJoey Gouly 79a0f160ffSJoey Gouly This driver can also be built as a module. If so, the module 80a0f160ffSJoey Gouly will be called pinctrl-apple-gpio. 81a0f160ffSJoey Gouly 8200df0582SJesper Nilssonconfig PINCTRL_ARTPEC6 8300df0582SJesper Nilsson bool "Axis ARTPEC-6 pin controller driver" 8400df0582SJesper Nilsson depends on MACH_ARTPEC6 8500df0582SJesper Nilsson select PINMUX 8600df0582SJesper Nilsson select GENERIC_PINCONF 8700df0582SJesper Nilsson help 8800df0582SJesper Nilsson This is the driver for the Axis ARTPEC-6 pin controller. This driver 8900df0582SJesper Nilsson supports pin function multiplexing as well as pin bias and drive 9000df0582SJesper Nilsson strength configuration. Device tree integration instructions can be 9100df0582SJesper Nilsson found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt 9200df0582SJesper Nilsson 93c8ce8782SLaxman Dewanganconfig PINCTRL_AS3722 949385f35dSPaul Gortmaker tristate "Pinctrl and GPIO driver for ams AS3722 PMIC" 95c8ce8782SLaxman Dewangan depends on MFD_AS3722 && GPIOLIB 96c8ce8782SLaxman Dewangan select PINMUX 97c8ce8782SLaxman Dewangan select GENERIC_PINCONF 98c8ce8782SLaxman Dewangan help 99c8ce8782SLaxman Dewangan AS3722 device supports the configuration of GPIO pins for different 100c8ce8782SLaxman Dewangan functionality. This driver supports the pinmux, push-pull and 101c8ce8782SLaxman Dewangan open drain configuration for the GPIO pins of AS3722 devices. It also 102c8ce8782SLaxman Dewangan supports the GPIO functionality through gpiolib. 103c8ce8782SLaxman Dewangan 1046732ae5cSJean-Christophe PLAGNIOL-VILLARDconfig PINCTRL_AT91 1056732ae5cSJean-Christophe PLAGNIOL-VILLARD bool "AT91 pinctrl driver" 1066732ae5cSJean-Christophe PLAGNIOL-VILLARD depends on OF 1076732ae5cSJean-Christophe PLAGNIOL-VILLARD depends on ARCH_AT91 1086732ae5cSJean-Christophe PLAGNIOL-VILLARD select PINMUX 1096732ae5cSJean-Christophe PLAGNIOL-VILLARD select PINCONF 11080cc3732SAlexander Stein select GPIOLIB 11180cc3732SAlexander Stein select OF_GPIO 11280cc3732SAlexander Stein select GPIOLIB_IRQCHIP 1136732ae5cSJean-Christophe PLAGNIOL-VILLARD help 1146732ae5cSJean-Christophe PLAGNIOL-VILLARD Say Y here to enable the at91 pinctrl driver 1156732ae5cSJean-Christophe PLAGNIOL-VILLARD 11677618084SLudovic Desrochesconfig PINCTRL_AT91PIO4 11777618084SLudovic Desroches bool "AT91 PIO4 pinctrl driver" 11877618084SLudovic Desroches depends on OF 1190a03658dSTiezhu Yang depends on HAS_IOMEM 120e682fcc7STiezhu Yang depends on ARCH_AT91 || COMPILE_TEST 12177618084SLudovic Desroches select PINMUX 12277618084SLudovic Desroches select GENERIC_PINCONF 12377618084SLudovic Desroches select GPIOLIB 12477618084SLudovic Desroches select GPIOLIB_IRQCHIP 12577618084SLudovic Desroches select OF_GPIO 12677618084SLudovic Desroches help 12777618084SLudovic Desroches Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4 12877618084SLudovic Desroches controller available on sama5d2 SoC. 12977618084SLudovic Desroches 130b124c8bdSAndy Shevchenkoconfig PINCTRL_AXP209 131b124c8bdSAndy Shevchenko tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support" 132b124c8bdSAndy Shevchenko depends on MFD_AXP20X 133b124c8bdSAndy Shevchenko depends on OF 13483b31c2aSPetr Mladek select PINMUX 135dbad75ddSKen Xue select GENERIC_PINCONF 136b124c8bdSAndy Shevchenko select GPIOLIB 137dbad75ddSKen Xue help 138b124c8bdSAndy Shevchenko AXP PMICs provides multiple GPIOs that can be muxed for different 139b124c8bdSAndy Shevchenko functions. This driver bundles a pinctrl driver to select the function 140b124c8bdSAndy Shevchenko muxing and a GPIO driver to handle the GPIO when the GPIO function is 141b124c8bdSAndy Shevchenko selected. 142b124c8bdSAndy Shevchenko Say Y to enable pinctrl and GPIO support for the AXP209 PMIC. 143dbad75ddSKen Xue 144576623d7SAngeloGioacchino Del Regnoconfig PINCTRL_AW9523 145d295ad7eSLinus Walleij tristate "Awinic AW9523/AW9523B I2C GPIO expander pinctrl driver" 146576623d7SAngeloGioacchino Del Regno depends on OF && I2C 147576623d7SAngeloGioacchino Del Regno select PINMUX 148576623d7SAngeloGioacchino Del Regno select PINCONF 149576623d7SAngeloGioacchino Del Regno select GENERIC_PINCONF 150576623d7SAngeloGioacchino Del Regno select GPIOLIB 151576623d7SAngeloGioacchino Del Regno select GPIOLIB_IRQCHIP 152576623d7SAngeloGioacchino Del Regno select REGMAP 153576623d7SAngeloGioacchino Del Regno select REGMAP_I2C 154576623d7SAngeloGioacchino Del Regno help 155576623d7SAngeloGioacchino Del Regno The Awinic AW9523/AW9523B is a multi-function I2C GPIO 156576623d7SAngeloGioacchino Del Regno expander with PWM functionality. This driver bundles a 157576623d7SAngeloGioacchino Del Regno pinctrl driver to select the function muxing and a GPIO 158576623d7SAngeloGioacchino Del Regno driver to handle GPIO, when the GPIO function is selected. 159576623d7SAngeloGioacchino Del Regno 160576623d7SAngeloGioacchino Del Regno Say yes to enable pinctrl and GPIO support for the AW9523(B). 161576623d7SAngeloGioacchino Del Regno 1628f3f0246SManivannan Sadhasivamconfig PINCTRL_BM1880 1638f3f0246SManivannan Sadhasivam bool "Bitmain BM1880 Pinctrl driver" 1648293b3c6SManivannan Sadhasivam depends on OF && (ARCH_BITMAIN || COMPILE_TEST) 1658293b3c6SManivannan Sadhasivam default ARCH_BITMAIN 1668f3f0246SManivannan Sadhasivam select PINMUX 1678f3f0246SManivannan Sadhasivam help 1688f3f0246SManivannan Sadhasivam Pinctrl driver for Bitmain BM1880 SoC. 1698f3f0246SManivannan Sadhasivam 170e6cbbe42SPatrick Rudolphconfig PINCTRL_CY8C95X0 171e6cbbe42SPatrick Rudolph tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver" 1728586466eSAndy Shevchenko depends on I2C 173e6cbbe42SPatrick Rudolph select GPIOLIB 174e6cbbe42SPatrick Rudolph select GPIOLIB_IRQCHIP 175e6cbbe42SPatrick Rudolph select PINMUX 176e6cbbe42SPatrick Rudolph select PINCONF 177e6cbbe42SPatrick Rudolph select GENERIC_PINCONF 178e6cbbe42SPatrick Rudolph select REGMAP_I2C 179e6cbbe42SPatrick Rudolph help 180e6cbbe42SPatrick Rudolph Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander. 181e6cbbe42SPatrick Rudolph This driver can also be built as a module. If so, the module will be 182e6cbbe42SPatrick Rudolph called pinctrl-cy8c95x0. 183e6cbbe42SPatrick Rudolph 1841ff91f0aSDavid Lechnerconfig PINCTRL_DA850_PUPD 185b124c8bdSAndy Shevchenko tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups" 1861ff91f0aSDavid Lechner depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST) 1871ff91f0aSDavid Lechner select PINCONF 1881ff91f0aSDavid Lechner select GENERIC_PINCONF 1891ff91f0aSDavid Lechner help 1901ff91f0aSDavid Lechner Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control 191b124c8bdSAndy Shevchenko pull-up and pull-down pin groups. 1921ff91f0aSDavid Lechner 19356cc3af4SMarco Felschconfig PINCTRL_DA9062 19456cc3af4SMarco Felsch tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support" 19556cc3af4SMarco Felsch depends on MFD_DA9062 19656cc3af4SMarco Felsch select GPIOLIB 19756cc3af4SMarco Felsch help 19856cc3af4SMarco Felsch The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for 19956cc3af4SMarco Felsch different functions. This driver bundles a pinctrl driver to select the 20056cc3af4SMarco Felsch function muxing and a GPIO driver to handle the GPIO when the GPIO 20156cc3af4SMarco Felsch function is selected. 20256cc3af4SMarco Felsch 203b124c8bdSAndy Shevchenko Say Y to enable pinctrl and GPIO support for the DA9062 PMIC. 20456cc3af4SMarco Felsch 20538b0e507SBaruch Siachconfig PINCTRL_DIGICOLOR 20638b0e507SBaruch Siach bool 207083b0230SAndy Shevchenko depends on ARCH_DIGICOLOR || COMPILE_TEST 20838b0e507SBaruch Siach select PINMUX 20938b0e507SBaruch Siach select GENERIC_PINCONF 21038b0e507SBaruch Siach 211035f9007SNikita Shubinconfig PINCTRL_EP93XX 212035f9007SNikita Shubin bool 213035f9007SNikita Shubin depends on ARCH_EP93XX || COMPILE_TEST 214035f9007SNikita Shubin select PINMUX 215035f9007SNikita Shubin select GENERIC_PINCONF 216035f9007SNikita Shubin select MFD_SYSCON 217035f9007SNikita Shubin 218b124c8bdSAndy Shevchenkoconfig PINCTRL_EQUILIBRIUM 219b124c8bdSAndy Shevchenko tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC" 220b124c8bdSAndy Shevchenko depends on OF && HAS_IOMEM 221b124c8bdSAndy Shevchenko depends on X86 || COMPILE_TEST 222b124c8bdSAndy Shevchenko select PINMUX 223b124c8bdSAndy Shevchenko select PINCONF 224b124c8bdSAndy Shevchenko select GPIOLIB 225b124c8bdSAndy Shevchenko select GPIO_GENERIC 226b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 227b124c8bdSAndy Shevchenko select GENERIC_PINCONF 228b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 229b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 230b124c8bdSAndy Shevchenko help 231b124c8bdSAndy Shevchenko Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning 232b124c8bdSAndy Shevchenko Mountain network processor SoC that supports both the GPIO and pin 233b124c8bdSAndy Shevchenko control frameworks. It provides interfaces to setup pin muxing, assign 234b124c8bdSAndy Shevchenko desired pin functions, configure GPIO attributes for LGM SoC pins. 235b124c8bdSAndy Shevchenko Pin muxing and pin config settings are retrieved from device tree. 236b124c8bdSAndy Shevchenko 23741795aa1SThéo Lebrunconfig PINCTRL_EYEQ5 23841795aa1SThéo Lebrun bool "Mobileye EyeQ5 pinctrl driver" 23941795aa1SThéo Lebrun depends on OF 24041795aa1SThéo Lebrun depends on MACH_EYEQ5 || COMPILE_TEST 24141795aa1SThéo Lebrun select PINMUX 24241795aa1SThéo Lebrun select GENERIC_PINCONF 24341795aa1SThéo Lebrun select AUXILIARY_BUS 24441795aa1SThéo Lebrun default MACH_EYEQ5 24541795aa1SThéo Lebrun help 24641795aa1SThéo Lebrun Pin controller driver for the Mobileye EyeQ5 platform. It does both 24741795aa1SThéo Lebrun pin config & pin muxing. It does not handle GPIO. 24841795aa1SThéo Lebrun 24941795aa1SThéo Lebrun Pin muxing supports two functions for each pin: first is GPIO, second 25041795aa1SThéo Lebrun is pin-dependent. Pin config is about bias & drive strength. 25141795aa1SThéo Lebrun 252b124c8bdSAndy Shevchenkoconfig PINCTRL_GEMINI 253b124c8bdSAndy Shevchenko bool 254b124c8bdSAndy Shevchenko depends on ARCH_GEMINI 255b124c8bdSAndy Shevchenko default ARCH_GEMINI 256b124c8bdSAndy Shevchenko select PINMUX 257b124c8bdSAndy Shevchenko select GENERIC_PINCONF 258b124c8bdSAndy Shevchenko select MFD_SYSCON 259b124c8bdSAndy Shevchenko 260b124c8bdSAndy Shevchenkoconfig PINCTRL_INGENIC 261b124c8bdSAndy Shevchenko bool "Pinctrl driver for the Ingenic JZ47xx SoCs" 262b124c8bdSAndy Shevchenko default MACH_INGENIC 263b124c8bdSAndy Shevchenko depends on OF 264b124c8bdSAndy Shevchenko depends on MIPS || COMPILE_TEST 265b124c8bdSAndy Shevchenko select GENERIC_PINCONF 266b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 267b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 268b124c8bdSAndy Shevchenko select GPIOLIB 269b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 270b124c8bdSAndy Shevchenko select REGMAP_MMIO 271b124c8bdSAndy Shevchenko 272b124c8bdSAndy Shevchenkoconfig PINCTRL_K210 273b124c8bdSAndy Shevchenko bool "Pinctrl driver for the Canaan Kendryte K210 SoC" 274c1556a9bSYangyu Chen depends on RISCV && SOC_CANAAN_K210 && OF 275b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 276b124c8bdSAndy Shevchenko select GENERIC_PINCONF 277b124c8bdSAndy Shevchenko select GPIOLIB 278b124c8bdSAndy Shevchenko select OF_GPIO 279b124c8bdSAndy Shevchenko select REGMAP_MMIO 280c1556a9bSYangyu Chen default SOC_CANAAN_K210 281b124c8bdSAndy Shevchenko help 282b124c8bdSAndy Shevchenko Add support for the Canaan Kendryte K210 RISC-V SOC Field 283b124c8bdSAndy Shevchenko Programmable IO Array (FPIOA) controller. 284b124c8bdSAndy Shevchenko 285545887eaSZe Huangconfig PINCTRL_K230 286545887eaSZe Huang bool "Pinctrl driver for the Canaan Kendryte K230 SoC" 287545887eaSZe Huang depends on OF 288642490b5SGeert Uytterhoeven depends on ARCH_CANAAN || COMPILE_TEST 289545887eaSZe Huang select GENERIC_PINCTRL_GROUPS 290545887eaSZe Huang select GENERIC_PINMUX_FUNCTIONS 291545887eaSZe Huang select GENERIC_PINCONF 292545887eaSZe Huang select REGMAP_MMIO 293545887eaSZe Huang help 294545887eaSZe Huang Add support for the Canaan Kendryte K230 RISC-V SOC pin controller. 295545887eaSZe Huang 296b124c8bdSAndy Shevchenkoconfig PINCTRL_KEEMBAY 297b124c8bdSAndy Shevchenko tristate "Pinctrl driver for Intel Keem Bay SoC" 298b124c8bdSAndy Shevchenko depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST) 299b124c8bdSAndy Shevchenko depends on HAS_IOMEM 300b124c8bdSAndy Shevchenko select PINMUX 301b124c8bdSAndy Shevchenko select PINCONF 302b124c8bdSAndy Shevchenko select GENERIC_PINCONF 303b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 304b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 305b124c8bdSAndy Shevchenko select GPIOLIB 306b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 307b124c8bdSAndy Shevchenko select GPIO_GENERIC 308b124c8bdSAndy Shevchenko help 309b124c8bdSAndy Shevchenko This selects pin control driver for the Intel Keem Bay SoC. 310b124c8bdSAndy Shevchenko It provides pin config functions such as pull-up, pull-down, 311b124c8bdSAndy Shevchenko interrupt, drive strength, sec lock, Schmitt trigger, slew 312b124c8bdSAndy Shevchenko rate control and direction control. This module will be 313b124c8bdSAndy Shevchenko called as pinctrl-keembay. 314b124c8bdSAndy Shevchenko 3153f8c50c9SJohn Crispinconfig PINCTRL_LANTIQ 3163f8c50c9SJohn Crispin bool 3173f8c50c9SJohn Crispin depends on LANTIQ 3183f8c50c9SJohn Crispin select PINMUX 3193f8c50c9SJohn Crispin select PINCONF 3203f8c50c9SJohn Crispin 321b124c8bdSAndy Shevchenkoconfig PINCTRL_FALCON 322b124c8bdSAndy Shevchenko bool 323b124c8bdSAndy Shevchenko depends on SOC_FALCON 324b124c8bdSAndy Shevchenko depends on PINCTRL_LANTIQ 325b124c8bdSAndy Shevchenko 326f73f88acSzhanghongchenconfig PINCTRL_LOONGSON2 327f73f88acSzhanghongchen tristate "Pinctrl driver for the Loongson-2 SoC" 328c0f358fdSRen Zhijie depends on OF && (LOONGARCH || COMPILE_TEST) 329f73f88acSzhanghongchen select PINMUX 330f73f88acSzhanghongchen select GENERIC_PINCONF 331f73f88acSzhanghongchen help 332f73f88acSzhanghongchen This selects pin control driver for the Loongson-2 SoC. It 333f73f88acSzhanghongchen provides pin config functions multiplexing. GPIO pin pull-up, 334f73f88acSzhanghongchen pull-down functions are not supported. Say yes to enable 335f73f88acSzhanghongchen pinctrl for Loongson-2 SoC. 336f73f88acSzhanghongchen 337b124c8bdSAndy Shevchenkoconfig PINCTRL_XWAY 338b124c8bdSAndy Shevchenko bool 339b124c8bdSAndy Shevchenko depends on SOC_TYPE_XWAY 340b124c8bdSAndy Shevchenko depends on PINCTRL_LANTIQ 341b124c8bdSAndy Shevchenko 3422f77ac93SJoachim Eastwoodconfig PINCTRL_LPC18XX 3432f77ac93SJoachim Eastwood bool "NXP LPC18XX/43XX SCU pinctrl driver" 3442f77ac93SJoachim Eastwood depends on OF && (ARCH_LPC18XX || COMPILE_TEST) 3452f77ac93SJoachim Eastwood default ARCH_LPC18XX 3462f77ac93SJoachim Eastwood select PINMUX 3472f77ac93SJoachim Eastwood select GENERIC_PINCONF 3482f77ac93SJoachim Eastwood help 3492f77ac93SJoachim Eastwood Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU). 3502f77ac93SJoachim Eastwood 351b124c8bdSAndy Shevchenkoconfig PINCTRL_MAX77620 352b124c8bdSAndy Shevchenko tristate "MAX77620/MAX20024 Pincontrol support" 353b124c8bdSAndy Shevchenko depends on MFD_MAX77620 && OF 35406351d13SLinus Walleij select PINMUX 3551c5b7f3cSLinus Walleij select GENERIC_PINCONF 356b124c8bdSAndy Shevchenko help 357b124c8bdSAndy Shevchenko Say Y here to enable Pin control support for Maxim MAX77620 PMIC. 358b124c8bdSAndy Shevchenko This PMIC has 8 GPIO pins that work as GPIO as well as special 359b124c8bdSAndy Shevchenko function in alternate mode. This driver also configure push-pull, 360b124c8bdSAndy Shevchenko open drain, FPS slots etc. 36106351d13SLinus Walleij 3620f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_I2C 3630f04a817SAndy Shevchenko tristate 3640f04a817SAndy Shevchenko select REGMAP_I2C 3650f04a817SAndy Shevchenko 3660f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_SPI 3670f04a817SAndy Shevchenko tristate 3680f04a817SAndy Shevchenko select REGMAP_SPI 3690f04a817SAndy Shevchenko 37064ac43e6SSebastian Reichelconfig PINCTRL_MCP23S08 37164ac43e6SSebastian Reichel tristate "Microchip MCP23xxx I/O expander" 37264ac43e6SSebastian Reichel depends on SPI_MASTER || I2C 373e2a021d4SLinus Walleij select GPIOLIB 37464ac43e6SSebastian Reichel select GPIOLIB_IRQCHIP 37582039d24SSebastian Reichel select GENERIC_PINCONF 3760f04a817SAndy Shevchenko select PINCTRL_MCP23S08_I2C if I2C 3770f04a817SAndy Shevchenko select PINCTRL_MCP23S08_SPI if SPI_MASTER 37864ac43e6SSebastian Reichel help 3796ff45566SJan Kundrát SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 / 3806ff45566SJan Kundrát MCP23008 / MCP23017 / MCP23018 I/O expanders. 3816ff45566SJan Kundrát This provides a GPIO interface supporting inputs and outputs and a 3826ff45566SJan Kundrát corresponding interrupt-controller. 38364ac43e6SSebastian Reichel 384b124c8bdSAndy Shevchenkoconfig PINCTRL_MICROCHIP_SGPIO 3852f65923cSColin Foster tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO" 386b124c8bdSAndy Shevchenko depends on OF 387b124c8bdSAndy Shevchenko depends on HAS_IOMEM 388b124c8bdSAndy Shevchenko select GPIOLIB 389b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 390b124c8bdSAndy Shevchenko select GENERIC_PINCONF 391b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 392b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 393b124c8bdSAndy Shevchenko select OF_GPIO 394b124c8bdSAndy Shevchenko help 395b124c8bdSAndy Shevchenko Support for the serial GPIO interface used on Microsemi and 396b124c8bdSAndy Shevchenko Microchip SoCs. By using a serial interface, the SIO 397b124c8bdSAndy Shevchenko controller significantly extends the number of available 398b124c8bdSAndy Shevchenko GPIOs with a minimum number of additional pins on the 399b124c8bdSAndy Shevchenko device. The primary purpose of the SIO controller is to 400b124c8bdSAndy Shevchenko connect control signals from SFP modules and to act as an 401b124c8bdSAndy Shevchenko LED controller. 402b124c8bdSAndy Shevchenko 4032f65923cSColin Foster If compiled as a module, the module name will be 4042f65923cSColin Foster pinctrl-microchip-sgpio. 4052f65923cSColin Foster 406b124c8bdSAndy Shevchenkoconfig PINCTRL_OCELOT 4074425205eSClément Léger tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs" 408b124c8bdSAndy Shevchenko depends on OF 409b124c8bdSAndy Shevchenko depends on HAS_IOMEM 410b124c8bdSAndy Shevchenko select GPIOLIB 411b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 412b124c8bdSAndy Shevchenko select GENERIC_PINCONF 413b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 414b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 415b124c8bdSAndy Shevchenko select OF_GPIO 416b124c8bdSAndy Shevchenko select REGMAP_MMIO 4173f668365SColin Foster help 4183f668365SColin Foster Support for the internal GPIO interfaces on Microsemi Ocelot and 4193f668365SColin Foster Jaguar2 SoCs. 4203f668365SColin Foster 4213f668365SColin Foster If conpiled as a module, the module name will be pinctrl-ocelot. 422b124c8bdSAndy Shevchenko 4230a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS 424767b8ce3SPaul Gortmaker tristate "Pinctrl driver for the PALMAS Series MFD devices" 4250a8d3e24SLaxman Dewangan depends on OF && MFD_PALMAS 42663ca8db7SAxel Lin select PINMUX 4270a8d3e24SLaxman Dewangan select GENERIC_PINCONF 4280a8d3e24SLaxman Dewangan help 4290a8d3e24SLaxman Dewangan Palmas device supports the configuration of pins for different 4300a8d3e24SLaxman Dewangan functionality. This driver supports the pinmux, push-pull and 4310a8d3e24SLaxman Dewangan open drain configuration for the Palmas series devices like 4320a8d3e24SLaxman Dewangan TPS65913, TPS80036 etc. 4330a8d3e24SLaxman Dewangan 43437c646dcSHerve Codinaconfig PINCTRL_PEF2256 43537c646dcSHerve Codina tristate "Lantiq PEF2256 (FALC56) pin controller driver" 43637c646dcSHerve Codina depends on OF && FRAMER_PEF2256 43737c646dcSHerve Codina select PINMUX 43837c646dcSHerve Codina select PINCONF 43937c646dcSHerve Codina select GENERIC_PINCONF 44037c646dcSHerve Codina help 44137c646dcSHerve Codina This option enables the pin controller support for the Lantiq PEF2256 44237c646dcSHerve Codina framer, also known as FALC56. 44337c646dcSHerve Codina 44437c646dcSHerve Codina If unsure, say N. 44537c646dcSHerve Codina 44637c646dcSHerve Codina To compile this driver as a module, choose M here: the 44737c646dcSHerve Codina module will be called pinctrl-pef2256. 44837c646dcSHerve Codina 4492ba384e6SJoshua Hendersonconfig PINCTRL_PIC32 4502ba384e6SJoshua Henderson bool "Microchip PIC32 pin controller driver" 4512ba384e6SJoshua Henderson depends on OF 4522ba384e6SJoshua Henderson depends on MACH_PIC32 4532ba384e6SJoshua Henderson select PINMUX 4542ba384e6SJoshua Henderson select GENERIC_PINCONF 4552ba384e6SJoshua Henderson select GPIOLIB_IRQCHIP 4562ba384e6SJoshua Henderson select OF_GPIO 4572ba384e6SJoshua Henderson help 4582ba384e6SJoshua Henderson This is the pin controller and gpio driver for Microchip PIC32 4592ba384e6SJoshua Henderson microcontrollers. This option is selected automatically when specific 4602ba384e6SJoshua Henderson machine and arch are selected to build. 4612ba384e6SJoshua Henderson 4622ba384e6SJoshua Hendersonconfig PINCTRL_PIC32MZDA 4632ba384e6SJoshua Henderson def_bool y if PIC32MZDA 4642ba384e6SJoshua Henderson select PINCTRL_PIC32 4652ba384e6SJoshua Henderson 466b124c8bdSAndy Shevchenkoconfig PINCTRL_PISTACHIO 467b124c8bdSAndy Shevchenko bool "IMG Pistachio SoC pinctrl driver" 468b124c8bdSAndy Shevchenko depends on OF && (MIPS || COMPILE_TEST) 469b124c8bdSAndy Shevchenko depends on GPIOLIB 470b124c8bdSAndy Shevchenko select PINMUX 471b124c8bdSAndy Shevchenko select GENERIC_PINCONF 472b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 473b124c8bdSAndy Shevchenko select OF_GPIO 474b124c8bdSAndy Shevchenko help 475b124c8bdSAndy Shevchenko This support pinctrl and GPIO driver for IMG Pistachio SoC. 476b124c8bdSAndy Shevchenko 477b124c8bdSAndy Shevchenkoconfig PINCTRL_RK805 478b124c8bdSAndy Shevchenko tristate "Pinctrl and GPIO driver for RK805 PMIC" 479c20e8c5bSSebastian Reichel depends on MFD_RK8XX 480b124c8bdSAndy Shevchenko select GPIOLIB 481b124c8bdSAndy Shevchenko select PINMUX 482b124c8bdSAndy Shevchenko select GENERIC_PINCONF 483b124c8bdSAndy Shevchenko help 484b124c8bdSAndy Shevchenko This selects the pinctrl driver for RK805. 485b124c8bdSAndy Shevchenko 486b58f0273SJames Hoganconfig PINCTRL_ROCKCHIP 487b58f0273SJames Hogan tristate "Rockchip gpio and pinctrl driver" 488b58f0273SJames Hogan depends on ARCH_ROCKCHIP || COMPILE_TEST 489b58f0273SJames Hogan depends on OF 490b58f0273SJames Hogan select GPIOLIB 4913bece55aSLinus Walleij select PINMUX 4923bece55aSLinus Walleij select GENERIC_PINCONF 49398da3529SLinus Walleij select GENERIC_IRQ_CHIP 49498da3529SLinus Walleij select MFD_SYSCON 495dc0b1aa3SLinus Walleij select OF_GPIO 49645f034efSLinus Walleij default ARCH_ROCKCHIP 497ca402d37SLinus Walleij help 498b124c8bdSAndy Shevchenko This support pinctrl and GPIO driver for Rockchip SoCs. 499f0b9a7e5SThomas Abraham 500eb524cb6SPeng Fanconfig PINCTRL_SCMI 501eb524cb6SPeng Fan tristate "Pinctrl driver using SCMI protocol interface" 502eb524cb6SPeng Fan depends on ARM_SCMI_PROTOCOL || COMPILE_TEST 503eb524cb6SPeng Fan select PINMUX 504eb524cb6SPeng Fan select GENERIC_PINCONF 505eb524cb6SPeng Fan help 506eb524cb6SPeng Fan This driver provides support for pinctrl which is controlled 507eb524cb6SPeng Fan by firmware that implements the SCMI interface. 508eb524cb6SPeng Fan It uses SCMI Message Protocol to interact with the 509eb524cb6SPeng Fan firmware providing all the pinctrl controls. 510eb524cb6SPeng Fan 511af99a750SHeiko Stuebnerconfig PINCTRL_SINGLE 512af99a750SHeiko Stuebner tristate "One-register-per-pin type device tree based pinctrl driver" 513af99a750SHeiko Stuebner depends on OF 514af99a750SHeiko Stuebner depends on HAS_IOMEM 51561dd7261STomasz Figa select GENERIC_PINCTRL_GROUPS 51661dd7261STomasz Figa select GENERIC_PINMUX_FUNCTIONS 51761dd7261STomasz Figa select GENERIC_PINCONF 51861dd7261STomasz Figa help 51961dd7261STomasz Figa This selects the device tree based generic pinctrl driver. 52006763c74SThomas Petazzoni 521ca402d37SLinus Walleijconfig PINCTRL_ST 522ca402d37SLinus Walleij bool 523ca402d37SLinus Walleij depends on OF 52430574f0dSThomas Abraham select PINMUX 525cbc351abSArnd Bergmann select PINCONF 526924da314SAxel Lin select GPIOLIB_IRQCHIP 52730574f0dSThomas Abraham 52830574f0dSThomas Abrahamconfig PINCTRL_STMFX 52930574f0dSThomas Abraham tristate "STMicroelectronics STMFX GPIO expander pinctrl driver" 53043b169dbSThomas Abraham depends on I2C 53143b169dbSThomas Abraham depends on OF_GPIO 532924da314SAxel Lin select GENERIC_PINCONF 53343b169dbSThomas Abraham select GPIOLIB_IRQCHIP 53443b169dbSThomas Abraham select MFD_STMFX 5357e8d9415SSebastian Hesselbarth help 5367e8d9415SSebastian Hesselbarth Driver for STMicroelectronics Multi-Function eXpander (STMFX) 5377e8d9415SSebastian Hesselbarth GPIO expander. 5387e8d9415SSebastian Hesselbarth This provides a GPIO interface supporting inputs and outputs, 5397e8d9415SSebastian Hesselbarth and configuring push-pull, open-drain, and can also be used as 5407e8d9415SSebastian Hesselbarth interrupt-controller. 541c9f95cedSSebastian Hesselbarth 542b124c8bdSAndy Shevchenkoconfig PINCTRL_SX150X 543b124c8bdSAndy Shevchenko bool "Semtech SX150x I2C GPIO expander pinctrl driver" 544b124c8bdSAndy Shevchenko depends on I2C=y 545deda8287SViresh Kumar select PINMUX 546b124c8bdSAndy Shevchenko select PINCONF 5472744e8afSLinus Walleij select GENERIC_PINCONF 548b124c8bdSAndy Shevchenko select GPIOLIB 549485dba27SMasahiro Yamada select GPIOLIB_IRQCHIP 550b124c8bdSAndy Shevchenko select REGMAP 551b17f2f9bSRay Jui help 552b124c8bdSAndy Shevchenko Say Y here to provide support for Semtech SX150x-series I2C 553b124c8bdSAndy Shevchenko GPIO expanders as pinctrl module. 554b124c8bdSAndy Shevchenko Compatible models include: 555b124c8bdSAndy Shevchenko - 8 bits: sx1508q, sx1502q 556b124c8bdSAndy Shevchenko - 16 bits: sx1509q, sx1506q 5572744e8afSLinus Walleij 558b124c8bdSAndy Shevchenkoconfig PINCTRL_TB10X 559b124c8bdSAndy Shevchenko bool 560b124c8bdSAndy Shevchenko depends on OF && ARC_PLAT_TB10X 561b124c8bdSAndy Shevchenko select GPIOLIB 562b124c8bdSAndy Shevchenko 563901b277eSEsteban Blancconfig PINCTRL_TPS6594 564901b277eSEsteban Blanc tristate "Pinctrl and GPIO driver for TI TPS6594 PMIC" 565901b277eSEsteban Blanc depends on OF && MFD_TPS6594 566901b277eSEsteban Blanc default MFD_TPS6594 567901b277eSEsteban Blanc select PINMUX 568901b277eSEsteban Blanc select GPIOLIB 569901b277eSEsteban Blanc select REGMAP 570901b277eSEsteban Blanc select GPIO_REGMAP 571901b277eSEsteban Blanc select GENERIC_PINCONF 572901b277eSEsteban Blanc help 573901b277eSEsteban Blanc Say Y to select the pinmuxing and GPIOs driver for the TPS6594 574901b277eSEsteban Blanc PMICs chip family. 575901b277eSEsteban Blanc 576901b277eSEsteban Blanc This driver can also be built as a module 577901b277eSEsteban Blanc called tps6594-pinctrl. 578901b277eSEsteban Blanc 579bed5cd6fSEmil Renner Berthingconfig PINCTRL_TH1520 580bed5cd6fSEmil Renner Berthing tristate "Pinctrl driver for the T-Head TH1520 SoC" 581bed5cd6fSEmil Renner Berthing depends on ARCH_THEAD || COMPILE_TEST 58260ba5da2SArnd Bergmann depends on OF 583bed5cd6fSEmil Renner Berthing select GENERIC_PINMUX_FUNCTIONS 584bed5cd6fSEmil Renner Berthing select GENERIC_PINCONF 585bed5cd6fSEmil Renner Berthing select PINMUX 586bed5cd6fSEmil Renner Berthing help 587bed5cd6fSEmil Renner Berthing This is the driver for the pin controller blocks on the 588bed5cd6fSEmil Renner Berthing T-Head TH1520 SoC. 589bed5cd6fSEmil Renner Berthing 590bed5cd6fSEmil Renner Berthing This driver is needed for RISC-V development boards like 591bed5cd6fSEmil Renner Berthing the BeagleV Ahead and the LicheePi 4A. 592bed5cd6fSEmil Renner Berthing 5932744e8afSLinus Walleijconfig PINCTRL_ZYNQ 5942744e8afSLinus Walleij bool "Pinctrl driver for Xilinx Zynq" 5952744e8afSLinus Walleij depends on ARCH_ZYNQ 5962744e8afSLinus Walleij select PINMUX 5972744e8afSLinus Walleij select GENERIC_PINCONF 5982744e8afSLinus Walleij help 5992744e8afSLinus Walleij This selects the pinctrl driver for Xilinx Zynq. 6002744e8afSLinus Walleij 6018b242ca7SSai Krishna Potthuriconfig PINCTRL_ZYNQMP 6028b242ca7SSai Krishna Potthuri tristate "Pinctrl driver for Xilinx ZynqMP" 6038b242ca7SSai Krishna Potthuri depends on ZYNQMP_FIRMWARE 6048b242ca7SSai Krishna Potthuri select PINMUX 6058b242ca7SSai Krishna Potthuri select GENERIC_PINCONF 6068b242ca7SSai Krishna Potthuri default ZYNQMP_FIRMWARE 6078b242ca7SSai Krishna Potthuri help 6088b242ca7SSai Krishna Potthuri This selects the pinctrl driver for Xilinx ZynqMP platform. 6098b242ca7SSai Krishna Potthuri This driver will query the pin information from the firmware 6108b242ca7SSai Krishna Potthuri and allow configuring the pins. 6118b242ca7SSai Krishna Potthuri Configuration can include the mux function to select on those 6128b242ca7SSai Krishna Potthuri pin(s)/group(s), and various pin configuration parameters 6138b242ca7SSai Krishna Potthuri such as pull-up, slew rate, etc. 614fa99e701SSai Krishna Potthuri This driver can also be built as a module. If so, the module 615fa99e701SSai Krishna Potthuri will be called pinctrl-zynqmp. 6168b242ca7SSai Krishna Potthuri 617d11f9328SAsmaa Mnebhiconfig PINCTRL_MLXBF3 618d11f9328SAsmaa Mnebhi tristate "NVIDIA BlueField-3 SoC Pinctrl driver" 619d11f9328SAsmaa Mnebhi depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST 620d11f9328SAsmaa Mnebhi select PINMUX 621d11f9328SAsmaa Mnebhi select GPIOLIB 622d11f9328SAsmaa Mnebhi select GPIOLIB_IRQCHIP 623d11f9328SAsmaa Mnebhi help 624d11f9328SAsmaa Mnebhi Say Y to select the pinctrl driver for BlueField-3 SoCs. 625d11f9328SAsmaa Mnebhi This pin controller allows selecting the mux function for 626d11f9328SAsmaa Mnebhi each pin. This driver can also be built as a module called 627d11f9328SAsmaa Mnebhi pinctrl-mlxbf3. 628d11f9328SAsmaa Mnebhi 6292242ddfbSManivannan Sadhasivamsource "drivers/pinctrl/actions/Kconfig" 6304d3d0e42SAndrew Jefferysource "drivers/pinctrl/aspeed/Kconfig" 6312744e8afSLinus Walleijsource "drivers/pinctrl/bcm/Kconfig" 6322744e8afSLinus Walleijsource "drivers/pinctrl/berlin/Kconfig" 633b124c8bdSAndy Shevchenkosource "drivers/pinctrl/cirrus/Kconfig" 6342744e8afSLinus Walleijsource "drivers/pinctrl/freescale/Kconfig" 6352744e8afSLinus Walleijsource "drivers/pinctrl/intel/Kconfig" 636b124c8bdSAndy Shevchenkosource "drivers/pinctrl/mediatek/Kconfig" 637b124c8bdSAndy Shevchenkosource "drivers/pinctrl/meson/Kconfig" 6382744e8afSLinus Walleijsource "drivers/pinctrl/mvebu/Kconfig" 6393a198059SLinus Walleijsource "drivers/pinctrl/nomadik/Kconfig" 6403b588e43STomer Maimonsource "drivers/pinctrl/nuvoton/Kconfig" 641fd84aaa8SChester Linsource "drivers/pinctrl/nxp/Kconfig" 6424b15ec9dSRobert Jarzmiksource "drivers/pinctrl/pxa/Kconfig" 64369b78b8dSLinus Walleijsource "drivers/pinctrl/qcom/Kconfig" 644e99ce780STzuyi Changsource "drivers/pinctrl/realtek/Kconfig" 645077365a9SGeert Uytterhoevensource "drivers/pinctrl/renesas/Kconfig" 646ebe629a3SSachin Kamatsource "drivers/pinctrl/samsung/Kconfig" 647a29d8e93SInochi Amaotosource "drivers/pinctrl/sophgo/Kconfig" 648a83c29e1SYixun Lansource "drivers/pinctrl/spacemit/Kconfig" 6492744e8afSLinus Walleijsource "drivers/pinctrl/spear/Kconfig" 65041d32cfcSBaolin Wangsource "drivers/pinctrl/sprd/Kconfig" 651ba7fdf88SJianlong Huangsource "drivers/pinctrl/starfive/Kconfig" 652aceb16dcSMaxime Coquelinsource "drivers/pinctrl/stm32/Kconfig" 653aa74c44bSWells Lusource "drivers/pinctrl/sunplus/Kconfig" 6545f910777SMaxime Ripardsource "drivers/pinctrl/sunxi/Kconfig" 65525cbac77SMasahiro Yamadasource "drivers/pinctrl/tegra/Kconfig" 656003910ebSNishanth Menonsource "drivers/pinctrl/ti/Kconfig" 6576e908892SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig" 658a68a7844SNobuhiro Iwamatsusource "drivers/pinctrl/visconti/Kconfig" 659b124c8bdSAndy Shevchenkosource "drivers/pinctrl/vt8500/Kconfig" 6601948d5c5SRahul Tanwar 661d219b924SPhil Reidendif 662