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_EIC7700 210035f9007SNikita Shubin tristate "EIC7700 PINCTRL driver" 211035f9007SNikita Shubin depends on ARCH_ESWIN || COMPILE_TEST 212035f9007SNikita Shubin select PINMUX 213035f9007SNikita Shubin select GENERIC_PINCONF 214035f9007SNikita Shubin help 215035f9007SNikita Shubin This driver support for the pin controller in ESWIN's EIC7700 SoC, 216b124c8bdSAndy Shevchenko which supports pin multiplexing, pin configuration,and rgmii voltage 217b124c8bdSAndy Shevchenko control. 218b124c8bdSAndy Shevchenko Say Y here to enable the eic7700 pinctrl driver 219b124c8bdSAndy Shevchenko 220b124c8bdSAndy Shevchenkoconfig PINCTRL_EP93XX 221b124c8bdSAndy Shevchenko bool 222b124c8bdSAndy Shevchenko depends on ARCH_EP93XX || COMPILE_TEST 223b124c8bdSAndy Shevchenko select PINMUX 224b124c8bdSAndy Shevchenko select GENERIC_PINCONF 225b124c8bdSAndy Shevchenko select MFD_SYSCON 226b124c8bdSAndy Shevchenko 227b124c8bdSAndy Shevchenkoconfig PINCTRL_EQUILIBRIUM 228b124c8bdSAndy Shevchenko tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC" 229b124c8bdSAndy Shevchenko depends on OF && HAS_IOMEM 230b124c8bdSAndy Shevchenko depends on X86 || COMPILE_TEST 231b124c8bdSAndy Shevchenko select PINMUX 232b124c8bdSAndy Shevchenko select PINCONF 233b124c8bdSAndy Shevchenko select GPIOLIB 234b124c8bdSAndy Shevchenko select GPIO_GENERIC 23541795aa1SThéo Lebrun select GPIOLIB_IRQCHIP 23641795aa1SThéo Lebrun select GENERIC_PINCONF 23741795aa1SThéo Lebrun select GENERIC_PINCTRL_GROUPS 23841795aa1SThéo Lebrun select GENERIC_PINMUX_FUNCTIONS 23941795aa1SThéo Lebrun help 24041795aa1SThéo Lebrun Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning 24141795aa1SThéo Lebrun Mountain network processor SoC that supports both the GPIO and pin 24241795aa1SThéo Lebrun control frameworks. It provides interfaces to setup pin muxing, assign 24341795aa1SThéo Lebrun desired pin functions, configure GPIO attributes for LGM SoC pins. 24441795aa1SThéo Lebrun Pin muxing and pin config settings are retrieved from device tree. 24541795aa1SThéo Lebrun 24641795aa1SThéo Lebrunconfig PINCTRL_EYEQ5 24741795aa1SThéo Lebrun bool "Mobileye EyeQ5 pinctrl driver" 24841795aa1SThéo Lebrun depends on OF 24941795aa1SThéo Lebrun depends on MACH_EYEQ5 || COMPILE_TEST 250b124c8bdSAndy Shevchenko select PINMUX 251b124c8bdSAndy Shevchenko select GENERIC_PINCONF 252b124c8bdSAndy Shevchenko select AUXILIARY_BUS 253b124c8bdSAndy Shevchenko default MACH_EYEQ5 254b124c8bdSAndy Shevchenko help 255b124c8bdSAndy Shevchenko Pin controller driver for the Mobileye EyeQ5 platform. It does both 256b124c8bdSAndy Shevchenko pin config & pin muxing. It does not handle GPIO. 257b124c8bdSAndy Shevchenko 258b124c8bdSAndy Shevchenko Pin muxing supports two functions for each pin: first is GPIO, second 259b124c8bdSAndy Shevchenko is pin-dependent. Pin config is about bias & drive strength. 260b124c8bdSAndy Shevchenko 261b124c8bdSAndy Shevchenkoconfig PINCTRL_GEMINI 262b124c8bdSAndy Shevchenko bool 263b124c8bdSAndy Shevchenko depends on ARCH_GEMINI 264b124c8bdSAndy Shevchenko default ARCH_GEMINI 265b124c8bdSAndy Shevchenko select PINMUX 266b124c8bdSAndy Shevchenko select GENERIC_PINCONF 267b124c8bdSAndy Shevchenko select MFD_SYSCON 268b124c8bdSAndy Shevchenko 269b124c8bdSAndy Shevchenkoconfig PINCTRL_INGENIC 270b124c8bdSAndy Shevchenko bool "Pinctrl driver for the Ingenic JZ47xx SoCs" 271b124c8bdSAndy Shevchenko default MACH_INGENIC 272c1556a9bSYangyu Chen depends on OF 273b124c8bdSAndy Shevchenko depends on MIPS || COMPILE_TEST 274b124c8bdSAndy Shevchenko select GENERIC_PINCONF 275b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 276b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 277b124c8bdSAndy Shevchenko select GPIOLIB 278c1556a9bSYangyu Chen select GPIOLIB_IRQCHIP 279b124c8bdSAndy Shevchenko select REGMAP_MMIO 280b124c8bdSAndy Shevchenko 281b124c8bdSAndy Shevchenkoconfig PINCTRL_K210 282b124c8bdSAndy Shevchenko bool "Pinctrl driver for the Canaan Kendryte K210 SoC" 283545887eaSZe Huang depends on RISCV && SOC_CANAAN_K210 || COMPILE_TEST 284545887eaSZe Huang depends on OF 285545887eaSZe Huang select GENERIC_PINMUX_FUNCTIONS 286642490b5SGeert Uytterhoeven select GENERIC_PINCONF 287545887eaSZe Huang select GPIOLIB 288545887eaSZe Huang select OF_GPIO 289545887eaSZe Huang select REGMAP_MMIO 290545887eaSZe Huang default SOC_CANAAN_K210 291545887eaSZe Huang help 292545887eaSZe Huang Add support for the Canaan Kendryte K210 RISC-V SOC Field 293545887eaSZe Huang Programmable IO Array (FPIOA) controller. 294b124c8bdSAndy Shevchenko 295b124c8bdSAndy Shevchenkoconfig PINCTRL_K230 296b124c8bdSAndy Shevchenko bool "Pinctrl driver for the Canaan Kendryte K230 SoC" 297b124c8bdSAndy Shevchenko depends on OF 298b124c8bdSAndy Shevchenko depends on ARCH_CANAAN || COMPILE_TEST 299b124c8bdSAndy Shevchenko select GENERIC_PINCTRL_GROUPS 300b124c8bdSAndy Shevchenko select GENERIC_PINMUX_FUNCTIONS 301b124c8bdSAndy Shevchenko select GENERIC_PINCONF 302b124c8bdSAndy Shevchenko select REGMAP_MMIO 303b124c8bdSAndy Shevchenko help 304b124c8bdSAndy Shevchenko Add support for the Canaan Kendryte K230 RISC-V SOC pin controller. 305b124c8bdSAndy Shevchenko 306b124c8bdSAndy Shevchenkoconfig PINCTRL_KEEMBAY 307b124c8bdSAndy Shevchenko tristate "Pinctrl driver for Intel Keem Bay SoC" 308b124c8bdSAndy Shevchenko depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST) 309b124c8bdSAndy Shevchenko depends on HAS_IOMEM 310b124c8bdSAndy Shevchenko select PINMUX 311b124c8bdSAndy Shevchenko select PINCONF 312b124c8bdSAndy Shevchenko select GENERIC_PINCONF 3133f8c50c9SJohn Crispin select GENERIC_PINCTRL_GROUPS 3143f8c50c9SJohn Crispin select GENERIC_PINMUX_FUNCTIONS 3153f8c50c9SJohn Crispin select GPIOLIB 3163f8c50c9SJohn Crispin select GPIOLIB_IRQCHIP 3173f8c50c9SJohn Crispin select GPIO_GENERIC 3183f8c50c9SJohn Crispin help 319b124c8bdSAndy Shevchenko This selects pin control driver for the Intel Keem Bay SoC. 320b124c8bdSAndy Shevchenko It provides pin config functions such as pull-up, pull-down, 321b124c8bdSAndy Shevchenko interrupt, drive strength, sec lock, Schmitt trigger, slew 322b124c8bdSAndy Shevchenko rate control and direction control. This module will be 323b124c8bdSAndy Shevchenko called as pinctrl-keembay. 324f73f88acSzhanghongchen 325f73f88acSzhanghongchenconfig PINCTRL_LANTIQ 326c0f358fdSRen Zhijie bool 327f73f88acSzhanghongchen depends on LANTIQ 328f73f88acSzhanghongchen select PINMUX 329f73f88acSzhanghongchen select PINCONF 330f73f88acSzhanghongchen 331f73f88acSzhanghongchenconfig PINCTRL_FALCON 332f73f88acSzhanghongchen bool 333f73f88acSzhanghongchen depends on SOC_FALCON 334f73f88acSzhanghongchen depends on PINCTRL_LANTIQ 335b124c8bdSAndy Shevchenko 336b124c8bdSAndy Shevchenkoconfig PINCTRL_LOONGSON2 337b124c8bdSAndy Shevchenko tristate "Pinctrl driver for the Loongson-2 SoC" 338b124c8bdSAndy Shevchenko depends on OF && (LOONGARCH || COMPILE_TEST) 339b124c8bdSAndy Shevchenko select PINMUX 3402f77ac93SJoachim Eastwood select GENERIC_PINCONF 3412f77ac93SJoachim Eastwood help 3422f77ac93SJoachim Eastwood This selects pin control driver for the Loongson-2 SoC. It 3432f77ac93SJoachim Eastwood provides pin config functions multiplexing. GPIO pin pull-up, 3442f77ac93SJoachim Eastwood pull-down functions are not supported. Say yes to enable 3452f77ac93SJoachim Eastwood pinctrl for Loongson-2 SoC. 3462f77ac93SJoachim Eastwood 3472f77ac93SJoachim Eastwoodconfig PINCTRL_XWAY 3482f77ac93SJoachim Eastwood bool 349b124c8bdSAndy Shevchenko depends on SOC_TYPE_XWAY 350b124c8bdSAndy Shevchenko depends on PINCTRL_LANTIQ 351b124c8bdSAndy Shevchenko 35206351d13SLinus Walleijconfig PINCTRL_LPC18XX 3531c5b7f3cSLinus Walleij bool "NXP LPC18XX/43XX SCU pinctrl driver" 354b124c8bdSAndy Shevchenko depends on OF && (ARCH_LPC18XX || COMPILE_TEST) 355b124c8bdSAndy Shevchenko default ARCH_LPC18XX 356b124c8bdSAndy Shevchenko select PINMUX 357b124c8bdSAndy Shevchenko select GENERIC_PINCONF 358b124c8bdSAndy Shevchenko help 35906351d13SLinus Walleij Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU). 3600f04a817SAndy Shevchenko 3610f04a817SAndy Shevchenkoconfig PINCTRL_MAX77620 3620f04a817SAndy Shevchenko tristate "MAX77620/MAX20024 Pincontrol support" 3630f04a817SAndy Shevchenko depends on MFD_MAX77620 && OF 3640f04a817SAndy Shevchenko select PINMUX 3650f04a817SAndy Shevchenko select GENERIC_PINCONF 3660f04a817SAndy Shevchenko help 3670f04a817SAndy Shevchenko Say Y here to enable Pin control support for Maxim MAX77620 PMIC. 36864ac43e6SSebastian Reichel This PMIC has 8 GPIO pins that work as GPIO as well as special 36964ac43e6SSebastian Reichel function in alternate mode. This driver also configure push-pull, 37064ac43e6SSebastian Reichel open drain, FPS slots etc. 371e2a021d4SLinus Walleij 37264ac43e6SSebastian Reichelconfig PINCTRL_MCP23S08_I2C 37382039d24SSebastian Reichel tristate 3740f04a817SAndy Shevchenko select REGMAP_I2C 3750f04a817SAndy Shevchenko 37664ac43e6SSebastian Reichelconfig PINCTRL_MCP23S08_SPI 3776ff45566SJan Kundrát tristate 3786ff45566SJan Kundrát select REGMAP_SPI 3796ff45566SJan Kundrát 3806ff45566SJan Kundrátconfig PINCTRL_MCP23S08 38164ac43e6SSebastian Reichel tristate "Microchip MCP23xxx I/O expander" 382b124c8bdSAndy Shevchenko depends on SPI_MASTER || I2C 3832f65923cSColin Foster select GPIOLIB 384b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 385b124c8bdSAndy Shevchenko select GENERIC_PINCONF 386b124c8bdSAndy Shevchenko select PINCTRL_MCP23S08_I2C if I2C 387b124c8bdSAndy Shevchenko select PINCTRL_MCP23S08_SPI if SPI_MASTER 388b124c8bdSAndy Shevchenko help 389b124c8bdSAndy Shevchenko SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 / 390b124c8bdSAndy Shevchenko MCP23008 / MCP23017 / MCP23018 I/O expanders. 391b124c8bdSAndy Shevchenko This provides a GPIO interface supporting inputs and outputs and a 392b124c8bdSAndy Shevchenko corresponding interrupt-controller. 393b124c8bdSAndy Shevchenko 394b124c8bdSAndy Shevchenkoconfig PINCTRL_MICROCHIP_SGPIO 395b124c8bdSAndy Shevchenko tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO" 396b124c8bdSAndy Shevchenko depends on OF 397b124c8bdSAndy Shevchenko depends on HAS_IOMEM 398b124c8bdSAndy Shevchenko select GPIOLIB 399b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 400b124c8bdSAndy Shevchenko select GENERIC_PINCONF 4012f65923cSColin Foster select GENERIC_PINCTRL_GROUPS 4022f65923cSColin Foster select GENERIC_PINMUX_FUNCTIONS 4032f65923cSColin Foster select OF_GPIO 404b124c8bdSAndy Shevchenko help 4054425205eSClément Léger Support for the serial GPIO interface used on Microsemi and 406b124c8bdSAndy Shevchenko Microchip SoCs. By using a serial interface, the SIO 407b124c8bdSAndy Shevchenko controller significantly extends the number of available 408b124c8bdSAndy Shevchenko GPIOs with a minimum number of additional pins on the 409b124c8bdSAndy Shevchenko device. The primary purpose of the SIO controller is to 410b124c8bdSAndy Shevchenko connect control signals from SFP modules and to act as an 411b124c8bdSAndy Shevchenko LED controller. 412b124c8bdSAndy Shevchenko 413b124c8bdSAndy Shevchenko If compiled as a module, the module name will be 414b124c8bdSAndy Shevchenko pinctrl-microchip-sgpio. 4153f668365SColin Foster 4163f668365SColin Fosterconfig PINCTRL_OCELOT 4173f668365SColin Foster tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs" 4183f668365SColin Foster depends on OF 4193f668365SColin Foster depends on HAS_IOMEM 420b124c8bdSAndy Shevchenko select GPIOLIB 4210a8d3e24SLaxman Dewangan select GPIOLIB_IRQCHIP 422767b8ce3SPaul Gortmaker select GENERIC_PINCONF 4230a8d3e24SLaxman Dewangan select GENERIC_PINCTRL_GROUPS 42463ca8db7SAxel Lin select GENERIC_PINMUX_FUNCTIONS 4250a8d3e24SLaxman Dewangan select OF_GPIO 4260a8d3e24SLaxman Dewangan select REGMAP_MMIO 4270a8d3e24SLaxman Dewangan help 4280a8d3e24SLaxman Dewangan Support for the internal GPIO interfaces on Microsemi Ocelot and 4290a8d3e24SLaxman Dewangan Jaguar2 SoCs. 4300a8d3e24SLaxman Dewangan 4310a8d3e24SLaxman Dewangan If conpiled as a module, the module name will be pinctrl-ocelot. 43237c646dcSHerve Codina 43337c646dcSHerve Codinaconfig PINCTRL_PALMAS 43437c646dcSHerve Codina tristate "Pinctrl driver for the PALMAS Series MFD devices" 43537c646dcSHerve Codina depends on OF && MFD_PALMAS 43637c646dcSHerve Codina select PINMUX 43737c646dcSHerve Codina select GENERIC_PINCONF 43837c646dcSHerve Codina help 43937c646dcSHerve Codina Palmas device supports the configuration of pins for different 44037c646dcSHerve Codina functionality. This driver supports the pinmux, push-pull and 44137c646dcSHerve Codina open drain configuration for the Palmas series devices like 44237c646dcSHerve Codina TPS65913, TPS80036 etc. 44337c646dcSHerve Codina 44437c646dcSHerve Codinaconfig PINCTRL_PEF2256 44537c646dcSHerve Codina tristate "Lantiq PEF2256 (FALC56) pin controller driver" 44637c646dcSHerve Codina depends on OF && FRAMER_PEF2256 4472ba384e6SJoshua Henderson select PINMUX 4482ba384e6SJoshua Henderson select PINCONF 4492ba384e6SJoshua Henderson select GENERIC_PINCONF 4502ba384e6SJoshua Henderson help 4512ba384e6SJoshua Henderson This option enables the pin controller support for the Lantiq PEF2256 4522ba384e6SJoshua Henderson framer, also known as FALC56. 4532ba384e6SJoshua Henderson 4542ba384e6SJoshua Henderson If unsure, say N. 4552ba384e6SJoshua Henderson 4562ba384e6SJoshua Henderson To compile this driver as a module, choose M here: the 4572ba384e6SJoshua Henderson module will be called pinctrl-pef2256. 4582ba384e6SJoshua Henderson 4592ba384e6SJoshua Hendersonconfig PINCTRL_PIC32 4602ba384e6SJoshua Henderson bool "Microchip PIC32 pin controller driver" 4612ba384e6SJoshua Henderson depends on OF 4622ba384e6SJoshua Henderson depends on MACH_PIC32 4632ba384e6SJoshua Henderson select PINMUX 464b124c8bdSAndy Shevchenko select GENERIC_PINCONF 465b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 466b124c8bdSAndy Shevchenko select OF_GPIO 467b124c8bdSAndy Shevchenko help 468b124c8bdSAndy Shevchenko This is the pin controller and gpio driver for Microchip PIC32 469b124c8bdSAndy Shevchenko microcontrollers. This option is selected automatically when specific 470b124c8bdSAndy Shevchenko machine and arch are selected to build. 471b124c8bdSAndy Shevchenko 472b124c8bdSAndy Shevchenkoconfig PINCTRL_PIC32MZDA 473b124c8bdSAndy Shevchenko def_bool y if PIC32MZDA 474b124c8bdSAndy Shevchenko select PINCTRL_PIC32 475b124c8bdSAndy Shevchenko 476b124c8bdSAndy Shevchenkoconfig PINCTRL_PISTACHIO 477c20e8c5bSSebastian Reichel bool "IMG Pistachio SoC pinctrl driver" 478b124c8bdSAndy Shevchenko depends on OF && (MIPS || COMPILE_TEST) 479b124c8bdSAndy Shevchenko depends on GPIOLIB 480b124c8bdSAndy Shevchenko select PINMUX 481b124c8bdSAndy Shevchenko select GENERIC_PINCONF 482b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 483b124c8bdSAndy Shevchenko select OF_GPIO 484b58f0273SJames Hogan help 485b58f0273SJames Hogan This support pinctrl and GPIO driver for IMG Pistachio SoC. 486b58f0273SJames Hogan 487b58f0273SJames Hoganconfig PINCTRL_RK805 488b58f0273SJames Hogan tristate "Pinctrl and GPIO driver for RK805 PMIC" 4893bece55aSLinus Walleij depends on MFD_RK8XX 4903bece55aSLinus Walleij select GPIOLIB 49198da3529SLinus Walleij select PINMUX 49298da3529SLinus Walleij select GENERIC_PINCONF 493dc0b1aa3SLinus Walleij help 49445f034efSLinus Walleij This selects the pinctrl driver for RK805. 495ca402d37SLinus Walleij 496b124c8bdSAndy Shevchenkoconfig PINCTRL_ROCKCHIP 497f0b9a7e5SThomas Abraham tristate "Rockchip gpio and pinctrl driver" 498eb524cb6SPeng Fan depends on ARCH_ROCKCHIP || COMPILE_TEST 499eb524cb6SPeng Fan depends on OF 500eb524cb6SPeng Fan select GPIOLIB 501eb524cb6SPeng Fan select PINMUX 502eb524cb6SPeng Fan select GENERIC_PINCONF 503eb524cb6SPeng Fan select GENERIC_IRQ_CHIP 504eb524cb6SPeng Fan select MFD_SYSCON 505eb524cb6SPeng Fan select OF_GPIO 506eb524cb6SPeng Fan default ARCH_ROCKCHIP 507eb524cb6SPeng Fan help 508eb524cb6SPeng Fan This support pinctrl and GPIO driver for Rockchip SoCs. 509af99a750SHeiko Stuebner 510af99a750SHeiko Stuebnerconfig PINCTRL_SCMI 511af99a750SHeiko Stuebner tristate "Pinctrl driver using SCMI protocol interface" 512af99a750SHeiko Stuebner depends on ARM_SCMI_PROTOCOL || COMPILE_TEST 51361dd7261STomasz Figa select PINMUX 51461dd7261STomasz Figa select GENERIC_PINCONF 51561dd7261STomasz Figa help 51661dd7261STomasz Figa This driver provides support for pinctrl which is controlled 51761dd7261STomasz Figa by firmware that implements the SCMI interface. 51806763c74SThomas Petazzoni It uses SCMI Message Protocol to interact with the 519ca402d37SLinus Walleij firmware providing all the pinctrl controls. 520ca402d37SLinus Walleij 521ca402d37SLinus Walleijconfig PINCTRL_SINGLE 52230574f0dSThomas Abraham tristate "One-register-per-pin type device tree based pinctrl driver" 523cbc351abSArnd Bergmann depends on OF 524924da314SAxel Lin depends on HAS_IOMEM 52530574f0dSThomas Abraham select GENERIC_PINCTRL_GROUPS 52630574f0dSThomas Abraham select GENERIC_PINMUX_FUNCTIONS 52730574f0dSThomas Abraham select GENERIC_PINCONF 52843b169dbSThomas Abraham help 52943b169dbSThomas Abraham This selects the device tree based generic pinctrl driver. 530924da314SAxel Lin 53143b169dbSThomas Abrahamconfig PINCTRL_ST 53243b169dbSThomas Abraham bool 5337e8d9415SSebastian Hesselbarth depends on OF 5347e8d9415SSebastian Hesselbarth select PINMUX 5357e8d9415SSebastian Hesselbarth select PINCONF 5367e8d9415SSebastian Hesselbarth select GPIOLIB_IRQCHIP 5377e8d9415SSebastian Hesselbarth 5387e8d9415SSebastian Hesselbarthconfig PINCTRL_STMFX 539c9f95cedSSebastian Hesselbarth tristate "STMicroelectronics STMFX GPIO expander pinctrl driver" 540b124c8bdSAndy Shevchenko depends on I2C 541b124c8bdSAndy Shevchenko depends on OF_GPIO 542b124c8bdSAndy Shevchenko select GENERIC_PINCONF 543deda8287SViresh Kumar select GPIOLIB_IRQCHIP 544b124c8bdSAndy Shevchenko select MFD_STMFX 5452744e8afSLinus Walleij help 546b124c8bdSAndy Shevchenko Driver for STMicroelectronics Multi-Function eXpander (STMFX) 547485dba27SMasahiro Yamada GPIO expander. 548b124c8bdSAndy Shevchenko This provides a GPIO interface supporting inputs and outputs, 549b17f2f9bSRay Jui and configuring push-pull, open-drain, and can also be used as 550b124c8bdSAndy Shevchenko interrupt-controller. 551b124c8bdSAndy Shevchenko 552b124c8bdSAndy Shevchenkoconfig PINCTRL_SX150X 553b124c8bdSAndy Shevchenko bool "Semtech SX150x I2C GPIO expander pinctrl driver" 554b124c8bdSAndy Shevchenko depends on I2C=y 5552744e8afSLinus Walleij select PINMUX 556b124c8bdSAndy Shevchenko select PINCONF 557b124c8bdSAndy Shevchenko select GENERIC_PINCONF 558b124c8bdSAndy Shevchenko select GPIOLIB 559b124c8bdSAndy Shevchenko select GPIOLIB_IRQCHIP 560b124c8bdSAndy Shevchenko select REGMAP 561901b277eSEsteban Blanc help 562901b277eSEsteban Blanc Say Y here to provide support for Semtech SX150x-series I2C 563901b277eSEsteban Blanc GPIO expanders as pinctrl module. 564901b277eSEsteban Blanc Compatible models include: 565901b277eSEsteban Blanc - 8 bits: sx1508q, sx1502q 566901b277eSEsteban Blanc - 16 bits: sx1509q, sx1506q 567901b277eSEsteban Blanc 568901b277eSEsteban Blancconfig PINCTRL_TB10X 569901b277eSEsteban Blanc bool "Pinctrl for TB10X" if COMPILE_TEST 570901b277eSEsteban Blanc depends on OF && ARC_PLAT_TB10X || COMPILE_TEST 571901b277eSEsteban Blanc select GPIOLIB 572901b277eSEsteban Blanc 573901b277eSEsteban Blancconfig PINCTRL_TPS6594 574901b277eSEsteban Blanc tristate "Pinctrl and GPIO driver for TI TPS6594 PMIC" 575901b277eSEsteban Blanc depends on OF && MFD_TPS6594 576901b277eSEsteban Blanc default MFD_TPS6594 577bed5cd6fSEmil Renner Berthing select PINMUX 578bed5cd6fSEmil Renner Berthing select GPIOLIB 579bed5cd6fSEmil Renner Berthing select REGMAP 58060ba5da2SArnd Bergmann select GPIO_REGMAP 581bed5cd6fSEmil Renner Berthing select GENERIC_PINCONF 582bed5cd6fSEmil Renner Berthing help 583bed5cd6fSEmil Renner Berthing Say Y to select the pinmuxing and GPIOs driver for the TPS6594 584bed5cd6fSEmil Renner Berthing PMICs chip family. 585bed5cd6fSEmil Renner Berthing 586bed5cd6fSEmil Renner Berthing This driver can also be built as a module 587bed5cd6fSEmil Renner Berthing called tps6594-pinctrl. 588bed5cd6fSEmil Renner Berthing 589bed5cd6fSEmil Renner Berthingconfig PINCTRL_TH1520 590bed5cd6fSEmil Renner Berthing tristate "Pinctrl driver for the T-Head TH1520 SoC" 5912744e8afSLinus Walleij depends on ARCH_THEAD || COMPILE_TEST 5922744e8afSLinus Walleij depends on OF 5932744e8afSLinus Walleij select GENERIC_PINMUX_FUNCTIONS 5942744e8afSLinus Walleij select GENERIC_PINCONF 5952744e8afSLinus Walleij select PINMUX 5962744e8afSLinus Walleij help 5972744e8afSLinus Walleij This is the driver for the pin controller blocks on the 5982744e8afSLinus Walleij T-Head TH1520 SoC. 5998b242ca7SSai Krishna Potthuri 6008b242ca7SSai Krishna Potthuri This driver is needed for RISC-V development boards like 6018b242ca7SSai Krishna Potthuri the BeagleV Ahead and the LicheePi 4A. 6028b242ca7SSai Krishna Potthuri 6038b242ca7SSai Krishna Potthuriconfig PINCTRL_ZYNQ 6048b242ca7SSai Krishna Potthuri bool "Pinctrl driver for Xilinx Zynq" 6058b242ca7SSai Krishna Potthuri depends on ARCH_ZYNQ || COMPILE_TEST 6068b242ca7SSai Krishna Potthuri depends on OF 6078b242ca7SSai Krishna Potthuri select PINMUX 6088b242ca7SSai Krishna Potthuri select GENERIC_PINCONF 6098b242ca7SSai Krishna Potthuri help 6108b242ca7SSai Krishna Potthuri This selects the pinctrl driver for Xilinx Zynq. 6118b242ca7SSai Krishna Potthuri 612fa99e701SSai Krishna Potthuriconfig PINCTRL_ZYNQMP 613fa99e701SSai Krishna Potthuri tristate "Pinctrl driver for Xilinx ZynqMP" 6148b242ca7SSai Krishna Potthuri depends on ZYNQMP_FIRMWARE 615d11f9328SAsmaa Mnebhi select PINMUX 616d11f9328SAsmaa Mnebhi select GENERIC_PINCONF 617d11f9328SAsmaa Mnebhi default ZYNQMP_FIRMWARE 618d11f9328SAsmaa Mnebhi help 619d11f9328SAsmaa Mnebhi This selects the pinctrl driver for Xilinx ZynqMP platform. 620d11f9328SAsmaa Mnebhi This driver will query the pin information from the firmware 621d11f9328SAsmaa Mnebhi and allow configuring the pins. 622d11f9328SAsmaa Mnebhi Configuration can include the mux function to select on those 623d11f9328SAsmaa Mnebhi pin(s)/group(s), and various pin configuration parameters 624d11f9328SAsmaa Mnebhi such as pull-up, slew rate, etc. 625d11f9328SAsmaa Mnebhi This driver can also be built as a module. If so, the module 626d11f9328SAsmaa Mnebhi will be called pinctrl-zynqmp. 6272242ddfbSManivannan Sadhasivam 6284d3d0e42SAndrew Jefferyconfig PINCTRL_MLXBF3 6292744e8afSLinus Walleij tristate "NVIDIA BlueField-3 SoC Pinctrl driver" 6302744e8afSLinus Walleij depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST 631b124c8bdSAndy Shevchenko select PINMUX 6322744e8afSLinus Walleij select GPIOLIB 6332744e8afSLinus Walleij select GPIOLIB_IRQCHIP 634b124c8bdSAndy Shevchenko help 635b124c8bdSAndy Shevchenko Say Y to select the pinctrl driver for BlueField-3 SoCs. 6362744e8afSLinus Walleij This pin controller allows selecting the mux function for 6373a198059SLinus Walleij each pin. This driver can also be built as a module called 6383b588e43STomer Maimon pinctrl-mlxbf3. 639fd84aaa8SChester Lin 6404b15ec9dSRobert Jarzmikconfig PINCTRL_RP1 64169b78b8dSLinus Walleij tristate "Pinctrl driver for RP1" 642e99ce780STzuyi Chang depends on MISC_RP1 643077365a9SGeert Uytterhoeven default MISC_RP1 644ebe629a3SSachin Kamat select PINMUX 645a29d8e93SInochi Amaoto select PINCONF 646a83c29e1SYixun Lan select GENERIC_PINCONF 6472744e8afSLinus Walleij help 64841d32cfcSBaolin Wang Enable the gpio and pinctrl/mux driver for RaspberryPi RP1 649ba7fdf88SJianlong Huang multi function device. 650aceb16dcSMaxime Coquelin 651aa74c44bSWells Lusource "drivers/pinctrl/actions/Kconfig" 6525f910777SMaxime Ripardsource "drivers/pinctrl/aspeed/Kconfig" 65325cbac77SMasahiro Yamadasource "drivers/pinctrl/bcm/Kconfig" 654003910ebSNishanth Menonsource "drivers/pinctrl/berlin/Kconfig" 6556e908892SMasahiro Yamadasource "drivers/pinctrl/cirrus/Kconfig" 656a68a7844SNobuhiro Iwamatsusource "drivers/pinctrl/freescale/Kconfig" 657b124c8bdSAndy Shevchenkosource "drivers/pinctrl/intel/Kconfig" 6581948d5c5SRahul Tanwarsource "drivers/pinctrl/mediatek/Kconfig" 659d219b924SPhil Reidsource "drivers/pinctrl/meson/Kconfig" 660source "drivers/pinctrl/mvebu/Kconfig" 661source "drivers/pinctrl/nomadik/Kconfig" 662source "drivers/pinctrl/nuvoton/Kconfig" 663source "drivers/pinctrl/nxp/Kconfig" 664source "drivers/pinctrl/pxa/Kconfig" 665source "drivers/pinctrl/qcom/Kconfig" 666source "drivers/pinctrl/realtek/Kconfig" 667source "drivers/pinctrl/renesas/Kconfig" 668source "drivers/pinctrl/samsung/Kconfig" 669source "drivers/pinctrl/sophgo/Kconfig" 670source "drivers/pinctrl/spacemit/Kconfig" 671source "drivers/pinctrl/spear/Kconfig" 672source "drivers/pinctrl/sprd/Kconfig" 673source "drivers/pinctrl/starfive/Kconfig" 674source "drivers/pinctrl/stm32/Kconfig" 675source "drivers/pinctrl/sunplus/Kconfig" 676source "drivers/pinctrl/sunxi/Kconfig" 677source "drivers/pinctrl/tegra/Kconfig" 678source "drivers/pinctrl/ti/Kconfig" 679source "drivers/pinctrl/uniphier/Kconfig" 680source "drivers/pinctrl/visconti/Kconfig" 681source "drivers/pinctrl/vt8500/Kconfig" 682 683endif 684