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" 54813b1a1aSGeert 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" 106*8e86af65SBartosz Golaszewski depends on (OF && ARCH_AT91) || COMPILE_TEST 1076732ae5cSJean-Christophe PLAGNIOL-VILLARD select PINMUX 1086732ae5cSJean-Christophe PLAGNIOL-VILLARD select PINCONF 10980cc3732SAlexander Stein select GPIOLIB 11080cc3732SAlexander Stein select GPIOLIB_IRQCHIP 1116732ae5cSJean-Christophe PLAGNIOL-VILLARD help 1126732ae5cSJean-Christophe PLAGNIOL-VILLARD Say Y here to enable the at91 pinctrl driver 1136732ae5cSJean-Christophe PLAGNIOL-VILLARD 11477618084SLudovic Desrochesconfig PINCTRL_AT91PIO4 11577618084SLudovic Desroches bool "AT91 PIO4 pinctrl driver" 11677618084SLudovic Desroches depends on OF 1170a03658dSTiezhu Yang depends on HAS_IOMEM 118e682fcc7STiezhu Yang depends on ARCH_AT91 || COMPILE_TEST 11977618084SLudovic Desroches select PINMUX 12077618084SLudovic Desroches select GENERIC_PINCONF 12177618084SLudovic Desroches select GPIOLIB 12277618084SLudovic Desroches select GPIOLIB_IRQCHIP 12377618084SLudovic Desroches select OF_GPIO 12477618084SLudovic Desroches help 12577618084SLudovic Desroches Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4 12677618084SLudovic Desroches controller available on sama5d2 SoC. 12777618084SLudovic Desroches 128b124c8bdSAndy Shevchenkoconfig PINCTRL_AXP209 129b124c8bdSAndy Shevchenko tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support" 130b124c8bdSAndy Shevchenko depends on MFD_AXP20X 131b124c8bdSAndy Shevchenko depends on OF 13283b31c2aSPetr Mladek select PINMUX 133dbad75ddSKen Xue select GENERIC_PINCONF 134b124c8bdSAndy Shevchenko select GPIOLIB 135dbad75ddSKen Xue help 136b124c8bdSAndy Shevchenko AXP PMICs provides multiple GPIOs that can be muxed for different 137b124c8bdSAndy Shevchenko functions. This driver bundles a pinctrl driver to select the function 138b124c8bdSAndy Shevchenko muxing and a GPIO driver to handle the GPIO when the GPIO function is 139b124c8bdSAndy Shevchenko selected. 140b124c8bdSAndy Shevchenko Say Y to enable pinctrl and GPIO support for the AXP209 PMIC. 141dbad75ddSKen Xue 142576623d7SAngeloGioacchino Del Regnoconfig PINCTRL_AW9523 143d295ad7eSLinus Walleij tristate "Awinic AW9523/AW9523B I2C GPIO expander pinctrl driver" 144576623d7SAngeloGioacchino Del Regno depends on OF && I2C 145576623d7SAngeloGioacchino Del Regno select PINMUX 146576623d7SAngeloGioacchino Del Regno select PINCONF 147576623d7SAngeloGioacchino Del Regno select GENERIC_PINCONF 148576623d7SAngeloGioacchino Del Regno select GPIOLIB 149576623d7SAngeloGioacchino Del Regno select GPIOLIB_IRQCHIP 150576623d7SAngeloGioacchino Del Regno select REGMAP 151576623d7SAngeloGioacchino Del Regno select REGMAP_I2C 152576623d7SAngeloGioacchino Del Regno help 153576623d7SAngeloGioacchino Del Regno The Awinic AW9523/AW9523B is a multi-function I2C GPIO 154576623d7SAngeloGioacchino Del Regno expander with PWM functionality. This driver bundles a 155576623d7SAngeloGioacchino Del Regno pinctrl driver to select the function muxing and a GPIO 156576623d7SAngeloGioacchino Del Regno driver to handle GPIO, when the GPIO function is selected. 157576623d7SAngeloGioacchino Del Regno 158576623d7SAngeloGioacchino Del Regno Say yes to enable pinctrl and GPIO support for the AW9523(B). 159576623d7SAngeloGioacchino Del Regno 1608f3f0246SManivannan Sadhasivamconfig PINCTRL_BM1880 1618f3f0246SManivannan Sadhasivam bool "Bitmain BM1880 Pinctrl driver" 1628293b3c6SManivannan Sadhasivam depends on OF && (ARCH_BITMAIN || COMPILE_TEST) 1638293b3c6SManivannan Sadhasivam default ARCH_BITMAIN 1648f3f0246SManivannan Sadhasivam select PINMUX 1658f3f0246SManivannan Sadhasivam help 1668f3f0246SManivannan Sadhasivam Pinctrl driver for Bitmain BM1880 SoC. 1678f3f0246SManivannan Sadhasivam 168e6cbbe42SPatrick Rudolphconfig PINCTRL_CY8C95X0 169e6cbbe42SPatrick Rudolph tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver" 1708586466eSAndy Shevchenko depends on I2C 171e6cbbe42SPatrick Rudolph select GPIOLIB 172e6cbbe42SPatrick Rudolph select GPIOLIB_IRQCHIP 173e6cbbe42SPatrick Rudolph select PINMUX 174e6cbbe42SPatrick Rudolph select PINCONF 175e6cbbe42SPatrick Rudolph select GENERIC_PINCONF 176e6cbbe42SPatrick Rudolph select REGMAP_I2C 177e6cbbe42SPatrick Rudolph help 178e6cbbe42SPatrick Rudolph Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander. 179e6cbbe42SPatrick Rudolph This driver can also be built as a module. If so, the module will be 180e6cbbe42SPatrick Rudolph called pinctrl-cy8c95x0. 181e6cbbe42SPatrick Rudolph 1821ff91f0aSDavid Lechnerconfig PINCTRL_DA850_PUPD 183b124c8bdSAndy Shevchenko tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups" 1841ff91f0aSDavid Lechner depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST) 1851ff91f0aSDavid Lechner select PINCONF 1861ff91f0aSDavid Lechner select GENERIC_PINCONF 1871ff91f0aSDavid Lechner help 1881ff91f0aSDavid Lechner Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control 189b124c8bdSAndy Shevchenko pull-up and pull-down pin groups. 1901ff91f0aSDavid Lechner 19156cc3af4SMarco Felschconfig PINCTRL_DA9062 19256cc3af4SMarco Felsch tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support" 19356cc3af4SMarco Felsch depends on MFD_DA9062 19456cc3af4SMarco Felsch select GPIOLIB 19556cc3af4SMarco Felsch help 19656cc3af4SMarco Felsch The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for 19756cc3af4SMarco Felsch different functions. This driver bundles a pinctrl driver to select the 19856cc3af4SMarco Felsch function muxing and a GPIO driver to handle the GPIO when the GPIO 19956cc3af4SMarco Felsch function is selected. 20056cc3af4SMarco Felsch 201b124c8bdSAndy Shevchenko Say Y to enable pinctrl and GPIO support for the DA9062 PMIC. 20256cc3af4SMarco Felsch 20338b0e507SBaruch Siachconfig PINCTRL_DIGICOLOR 20438b0e507SBaruch Siach bool 205083b0230SAndy Shevchenko depends on ARCH_DIGICOLOR || COMPILE_TEST 20638b0e507SBaruch Siach select PINMUX 20738b0e507SBaruch Siach select GENERIC_PINCONF 20838b0e507SBaruch Siach 209035f9007SNikita Shubinconfig PINCTRL_EP93XX 210035f9007SNikita Shubin bool 211035f9007SNikita Shubin depends on ARCH_EP93XX || COMPILE_TEST 212035f9007SNikita Shubin select PINMUX 213035f9007SNikita Shubin select GENERIC_PINCONF 214035f9007SNikita Shubin select MFD_SYSCON 215035f9007SNikita Shubin 216b124c8bdSAndy Shevchenkoconfig PINCTRL_EQUILIBRIUM 217b124c8bdSAndy Shevchenko tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC" 218b124c8bdSAndy Shevchenko depends on OF && HAS_IOMEM 219b124c8bdSAndy Shevchenko depends on X86 || COMPILE_TEST 220b124c8bdSAndy Shevchenko select PINMUX 221b124c8bdSAndy Shevchenko select PINCONF 222b124c8bdSAndy Shevchenko select GPIOLIB 223b124c8bdSAndy Shevchenko select GPIO_GENERIC 224b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 225b124c8bdSAndy Shevchenko select GENERIC_PINCONF 226b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 227b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 228b124c8bdSAndy Shevchenko help 229b124c8bdSAndy Shevchenko Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning 230b124c8bdSAndy Shevchenko Mountain network processor SoC that supports both the GPIO and pin 231b124c8bdSAndy Shevchenko control frameworks. It provides interfaces to setup pin muxing, assign 232b124c8bdSAndy Shevchenko desired pin functions, configure GPIO attributes for LGM SoC pins. 233b124c8bdSAndy Shevchenko Pin muxing and pin config settings are retrieved from device tree. 234b124c8bdSAndy Shevchenko 23541795aa1SThéo Lebrunconfig PINCTRL_EYEQ5 23641795aa1SThéo Lebrun bool "Mobileye EyeQ5 pinctrl driver" 23741795aa1SThéo Lebrun depends on OF 23841795aa1SThéo Lebrun depends on MACH_EYEQ5 || COMPILE_TEST 23941795aa1SThéo Lebrun select PINMUX 24041795aa1SThéo Lebrun select GENERIC_PINCONF 24141795aa1SThéo Lebrun select AUXILIARY_BUS 24241795aa1SThéo Lebrun default MACH_EYEQ5 24341795aa1SThéo Lebrun help 24441795aa1SThéo Lebrun Pin controller driver for the Mobileye EyeQ5 platform. It does both 24541795aa1SThéo Lebrun pin config & pin muxing. It does not handle GPIO. 24641795aa1SThéo Lebrun 24741795aa1SThéo Lebrun Pin muxing supports two functions for each pin: first is GPIO, second 24841795aa1SThéo Lebrun is pin-dependent. Pin config is about bias & drive strength. 24941795aa1SThéo Lebrun 250b124c8bdSAndy Shevchenkoconfig PINCTRL_GEMINI 251b124c8bdSAndy Shevchenko bool 252b124c8bdSAndy Shevchenko depends on ARCH_GEMINI 253b124c8bdSAndy Shevchenko default ARCH_GEMINI 254b124c8bdSAndy Shevchenko select PINMUX 255b124c8bdSAndy Shevchenko select GENERIC_PINCONF 256b124c8bdSAndy Shevchenko select MFD_SYSCON 257b124c8bdSAndy Shevchenko 258b124c8bdSAndy Shevchenkoconfig PINCTRL_INGENIC 259b124c8bdSAndy Shevchenko bool "Pinctrl driver for the Ingenic JZ47xx SoCs" 260b124c8bdSAndy Shevchenko default MACH_INGENIC 261b124c8bdSAndy Shevchenko depends on OF 262b124c8bdSAndy Shevchenko depends on MIPS || COMPILE_TEST 263b124c8bdSAndy Shevchenko select GENERIC_PINCONF 264b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 265b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 266b124c8bdSAndy Shevchenko select GPIOLIB 267b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 268b124c8bdSAndy Shevchenko select REGMAP_MMIO 269b124c8bdSAndy Shevchenko 270b124c8bdSAndy Shevchenkoconfig PINCTRL_K210 271b124c8bdSAndy Shevchenko bool "Pinctrl driver for the Canaan Kendryte K210 SoC" 272c1556a9bSYangyu Chen depends on RISCV && SOC_CANAAN_K210 && OF 273b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 274b124c8bdSAndy Shevchenko select GENERIC_PINCONF 275b124c8bdSAndy Shevchenko select GPIOLIB 276b124c8bdSAndy Shevchenko select OF_GPIO 277b124c8bdSAndy Shevchenko select REGMAP_MMIO 278c1556a9bSYangyu Chen default SOC_CANAAN_K210 279b124c8bdSAndy Shevchenko help 280b124c8bdSAndy Shevchenko Add support for the Canaan Kendryte K210 RISC-V SOC Field 281b124c8bdSAndy Shevchenko Programmable IO Array (FPIOA) controller. 282b124c8bdSAndy Shevchenko 283545887eaSZe Huangconfig PINCTRL_K230 284545887eaSZe Huang bool "Pinctrl driver for the Canaan Kendryte K230 SoC" 285545887eaSZe Huang depends on OF 286642490b5SGeert Uytterhoeven depends on ARCH_CANAAN || COMPILE_TEST 287545887eaSZe Huang select GENERIC_PINCTRL_GROUPS 288545887eaSZe Huang select GENERIC_PINMUX_FUNCTIONS 289545887eaSZe Huang select GENERIC_PINCONF 290545887eaSZe Huang select REGMAP_MMIO 291545887eaSZe Huang help 292545887eaSZe Huang Add support for the Canaan Kendryte K230 RISC-V SOC pin controller. 293545887eaSZe Huang 294b124c8bdSAndy Shevchenkoconfig PINCTRL_KEEMBAY 295b124c8bdSAndy Shevchenko tristate "Pinctrl driver for Intel Keem Bay SoC" 296b124c8bdSAndy Shevchenko depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST) 297b124c8bdSAndy Shevchenko depends on HAS_IOMEM 298b124c8bdSAndy Shevchenko select PINMUX 299b124c8bdSAndy Shevchenko select PINCONF 300b124c8bdSAndy Shevchenko select GENERIC_PINCONF 301b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 302b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 303b124c8bdSAndy Shevchenko select GPIOLIB 304b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 305b124c8bdSAndy Shevchenko select GPIO_GENERIC 306b124c8bdSAndy Shevchenko help 307b124c8bdSAndy Shevchenko This selects pin control driver for the Intel Keem Bay SoC. 308b124c8bdSAndy Shevchenko It provides pin config functions such as pull-up, pull-down, 309b124c8bdSAndy Shevchenko interrupt, drive strength, sec lock, Schmitt trigger, slew 310b124c8bdSAndy Shevchenko rate control and direction control. This module will be 311b124c8bdSAndy Shevchenko called as pinctrl-keembay. 312b124c8bdSAndy Shevchenko 3133f8c50c9SJohn Crispinconfig PINCTRL_LANTIQ 3143f8c50c9SJohn Crispin bool 3153f8c50c9SJohn Crispin depends on LANTIQ 3163f8c50c9SJohn Crispin select PINMUX 3173f8c50c9SJohn Crispin select PINCONF 3183f8c50c9SJohn Crispin 319b124c8bdSAndy Shevchenkoconfig PINCTRL_FALCON 320b124c8bdSAndy Shevchenko bool 321b124c8bdSAndy Shevchenko depends on SOC_FALCON 322b124c8bdSAndy Shevchenko depends on PINCTRL_LANTIQ 323b124c8bdSAndy Shevchenko 324f73f88acSzhanghongchenconfig PINCTRL_LOONGSON2 325f73f88acSzhanghongchen tristate "Pinctrl driver for the Loongson-2 SoC" 326c0f358fdSRen Zhijie depends on OF && (LOONGARCH || COMPILE_TEST) 327f73f88acSzhanghongchen select PINMUX 328f73f88acSzhanghongchen select GENERIC_PINCONF 329f73f88acSzhanghongchen help 330f73f88acSzhanghongchen This selects pin control driver for the Loongson-2 SoC. It 331f73f88acSzhanghongchen provides pin config functions multiplexing. GPIO pin pull-up, 332f73f88acSzhanghongchen pull-down functions are not supported. Say yes to enable 333f73f88acSzhanghongchen pinctrl for Loongson-2 SoC. 334f73f88acSzhanghongchen 335b124c8bdSAndy Shevchenkoconfig PINCTRL_XWAY 336b124c8bdSAndy Shevchenko bool 337b124c8bdSAndy Shevchenko depends on SOC_TYPE_XWAY 338b124c8bdSAndy Shevchenko depends on PINCTRL_LANTIQ 339b124c8bdSAndy Shevchenko 3402f77ac93SJoachim Eastwoodconfig PINCTRL_LPC18XX 3412f77ac93SJoachim Eastwood bool "NXP LPC18XX/43XX SCU pinctrl driver" 3422f77ac93SJoachim Eastwood depends on OF && (ARCH_LPC18XX || COMPILE_TEST) 3432f77ac93SJoachim Eastwood default ARCH_LPC18XX 3442f77ac93SJoachim Eastwood select PINMUX 3452f77ac93SJoachim Eastwood select GENERIC_PINCONF 3462f77ac93SJoachim Eastwood help 3472f77ac93SJoachim Eastwood Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU). 3482f77ac93SJoachim Eastwood 349b124c8bdSAndy Shevchenkoconfig PINCTRL_MAX77620 350b124c8bdSAndy Shevchenko tristate "MAX77620/MAX20024 Pincontrol support" 351b124c8bdSAndy Shevchenko depends on MFD_MAX77620 && OF 35206351d13SLinus Walleij select PINMUX 3531c5b7f3cSLinus Walleij select GENERIC_PINCONF 354b124c8bdSAndy Shevchenko help 355b124c8bdSAndy Shevchenko Say Y here to enable Pin control support for Maxim MAX77620 PMIC. 356b124c8bdSAndy Shevchenko This PMIC has 8 GPIO pins that work as GPIO as well as special 357b124c8bdSAndy Shevchenko function in alternate mode. This driver also configure push-pull, 358b124c8bdSAndy Shevchenko open drain, FPS slots etc. 35906351d13SLinus Walleij 3600f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_I2C 3610f04a817SAndy Shevchenko tristate 3620f04a817SAndy Shevchenko select REGMAP_I2C 3630f04a817SAndy Shevchenko 3640f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_SPI 3650f04a817SAndy Shevchenko tristate 3660f04a817SAndy Shevchenko select REGMAP_SPI 3670f04a817SAndy Shevchenko 36864ac43e6SSebastian Reichelconfig PINCTRL_MCP23S08 36964ac43e6SSebastian Reichel tristate "Microchip MCP23xxx I/O expander" 37064ac43e6SSebastian Reichel depends on SPI_MASTER || I2C 371e2a021d4SLinus Walleij select GPIOLIB 37264ac43e6SSebastian Reichel select GPIOLIB_IRQCHIP 37382039d24SSebastian Reichel select GENERIC_PINCONF 3740f04a817SAndy Shevchenko select PINCTRL_MCP23S08_I2C if I2C 3750f04a817SAndy Shevchenko select PINCTRL_MCP23S08_SPI if SPI_MASTER 37664ac43e6SSebastian Reichel help 3776ff45566SJan Kundrát SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 / 3786ff45566SJan Kundrát MCP23008 / MCP23017 / MCP23018 I/O expanders. 3796ff45566SJan Kundrát This provides a GPIO interface supporting inputs and outputs and a 3806ff45566SJan Kundrát corresponding interrupt-controller. 38164ac43e6SSebastian Reichel 382b124c8bdSAndy Shevchenkoconfig PINCTRL_MICROCHIP_SGPIO 3832f65923cSColin Foster tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO" 384b124c8bdSAndy Shevchenko depends on OF 385b124c8bdSAndy Shevchenko depends on HAS_IOMEM 386b124c8bdSAndy Shevchenko select GPIOLIB 387b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 388b124c8bdSAndy Shevchenko select GENERIC_PINCONF 389b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 390b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 391b124c8bdSAndy Shevchenko select OF_GPIO 392b124c8bdSAndy Shevchenko help 393b124c8bdSAndy Shevchenko Support for the serial GPIO interface used on Microsemi and 394b124c8bdSAndy Shevchenko Microchip SoCs. By using a serial interface, the SIO 395b124c8bdSAndy Shevchenko controller significantly extends the number of available 396b124c8bdSAndy Shevchenko GPIOs with a minimum number of additional pins on the 397b124c8bdSAndy Shevchenko device. The primary purpose of the SIO controller is to 398b124c8bdSAndy Shevchenko connect control signals from SFP modules and to act as an 399b124c8bdSAndy Shevchenko LED controller. 400b124c8bdSAndy Shevchenko 4012f65923cSColin Foster If compiled as a module, the module name will be 4022f65923cSColin Foster pinctrl-microchip-sgpio. 4032f65923cSColin Foster 404b124c8bdSAndy Shevchenkoconfig PINCTRL_OCELOT 4054425205eSClément Léger tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs" 406b124c8bdSAndy Shevchenko depends on OF 407b124c8bdSAndy Shevchenko depends on HAS_IOMEM 408b124c8bdSAndy Shevchenko select GPIOLIB 409b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 410b124c8bdSAndy Shevchenko select GENERIC_PINCONF 411b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 412b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 413b124c8bdSAndy Shevchenko select OF_GPIO 414b124c8bdSAndy Shevchenko select REGMAP_MMIO 4153f668365SColin Foster help 4163f668365SColin Foster Support for the internal GPIO interfaces on Microsemi Ocelot and 4173f668365SColin Foster Jaguar2 SoCs. 4183f668365SColin Foster 4193f668365SColin Foster If conpiled as a module, the module name will be pinctrl-ocelot. 420b124c8bdSAndy Shevchenko 4210a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS 422767b8ce3SPaul Gortmaker tristate "Pinctrl driver for the PALMAS Series MFD devices" 4230a8d3e24SLaxman Dewangan depends on OF && MFD_PALMAS 42463ca8db7SAxel Lin select PINMUX 4250a8d3e24SLaxman Dewangan select GENERIC_PINCONF 4260a8d3e24SLaxman Dewangan help 4270a8d3e24SLaxman Dewangan Palmas device supports the configuration of pins for different 4280a8d3e24SLaxman Dewangan functionality. This driver supports the pinmux, push-pull and 4290a8d3e24SLaxman Dewangan open drain configuration for the Palmas series devices like 4300a8d3e24SLaxman Dewangan TPS65913, TPS80036 etc. 4310a8d3e24SLaxman Dewangan 43237c646dcSHerve Codinaconfig PINCTRL_PEF2256 43337c646dcSHerve Codina tristate "Lantiq PEF2256 (FALC56) pin controller driver" 43437c646dcSHerve Codina depends on OF && FRAMER_PEF2256 43537c646dcSHerve Codina select PINMUX 43637c646dcSHerve Codina select PINCONF 43737c646dcSHerve Codina select GENERIC_PINCONF 43837c646dcSHerve Codina help 43937c646dcSHerve Codina This option enables the pin controller support for the Lantiq PEF2256 44037c646dcSHerve Codina framer, also known as FALC56. 44137c646dcSHerve Codina 44237c646dcSHerve Codina If unsure, say N. 44337c646dcSHerve Codina 44437c646dcSHerve Codina To compile this driver as a module, choose M here: the 44537c646dcSHerve Codina module will be called pinctrl-pef2256. 44637c646dcSHerve Codina 4472ba384e6SJoshua Hendersonconfig PINCTRL_PIC32 4482ba384e6SJoshua Henderson bool "Microchip PIC32 pin controller driver" 4492ba384e6SJoshua Henderson depends on OF 4502ba384e6SJoshua Henderson depends on MACH_PIC32 4512ba384e6SJoshua Henderson select PINMUX 4522ba384e6SJoshua Henderson select GENERIC_PINCONF 4532ba384e6SJoshua Henderson select GPIOLIB_IRQCHIP 4542ba384e6SJoshua Henderson select OF_GPIO 4552ba384e6SJoshua Henderson help 4562ba384e6SJoshua Henderson This is the pin controller and gpio driver for Microchip PIC32 4572ba384e6SJoshua Henderson microcontrollers. This option is selected automatically when specific 4582ba384e6SJoshua Henderson machine and arch are selected to build. 4592ba384e6SJoshua Henderson 4602ba384e6SJoshua Hendersonconfig PINCTRL_PIC32MZDA 4612ba384e6SJoshua Henderson def_bool y if PIC32MZDA 4622ba384e6SJoshua Henderson select PINCTRL_PIC32 4632ba384e6SJoshua Henderson 464b124c8bdSAndy Shevchenkoconfig PINCTRL_PISTACHIO 465b124c8bdSAndy Shevchenko bool "IMG Pistachio SoC pinctrl driver" 466b124c8bdSAndy Shevchenko depends on OF && (MIPS || COMPILE_TEST) 467b124c8bdSAndy Shevchenko depends on GPIOLIB 468b124c8bdSAndy Shevchenko select PINMUX 469b124c8bdSAndy Shevchenko select GENERIC_PINCONF 470b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 471b124c8bdSAndy Shevchenko select OF_GPIO 472b124c8bdSAndy Shevchenko help 473b124c8bdSAndy Shevchenko This support pinctrl and GPIO driver for IMG Pistachio SoC. 474b124c8bdSAndy Shevchenko 475b124c8bdSAndy Shevchenkoconfig PINCTRL_RK805 476b124c8bdSAndy Shevchenko tristate "Pinctrl and GPIO driver for RK805 PMIC" 477c20e8c5bSSebastian Reichel depends on MFD_RK8XX 478b124c8bdSAndy Shevchenko select GPIOLIB 479b124c8bdSAndy Shevchenko select PINMUX 480b124c8bdSAndy Shevchenko select GENERIC_PINCONF 481b124c8bdSAndy Shevchenko help 482b124c8bdSAndy Shevchenko This selects the pinctrl driver for RK805. 483b124c8bdSAndy Shevchenko 484b58f0273SJames Hoganconfig PINCTRL_ROCKCHIP 485b58f0273SJames Hogan tristate "Rockchip gpio and pinctrl driver" 486b58f0273SJames Hogan depends on ARCH_ROCKCHIP || COMPILE_TEST 487b58f0273SJames Hogan depends on OF 488b58f0273SJames Hogan select GPIOLIB 4893bece55aSLinus Walleij select PINMUX 4903bece55aSLinus Walleij select GENERIC_PINCONF 49198da3529SLinus Walleij select GENERIC_IRQ_CHIP 49298da3529SLinus Walleij select MFD_SYSCON 493dc0b1aa3SLinus Walleij select OF_GPIO 49445f034efSLinus Walleij default ARCH_ROCKCHIP 495ca402d37SLinus Walleij help 496b124c8bdSAndy Shevchenko This support pinctrl and GPIO driver for Rockchip SoCs. 497f0b9a7e5SThomas Abraham 498eb524cb6SPeng Fanconfig PINCTRL_SCMI 499eb524cb6SPeng Fan tristate "Pinctrl driver using SCMI protocol interface" 500eb524cb6SPeng Fan depends on ARM_SCMI_PROTOCOL || COMPILE_TEST 501eb524cb6SPeng Fan select PINMUX 502eb524cb6SPeng Fan select GENERIC_PINCONF 503eb524cb6SPeng Fan help 504eb524cb6SPeng Fan This driver provides support for pinctrl which is controlled 505eb524cb6SPeng Fan by firmware that implements the SCMI interface. 506eb524cb6SPeng Fan It uses SCMI Message Protocol to interact with the 507eb524cb6SPeng Fan firmware providing all the pinctrl controls. 508eb524cb6SPeng Fan 509af99a750SHeiko Stuebnerconfig PINCTRL_SINGLE 510af99a750SHeiko Stuebner tristate "One-register-per-pin type device tree based pinctrl driver" 511af99a750SHeiko Stuebner depends on OF 512af99a750SHeiko Stuebner depends on HAS_IOMEM 51361dd7261STomasz Figa select GENERIC_PINCTRL_GROUPS 51461dd7261STomasz Figa select GENERIC_PINMUX_FUNCTIONS 51561dd7261STomasz Figa select GENERIC_PINCONF 51661dd7261STomasz Figa help 51761dd7261STomasz Figa This selects the device tree based generic pinctrl driver. 51806763c74SThomas Petazzoni 519ca402d37SLinus Walleijconfig PINCTRL_ST 520ca402d37SLinus Walleij bool 521ca402d37SLinus Walleij depends on OF 52230574f0dSThomas Abraham select PINMUX 523cbc351abSArnd Bergmann select PINCONF 524924da314SAxel Lin select GPIOLIB_IRQCHIP 52530574f0dSThomas Abraham 52630574f0dSThomas Abrahamconfig PINCTRL_STMFX 52730574f0dSThomas Abraham tristate "STMicroelectronics STMFX GPIO expander pinctrl driver" 52843b169dbSThomas Abraham depends on I2C 52943b169dbSThomas Abraham depends on OF_GPIO 530924da314SAxel Lin select GENERIC_PINCONF 53143b169dbSThomas Abraham select GPIOLIB_IRQCHIP 53243b169dbSThomas Abraham select MFD_STMFX 5337e8d9415SSebastian Hesselbarth help 5347e8d9415SSebastian Hesselbarth Driver for STMicroelectronics Multi-Function eXpander (STMFX) 5357e8d9415SSebastian Hesselbarth GPIO expander. 5367e8d9415SSebastian Hesselbarth This provides a GPIO interface supporting inputs and outputs, 5377e8d9415SSebastian Hesselbarth and configuring push-pull, open-drain, and can also be used as 5387e8d9415SSebastian Hesselbarth interrupt-controller. 539c9f95cedSSebastian Hesselbarth 540b124c8bdSAndy Shevchenkoconfig PINCTRL_SX150X 541b124c8bdSAndy Shevchenko bool "Semtech SX150x I2C GPIO expander pinctrl driver" 542b124c8bdSAndy Shevchenko depends on I2C=y 543deda8287SViresh Kumar select PINMUX 544b124c8bdSAndy Shevchenko select PINCONF 5452744e8afSLinus Walleij select GENERIC_PINCONF 546b124c8bdSAndy Shevchenko select GPIOLIB 547485dba27SMasahiro Yamada select GPIOLIB_IRQCHIP 548b124c8bdSAndy Shevchenko select REGMAP 549b17f2f9bSRay Jui help 550b124c8bdSAndy Shevchenko Say Y here to provide support for Semtech SX150x-series I2C 551b124c8bdSAndy Shevchenko GPIO expanders as pinctrl module. 552b124c8bdSAndy Shevchenko Compatible models include: 553b124c8bdSAndy Shevchenko - 8 bits: sx1508q, sx1502q 554b124c8bdSAndy Shevchenko - 16 bits: sx1509q, sx1506q 5552744e8afSLinus Walleij 556b124c8bdSAndy Shevchenkoconfig PINCTRL_TB10X 557b124c8bdSAndy Shevchenko bool 558b124c8bdSAndy Shevchenko depends on OF && ARC_PLAT_TB10X 559b124c8bdSAndy Shevchenko select GPIOLIB 560b124c8bdSAndy Shevchenko 561901b277eSEsteban Blancconfig PINCTRL_TPS6594 562901b277eSEsteban Blanc tristate "Pinctrl and GPIO driver for TI TPS6594 PMIC" 563901b277eSEsteban Blanc depends on OF && MFD_TPS6594 564901b277eSEsteban Blanc default MFD_TPS6594 565901b277eSEsteban Blanc select PINMUX 566901b277eSEsteban Blanc select GPIOLIB 567901b277eSEsteban Blanc select REGMAP 568901b277eSEsteban Blanc select GPIO_REGMAP 569901b277eSEsteban Blanc select GENERIC_PINCONF 570901b277eSEsteban Blanc help 571901b277eSEsteban Blanc Say Y to select the pinmuxing and GPIOs driver for the TPS6594 572901b277eSEsteban Blanc PMICs chip family. 573901b277eSEsteban Blanc 574901b277eSEsteban Blanc This driver can also be built as a module 575901b277eSEsteban Blanc called tps6594-pinctrl. 576901b277eSEsteban Blanc 577bed5cd6fSEmil Renner Berthingconfig PINCTRL_TH1520 578bed5cd6fSEmil Renner Berthing tristate "Pinctrl driver for the T-Head TH1520 SoC" 579bed5cd6fSEmil Renner Berthing depends on ARCH_THEAD || COMPILE_TEST 58060ba5da2SArnd Bergmann depends on OF 581bed5cd6fSEmil Renner Berthing select GENERIC_PINMUX_FUNCTIONS 582bed5cd6fSEmil Renner Berthing select GENERIC_PINCONF 583bed5cd6fSEmil Renner Berthing select PINMUX 584bed5cd6fSEmil Renner Berthing help 585bed5cd6fSEmil Renner Berthing This is the driver for the pin controller blocks on the 586bed5cd6fSEmil Renner Berthing T-Head TH1520 SoC. 587bed5cd6fSEmil Renner Berthing 588bed5cd6fSEmil Renner Berthing This driver is needed for RISC-V development boards like 589bed5cd6fSEmil Renner Berthing the BeagleV Ahead and the LicheePi 4A. 590bed5cd6fSEmil Renner Berthing 5912744e8afSLinus Walleijconfig PINCTRL_ZYNQ 5922744e8afSLinus Walleij bool "Pinctrl driver for Xilinx Zynq" 5932744e8afSLinus Walleij depends on ARCH_ZYNQ 5942744e8afSLinus Walleij select PINMUX 5952744e8afSLinus Walleij select GENERIC_PINCONF 5962744e8afSLinus Walleij help 5972744e8afSLinus Walleij This selects the pinctrl driver for Xilinx Zynq. 5982744e8afSLinus Walleij 5998b242ca7SSai Krishna Potthuriconfig PINCTRL_ZYNQMP 6008b242ca7SSai Krishna Potthuri tristate "Pinctrl driver for Xilinx ZynqMP" 6018b242ca7SSai Krishna Potthuri depends on ZYNQMP_FIRMWARE 6028b242ca7SSai Krishna Potthuri select PINMUX 6038b242ca7SSai Krishna Potthuri select GENERIC_PINCONF 6048b242ca7SSai Krishna Potthuri default ZYNQMP_FIRMWARE 6058b242ca7SSai Krishna Potthuri help 6068b242ca7SSai Krishna Potthuri This selects the pinctrl driver for Xilinx ZynqMP platform. 6078b242ca7SSai Krishna Potthuri This driver will query the pin information from the firmware 6088b242ca7SSai Krishna Potthuri and allow configuring the pins. 6098b242ca7SSai Krishna Potthuri Configuration can include the mux function to select on those 6108b242ca7SSai Krishna Potthuri pin(s)/group(s), and various pin configuration parameters 6118b242ca7SSai Krishna Potthuri such as pull-up, slew rate, etc. 612fa99e701SSai Krishna Potthuri This driver can also be built as a module. If so, the module 613fa99e701SSai Krishna Potthuri will be called pinctrl-zynqmp. 6148b242ca7SSai Krishna Potthuri 615d11f9328SAsmaa Mnebhiconfig PINCTRL_MLXBF3 616d11f9328SAsmaa Mnebhi tristate "NVIDIA BlueField-3 SoC Pinctrl driver" 617d11f9328SAsmaa Mnebhi depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST 618d11f9328SAsmaa Mnebhi select PINMUX 619d11f9328SAsmaa Mnebhi select GPIOLIB 620d11f9328SAsmaa Mnebhi select GPIOLIB_IRQCHIP 621d11f9328SAsmaa Mnebhi help 622d11f9328SAsmaa Mnebhi Say Y to select the pinctrl driver for BlueField-3 SoCs. 623d11f9328SAsmaa Mnebhi This pin controller allows selecting the mux function for 624d11f9328SAsmaa Mnebhi each pin. This driver can also be built as a module called 625d11f9328SAsmaa Mnebhi pinctrl-mlxbf3. 626d11f9328SAsmaa Mnebhi 6272242ddfbSManivannan Sadhasivamsource "drivers/pinctrl/actions/Kconfig" 6284d3d0e42SAndrew Jefferysource "drivers/pinctrl/aspeed/Kconfig" 6292744e8afSLinus Walleijsource "drivers/pinctrl/bcm/Kconfig" 6302744e8afSLinus Walleijsource "drivers/pinctrl/berlin/Kconfig" 631b124c8bdSAndy Shevchenkosource "drivers/pinctrl/cirrus/Kconfig" 6322744e8afSLinus Walleijsource "drivers/pinctrl/freescale/Kconfig" 6332744e8afSLinus Walleijsource "drivers/pinctrl/intel/Kconfig" 634b124c8bdSAndy Shevchenkosource "drivers/pinctrl/mediatek/Kconfig" 635b124c8bdSAndy Shevchenkosource "drivers/pinctrl/meson/Kconfig" 6362744e8afSLinus Walleijsource "drivers/pinctrl/mvebu/Kconfig" 6373a198059SLinus Walleijsource "drivers/pinctrl/nomadik/Kconfig" 6383b588e43STomer Maimonsource "drivers/pinctrl/nuvoton/Kconfig" 639fd84aaa8SChester Linsource "drivers/pinctrl/nxp/Kconfig" 6404b15ec9dSRobert Jarzmiksource "drivers/pinctrl/pxa/Kconfig" 64169b78b8dSLinus Walleijsource "drivers/pinctrl/qcom/Kconfig" 642e99ce780STzuyi Changsource "drivers/pinctrl/realtek/Kconfig" 643077365a9SGeert Uytterhoevensource "drivers/pinctrl/renesas/Kconfig" 644ebe629a3SSachin Kamatsource "drivers/pinctrl/samsung/Kconfig" 645a29d8e93SInochi Amaotosource "drivers/pinctrl/sophgo/Kconfig" 646a83c29e1SYixun Lansource "drivers/pinctrl/spacemit/Kconfig" 6472744e8afSLinus Walleijsource "drivers/pinctrl/spear/Kconfig" 64841d32cfcSBaolin Wangsource "drivers/pinctrl/sprd/Kconfig" 649ba7fdf88SJianlong Huangsource "drivers/pinctrl/starfive/Kconfig" 650aceb16dcSMaxime Coquelinsource "drivers/pinctrl/stm32/Kconfig" 651aa74c44bSWells Lusource "drivers/pinctrl/sunplus/Kconfig" 6525f910777SMaxime Ripardsource "drivers/pinctrl/sunxi/Kconfig" 65325cbac77SMasahiro Yamadasource "drivers/pinctrl/tegra/Kconfig" 654003910ebSNishanth Menonsource "drivers/pinctrl/ti/Kconfig" 6556e908892SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig" 656a68a7844SNobuhiro Iwamatsusource "drivers/pinctrl/visconti/Kconfig" 657b124c8bdSAndy Shevchenkosource "drivers/pinctrl/vt8500/Kconfig" 6581948d5c5SRahul Tanwar 659d219b924SPhil Reidendif 660