12744e8afSLinus Walleij# 22744e8afSLinus Walleij# PINCTRL infrastructure and drivers 32744e8afSLinus Walleij# 42744e8afSLinus Walleij 545f034efSLinus Walleijconfig PINCTRL 645f034efSLinus Walleij bool 72744e8afSLinus Walleij 82744e8afSLinus Walleijif PINCTRL 92744e8afSLinus Walleij 1045f034efSLinus Walleijmenu "Pin controllers" 1145f034efSLinus Walleij depends on PINCTRL 1245f034efSLinus Walleij 132744e8afSLinus Walleijconfig PINMUX 14ae6b4d85SLinus Walleij bool "Support pin multiplexing controllers" 15ae6b4d85SLinus Walleij 16ae6b4d85SLinus Walleijconfig PINCONF 17ae6b4d85SLinus Walleij bool "Support pin configuration controllers" 182744e8afSLinus Walleij 19394349f7SLinus Walleijconfig GENERIC_PINCONF 20394349f7SLinus Walleij bool 21394349f7SLinus Walleij select PINCONF 22394349f7SLinus Walleij 232744e8afSLinus Walleijconfig DEBUG_PINCTRL 242744e8afSLinus Walleij bool "Debug PINCTRL calls" 252744e8afSLinus Walleij depends on DEBUG_KERNEL 262744e8afSLinus Walleij help 272744e8afSLinus Walleij Say Y here to add some extra checks and diagnostics to PINCTRL calls. 282744e8afSLinus Walleij 290493e649SPatrice Chotardconfig PINCTRL_ABX500 300493e649SPatrice Chotard bool "ST-Ericsson ABx500 family Mixed Signal Circuit gpio functions" 310493e649SPatrice Chotard depends on AB8500_CORE 320493e649SPatrice Chotard select GENERIC_PINCONF 330493e649SPatrice Chotard help 340493e649SPatrice Chotard Select this to enable the ABx500 family IC GPIO driver 350493e649SPatrice Chotard 363c937993SPatrice Chotardconfig PINCTRL_AB8500 373c937993SPatrice Chotard bool "AB8500 pin controller driver" 383c937993SPatrice Chotard depends on PINCTRL_ABX500 && ARCH_U8500 393c937993SPatrice Chotard 40a8f96e41SPatrice Chotardconfig PINCTRL_AB8540 41a8f96e41SPatrice Chotard bool "AB8540 pin controller driver" 42a8f96e41SPatrice Chotard depends on PINCTRL_ABX500 && ARCH_U8500 43a8f96e41SPatrice Chotard 4409dbec3fSPatrice Chotardconfig PINCTRL_AB9540 4509dbec3fSPatrice Chotard bool "AB9540 pin controller driver" 4609dbec3fSPatrice Chotard depends on PINCTRL_ABX500 && ARCH_U8500 4709dbec3fSPatrice Chotard 481aa2d8d4SPatrice Chotardconfig PINCTRL_AB8505 491aa2d8d4SPatrice Chotard bool "AB8505 pin controller driver" 501aa2d8d4SPatrice Chotard depends on PINCTRL_ABX500 && ARCH_U8500 511aa2d8d4SPatrice Chotard 52e9a03addSSonic Zhangconfig PINCTRL_ADI2 53e9a03addSSonic Zhang bool "ADI pin controller driver" 549d7278d0SSonic Zhang depends on BLACKFIN 55e9a03addSSonic Zhang select PINMUX 56e9a03addSSonic Zhang select IRQ_DOMAIN 57e9a03addSSonic Zhang help 58e9a03addSSonic Zhang This is the pin controller and gpio driver for ADI BF54x, BF60x and 59e9a03addSSonic Zhang future processors. This option is selected automatically when specific 60e9a03addSSonic Zhang machine and arch are selected to build. 61e9a03addSSonic Zhang 62c8ce8782SLaxman Dewanganconfig PINCTRL_AS3722 63c8ce8782SLaxman Dewangan bool "Pinctrl and GPIO driver for ams AS3722 PMIC" 64c8ce8782SLaxman Dewangan depends on MFD_AS3722 && GPIOLIB 65c8ce8782SLaxman Dewangan select PINMUX 66c8ce8782SLaxman Dewangan select GENERIC_PINCONF 67c8ce8782SLaxman Dewangan help 68c8ce8782SLaxman Dewangan AS3722 device supports the configuration of GPIO pins for different 69c8ce8782SLaxman Dewangan functionality. This driver supports the pinmux, push-pull and 70c8ce8782SLaxman Dewangan open drain configuration for the GPIO pins of AS3722 devices. It also 71c8ce8782SLaxman Dewangan supports the GPIO functionality through gpiolib. 72c8ce8782SLaxman Dewangan 73e9a03addSSonic Zhangconfig PINCTRL_BF54x 74e9a03addSSonic Zhang def_bool y if BF54x 75e9a03addSSonic Zhang select PINCTRL_ADI2 76e9a03addSSonic Zhang 77e9a03addSSonic Zhangconfig PINCTRL_BF60x 78e9a03addSSonic Zhang def_bool y if BF60x 79e9a03addSSonic Zhang select PINCTRL_ADI2 80e9a03addSSonic Zhang 816732ae5cSJean-Christophe PLAGNIOL-VILLARDconfig PINCTRL_AT91 826732ae5cSJean-Christophe PLAGNIOL-VILLARD bool "AT91 pinctrl driver" 836732ae5cSJean-Christophe PLAGNIOL-VILLARD depends on OF 846732ae5cSJean-Christophe PLAGNIOL-VILLARD depends on ARCH_AT91 856732ae5cSJean-Christophe PLAGNIOL-VILLARD select PINMUX 866732ae5cSJean-Christophe PLAGNIOL-VILLARD select PINCONF 876732ae5cSJean-Christophe PLAGNIOL-VILLARD help 886732ae5cSJean-Christophe PLAGNIOL-VILLARD Say Y here to enable the at91 pinctrl driver 896732ae5cSJean-Christophe PLAGNIOL-VILLARD 90a5d811bbSMathias Nymanconfig PINCTRL_BAYTRAIL 91a5d811bbSMathias Nyman bool "Intel Baytrail GPIO pin control" 92a5d811bbSMathias Nyman depends on GPIOLIB && ACPI && X86 93a5d811bbSMathias Nyman select IRQ_DOMAIN 94a5d811bbSMathias Nyman help 95a5d811bbSMathias Nyman driver for memory mapped GPIO functionality on Intel Baytrail 96a5d811bbSMathias Nyman platforms. Supports 3 banks with 102, 28 and 44 gpios. 97a5d811bbSMathias Nyman Most pins are usually muxed to some other functionality by firmware, 98a5d811bbSMathias Nyman so only a small amount is available for gpio use. 99a5d811bbSMathias Nyman 100a5d811bbSMathias Nyman Requires ACPI device enumeration code to set up a platform device. 101a5d811bbSMathias Nyman 102e1b2dc70SSimon Arlottconfig PINCTRL_BCM2835 103e1b2dc70SSimon Arlott bool 104e1b2dc70SSimon Arlott select PINMUX 105e1b2dc70SSimon Arlott select PINCONF 106e1b2dc70SSimon Arlott 107*54b1aa5aSSherman Yinconfig PINCTRL_CAPRI 108*54b1aa5aSSherman Yin bool "Broadcom Capri pinctrl driver" 109*54b1aa5aSSherman Yin select PINMUX 110*54b1aa5aSSherman Yin select PINCONF 111*54b1aa5aSSherman Yin select GENERIC_PINCONF 112*54b1aa5aSSherman Yin select REGMAP_MMIO 113*54b1aa5aSSherman Yin help 114*54b1aa5aSSherman Yin Say Y here to support Broadcom Capri pinctrl driver, which is used for 115*54b1aa5aSSherman Yin the BCM281xx SoC family, including BCM11130, BCM11140, BCM11351, 116*54b1aa5aSSherman Yin BCM28145, and BCM28155 SoCs. This driver requires the pinctrl 117*54b1aa5aSSherman Yin framework. GPIO is provided by a separate GPIO driver. 118*54b1aa5aSSherman Yin 119ae75ff81SDong Aishengconfig PINCTRL_IMX 120ae75ff81SDong Aisheng bool 121ae75ff81SDong Aisheng select PINMUX 122ae75ff81SDong Aisheng select PINCONF 123ae75ff81SDong Aisheng 12430612cd9SMarkus Pargmannconfig PINCTRL_IMX1_CORE 12530612cd9SMarkus Pargmann bool 12630612cd9SMarkus Pargmann select PINMUX 12730612cd9SMarkus Pargmann select PINCONF 12830612cd9SMarkus Pargmann 129e16dbf60SMarkus Pargmannconfig PINCTRL_IMX27 130e16dbf60SMarkus Pargmann bool "IMX27 pinctrl driver" 131e16dbf60SMarkus Pargmann depends on SOC_IMX27 132e16dbf60SMarkus Pargmann select PINCTRL_IMX1_CORE 133e16dbf60SMarkus Pargmann help 134e16dbf60SMarkus Pargmann Say Y here to enable the imx27 pinctrl driver 135e16dbf60SMarkus Pargmann 136b4a87c9bSDenis Carikli 137b4a87c9bSDenis Carikliconfig PINCTRL_IMX25 138b4a87c9bSDenis Carikli bool "IMX25 pinctrl driver" 139b4a87c9bSDenis Carikli depends on OF 140b4a87c9bSDenis Carikli depends on SOC_IMX25 141b4a87c9bSDenis Carikli select PINCTRL_IMX 142b4a87c9bSDenis Carikli help 143b4a87c9bSDenis Carikli Say Y here to enable the imx25 pinctrl driver 144b4a87c9bSDenis Carikli 145b9aa8f13SUwe Kleine-Königconfig PINCTRL_IMX35 146b9aa8f13SUwe Kleine-König bool "IMX35 pinctrl driver" 147b9aa8f13SUwe Kleine-König depends on SOC_IMX35 148b9aa8f13SUwe Kleine-König select PINCTRL_IMX 149b9aa8f13SUwe Kleine-König help 150b9aa8f13SUwe Kleine-König Say Y here to enable the imx35 pinctrl driver 151b9aa8f13SUwe Kleine-König 1529da83120SGreg Ungererconfig PINCTRL_IMX50 1539da83120SGreg Ungerer bool "IMX50 pinctrl driver" 1549da83120SGreg Ungerer depends on SOC_IMX50 1559da83120SGreg Ungerer select PINCTRL_IMX 1569da83120SGreg Ungerer help 1579da83120SGreg Ungerer Say Y here to enable the imx50 pinctrl driver 1589da83120SGreg Ungerer 1594f6a16bfSDong Aishengconfig PINCTRL_IMX51 1604f6a16bfSDong Aisheng bool "IMX51 pinctrl driver" 1614f6a16bfSDong Aisheng depends on SOC_IMX51 1624f6a16bfSDong Aisheng select PINCTRL_IMX 1634f6a16bfSDong Aisheng help 1644f6a16bfSDong Aisheng Say Y here to enable the imx51 pinctrl driver 1654f6a16bfSDong Aisheng 16693fbd3c0SDong Aishengconfig PINCTRL_IMX53 16793fbd3c0SDong Aisheng bool "IMX53 pinctrl driver" 16893fbd3c0SDong Aisheng depends on SOC_IMX53 16993fbd3c0SDong Aisheng select PINCTRL_IMX 17093fbd3c0SDong Aisheng help 17193fbd3c0SDong Aisheng Say Y here to enable the imx53 pinctrl driver 17293fbd3c0SDong Aisheng 173d8fe3572SDong Aishengconfig PINCTRL_IMX6Q 1743f551d6aSShawn Guo bool "IMX6Q/DL pinctrl driver" 175d8fe3572SDong Aisheng depends on SOC_IMX6Q 176d8fe3572SDong Aisheng select PINCTRL_IMX 177d8fe3572SDong Aisheng help 1783f551d6aSShawn Guo Say Y here to enable the imx6q/dl pinctrl driver 179d8fe3572SDong Aisheng 18021e59123SShawn Guoconfig PINCTRL_IMX6SL 18121e59123SShawn Guo bool "IMX6SL pinctrl driver" 18221e59123SShawn Guo depends on SOC_IMX6SL 18321e59123SShawn Guo select PINCTRL_IMX 18421e59123SShawn Guo help 18521e59123SShawn Guo Say Y here to enable the imx6sl pinctrl driver 186f4e66983SHaojian Zhuang 18778bafc66SJingchang Luconfig PINCTRL_VF610 18878bafc66SJingchang Lu bool "Freescale Vybrid VF610 pinctrl driver" 18978bafc66SJingchang Lu depends on SOC_VF610 19078bafc66SJingchang Lu select PINCTRL_IMX 19178bafc66SJingchang Lu help 19278bafc66SJingchang Lu Say Y here to enable the Freescale Vybrid VF610 pinctrl driver 19378bafc66SJingchang Lu 1943f8c50c9SJohn Crispinconfig PINCTRL_LANTIQ 1953f8c50c9SJohn Crispin bool 1963f8c50c9SJohn Crispin depends on LANTIQ 1973f8c50c9SJohn Crispin select PINMUX 1983f8c50c9SJohn Crispin select PINCONF 1993f8c50c9SJohn Crispin 200e316cb2bSJohn Crispinconfig PINCTRL_FALCON 201e316cb2bSJohn Crispin bool 202e316cb2bSJohn Crispin depends on SOC_FALCON 203e316cb2bSJohn Crispin depends on PINCTRL_LANTIQ 204e316cb2bSJohn Crispin 20517723111SShawn Guoconfig PINCTRL_MXS 20617723111SShawn Guo bool 20790db8a14SAxel Lin select PINMUX 20890db8a14SAxel Lin select PINCONF 20917723111SShawn Guo 21017723111SShawn Guoconfig PINCTRL_IMX23 21117723111SShawn Guo bool 21217723111SShawn Guo select PINCTRL_MXS 21317723111SShawn Guo 21417723111SShawn Guoconfig PINCTRL_IMX28 21517723111SShawn Guo bool 21617723111SShawn Guo select PINCTRL_MXS 21717723111SShawn Guo 218f365be09SBjorn Anderssonconfig PINCTRL_MSM 219376f413aSBjorn Andersson tristate 220f365be09SBjorn Andersson select PINMUX 221f365be09SBjorn Andersson select PINCONF 222f365be09SBjorn Andersson select GENERIC_PINCONF 223f365be09SBjorn Andersson 22455aaf834SBjorn Anderssonconfig PINCTRL_MSM8X74 225376f413aSBjorn Andersson tristate "Qualcomm 8x74 pin controller driver" 226376f413aSBjorn Andersson depends on GPIOLIB && OF && OF_IRQ 22755aaf834SBjorn Andersson select PINCTRL_MSM 228376f413aSBjorn Andersson help 229376f413aSBjorn Andersson This is the pinctrl, pinmux, pinconf and gpiolib driver for the 230376f413aSBjorn Andersson Qualcomm TLMM block found in the Qualcomm 8974 platform. 23155aaf834SBjorn Andersson 232e98ea774SLinus Walleijconfig PINCTRL_NOMADIK 233e98ea774SLinus Walleij bool "Nomadik pin controller driver" 2340fa7be40SArnd Bergmann depends on ARCH_U8500 || ARCH_NOMADIK 235dbfe8ca2SLinus Walleij select PINMUX 236d41af627SLinus Walleij select PINCONF 237e98ea774SLinus Walleij 238f79c5ed9SLinus Walleijconfig PINCTRL_STN8815 239f79c5ed9SLinus Walleij bool "STN8815 pin controller driver" 240f79c5ed9SLinus Walleij depends on PINCTRL_NOMADIK && ARCH_NOMADIK 241f79c5ed9SLinus Walleij 242e98ea774SLinus Walleijconfig PINCTRL_DB8500 243e98ea774SLinus Walleij bool "DB8500 pin controller driver" 244e98ea774SLinus Walleij depends on PINCTRL_NOMADIK && ARCH_U8500 245e98ea774SLinus Walleij 24645a1b531SPatrice Chotardconfig PINCTRL_DB8540 24745a1b531SPatrice Chotard bool "DB8540 pin controller driver" 24845a1b531SPatrice Chotard depends on PINCTRL_NOMADIK && ARCH_U8500 24945a1b531SPatrice Chotard 250d3e51161SHeiko Stübnerconfig PINCTRL_ROCKCHIP 251d3e51161SHeiko Stübner bool 252d3e51161SHeiko Stübner select PINMUX 253d3e51161SHeiko Stübner select GENERIC_PINCONF 254d3e51161SHeiko Stübner select GENERIC_IRQ_CHIP 255d3e51161SHeiko Stübner 2568b8b091bSTony Lindgrenconfig PINCTRL_SINGLE 2578b8b091bSTony Lindgren tristate "One-register-per-pin type device tree based pinctrl driver" 2588b8b091bSTony Lindgren depends on OF 2598b8b091bSTony Lindgren select PINMUX 2608b8b091bSTony Lindgren select PINCONF 2619dddb4dfSHaojian Zhuang select GENERIC_PINCONF 2628b8b091bSTony Lindgren help 2638b8b091bSTony Lindgren This selects the device tree based generic pinctrl driver. 2648b8b091bSTony Lindgren 2653bece55aSLinus Walleijconfig PINCTRL_SIRF 266d3e26f2fSBarry Song bool "CSR SiRFprimaII/SiRFmarco pin controller driver" 267d3e26f2fSBarry Song depends on ARCH_SIRF 268393daa81SRongjun Ying select PINMUX 269393daa81SRongjun Ying 2700e37f88dSMaxime Ripardconfig PINCTRL_SUNXI 2710e37f88dSMaxime Ripard bool 2720e37f88dSMaxime Ripard select PINMUX 2730e37f88dSMaxime Ripard select GENERIC_PINCONF 2740e37f88dSMaxime Ripard 275701016c0SSrinivas KANDAGATLAconfig PINCTRL_ST 276701016c0SSrinivas KANDAGATLA bool 277701016c0SSrinivas KANDAGATLA depends on OF 278701016c0SSrinivas KANDAGATLA select PINMUX 279701016c0SSrinivas KANDAGATLA select PINCONF 280701016c0SSrinivas KANDAGATLA 281971dac71SStephen Warrenconfig PINCTRL_TEGRA 282971dac71SStephen Warren bool 283507ccdbfSAxel Lin select PINMUX 284507ccdbfSAxel Lin select PINCONF 285971dac71SStephen Warren 286971dac71SStephen Warrenconfig PINCTRL_TEGRA20 287971dac71SStephen Warren bool 288971dac71SStephen Warren select PINCTRL_TEGRA 289971dac71SStephen Warren 290971dac71SStephen Warrenconfig PINCTRL_TEGRA30 291971dac71SStephen Warren bool 292971dac71SStephen Warren select PINCTRL_TEGRA 293971dac71SStephen Warren 294b6ae7a26SPritesh Raithathaconfig PINCTRL_TEGRA114 295b6ae7a26SPritesh Raithatha bool 296b6ae7a26SPritesh Raithatha select PINCTRL_TEGRA 297b6ae7a26SPritesh Raithatha 2981a16bee6SAshwini Ghugeconfig PINCTRL_TEGRA124 2991a16bee6SAshwini Ghuge bool 3001a16bee6SAshwini Ghuge select PINCTRL_TEGRA 3011a16bee6SAshwini Ghuge 302d5025f9fSJames Hoganconfig PINCTRL_TZ1090 303d5025f9fSJames Hogan bool "Toumaz Xenif TZ1090 pin control driver" 304d5025f9fSJames Hogan depends on SOC_TZ1090 305d5025f9fSJames Hogan select PINMUX 306d5025f9fSJames Hogan select GENERIC_PINCONF 307d5025f9fSJames Hogan 308b58f0273SJames Hoganconfig PINCTRL_TZ1090_PDC 309b58f0273SJames Hogan bool "Toumaz Xenif TZ1090 PDC pin control driver" 310b58f0273SJames Hogan depends on SOC_TZ1090 311b58f0273SJames Hogan select PINMUX 312b58f0273SJames Hogan select PINCONF 313b58f0273SJames Hogan 3143bece55aSLinus Walleijconfig PINCTRL_U300 3153bece55aSLinus Walleij bool "U300 pin controller driver" 31698da3529SLinus Walleij depends on ARCH_U300 31798da3529SLinus Walleij select PINMUX 318dc0b1aa3SLinus Walleij select GENERIC_PINCONF 31945f034efSLinus Walleij 320ca402d37SLinus Walleijconfig PINCTRL_COH901 321ca402d37SLinus Walleij bool "ST-Ericsson U300 COH 901 335/571 GPIO" 3223c94d1bbSLinus Walleij depends on GPIOLIB && ARCH_U300 && PINCTRL_U300 323ca402d37SLinus Walleij help 324ca402d37SLinus Walleij Say yes here to support GPIO interface on ST-Ericsson U300. 325ca402d37SLinus Walleij The names of the two IP block variants supported are 326ca402d37SLinus Walleij COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 327ca402d37SLinus Walleij ports of 8 GPIO pins each. 328ca402d37SLinus Walleij 32930574f0dSThomas Abrahamconfig PINCTRL_SAMSUNG 330cbc351abSArnd Bergmann bool 33130574f0dSThomas Abraham select PINMUX 33230574f0dSThomas Abraham select PINCONF 33330574f0dSThomas Abraham 334a1ed2670SKukjin Kimconfig PINCTRL_EXYNOS 33583978253SDoug Anderson bool "Pinctrl driver data for Samsung EXYNOS SoCs other than 5440" 336608a26a7SMateusz Krawczuk depends on OF && GPIOLIB && (ARCH_EXYNOS || ARCH_S5PV210) 33743b169dbSThomas Abraham select PINCTRL_SAMSUNG 33843b169dbSThomas Abraham 339f0b9a7e5SThomas Abrahamconfig PINCTRL_EXYNOS5440 340f0b9a7e5SThomas Abraham bool "Samsung EXYNOS5440 SoC pinctrl driver" 34183978253SDoug Anderson depends on SOC_EXYNOS5440 342f0b9a7e5SThomas Abraham select PINMUX 343f0b9a7e5SThomas Abraham select PINCONF 344f0b9a7e5SThomas Abraham 3450a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS 346736658c5SMark Brown bool "Pinctrl driver for the PALMAS Series MFD devices" 3470a8d3e24SLaxman Dewangan depends on OF && MFD_PALMAS 34863ca8db7SAxel Lin select PINMUX 3490a8d3e24SLaxman Dewangan select GENERIC_PINCONF 3500a8d3e24SLaxman Dewangan help 3510a8d3e24SLaxman Dewangan Palmas device supports the configuration of pins for different 3520a8d3e24SLaxman Dewangan functionality. This driver supports the pinmux, push-pull and 3530a8d3e24SLaxman Dewangan open drain configuration for the Palmas series devices like 3540a8d3e24SLaxman Dewangan TPS65913, TPS80036 etc. 3550a8d3e24SLaxman Dewangan 356af99a750SHeiko Stuebnerconfig PINCTRL_S3C24XX 357af99a750SHeiko Stuebner bool "Samsung S3C24XX SoC pinctrl driver" 358af99a750SHeiko Stuebner depends on ARCH_S3C24XX 359af99a750SHeiko Stuebner select PINCTRL_SAMSUNG 360af99a750SHeiko Stuebner 36161dd7261STomasz Figaconfig PINCTRL_S3C64XX 36261dd7261STomasz Figa bool "Samsung S3C64XX SoC pinctrl driver" 36361dd7261STomasz Figa depends on ARCH_S3C64XX 36461dd7261STomasz Figa select PINCTRL_SAMSUNG 36561dd7261STomasz Figa 36606763c74SThomas Petazzonisource "drivers/pinctrl/mvebu/Kconfig" 3676e54d8d2SLaurent Pinchartsource "drivers/pinctrl/sh-pfc/Kconfig" 368deda8287SViresh Kumarsource "drivers/pinctrl/spear/Kconfig" 369170c6152STony Prisksource "drivers/pinctrl/vt8500/Kconfig" 370deda8287SViresh Kumar 3713f8c50c9SJohn Crispinconfig PINCTRL_XWAY 3723f8c50c9SJohn Crispin bool 3733f8c50c9SJohn Crispin depends on SOC_TYPE_XWAY 3743f8c50c9SJohn Crispin depends on PINCTRL_LANTIQ 3753f8c50c9SJohn Crispin 3765aad0db1SChristian Ruppertconfig PINCTRL_TB10X 3775aad0db1SChristian Ruppert bool 3785aad0db1SChristian Ruppert depends on ARC_PLAT_TB10X 3795aad0db1SChristian Ruppert 38045f034efSLinus Walleijendmenu 38198da3529SLinus Walleij 3822744e8afSLinus Walleijendif 383