18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci# 38c2ecf20Sopenharmony_ci# Broadcom pinctrl drivers 48c2ecf20Sopenharmony_ci# 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ciconfig PINCTRL_BCM281XX 78c2ecf20Sopenharmony_ci bool "Broadcom BCM281xx pinctrl driver" 88c2ecf20Sopenharmony_ci depends on OF && (ARCH_BCM_MOBILE || COMPILE_TEST) 98c2ecf20Sopenharmony_ci select PINMUX 108c2ecf20Sopenharmony_ci select PINCONF 118c2ecf20Sopenharmony_ci select GENERIC_PINCONF 128c2ecf20Sopenharmony_ci select REGMAP_MMIO 138c2ecf20Sopenharmony_ci default ARCH_BCM_MOBILE 148c2ecf20Sopenharmony_ci help 158c2ecf20Sopenharmony_ci Say Y here to support Broadcom BCM281xx pinctrl driver, which is used 168c2ecf20Sopenharmony_ci for the BCM281xx SoC family, including BCM11130, BCM11140, BCM11351, 178c2ecf20Sopenharmony_ci BCM28145, and BCM28155 SoCs. This driver requires the pinctrl 188c2ecf20Sopenharmony_ci framework. GPIO is provided by a separate GPIO driver. 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ciconfig PINCTRL_BCM2835 218c2ecf20Sopenharmony_ci bool "Broadcom BCM2835 GPIO (with PINCONF) driver" 228c2ecf20Sopenharmony_ci depends on OF && (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST) 238c2ecf20Sopenharmony_ci select PINMUX 248c2ecf20Sopenharmony_ci select PINCONF 258c2ecf20Sopenharmony_ci select GENERIC_PINCONF 268c2ecf20Sopenharmony_ci select GPIOLIB 278c2ecf20Sopenharmony_ci select GPIOLIB_IRQCHIP 288c2ecf20Sopenharmony_ci default ARCH_BCM2835 || ARCH_BRCMSTB 298c2ecf20Sopenharmony_ci help 308c2ecf20Sopenharmony_ci Say Y here to enable the Broadcom BCM2835 GPIO driver. 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ciconfig PINCTRL_IPROC_GPIO 338c2ecf20Sopenharmony_ci bool "Broadcom iProc GPIO (with PINCONF) driver" 348c2ecf20Sopenharmony_ci depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST) 358c2ecf20Sopenharmony_ci select GPIOLIB_IRQCHIP 368c2ecf20Sopenharmony_ci select PINCONF 378c2ecf20Sopenharmony_ci select GENERIC_PINCONF 388c2ecf20Sopenharmony_ci default ARCH_BCM_IPROC 398c2ecf20Sopenharmony_ci help 408c2ecf20Sopenharmony_ci Say yes here to enable the Broadcom iProc GPIO driver. 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci The Broadcom iProc based SoCs- Cygnus, NS2, NSP and Stingray, use 438c2ecf20Sopenharmony_ci same GPIO Controller IP hence this driver could be used for all. 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci The Broadcom Cygnus SoC has 3 GPIO controllers including the ASIU 468c2ecf20Sopenharmony_ci GPIO controller (ASIU), the chipCommonG GPIO controller (CCM), and 478c2ecf20Sopenharmony_ci the always-ON GPIO controller (CRMU/AON). All 3 GPIO controllers are 488c2ecf20Sopenharmony_ci supported by this driver. 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci The Broadcom NSP has two GPIO controllers including the ChipcommonA 518c2ecf20Sopenharmony_ci GPIO, the ChipcommonB GPIO. Later controller is supported by this 528c2ecf20Sopenharmony_ci driver. 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci The Broadcom NS2 has two GPIO controller including the CRMU GPIO, 558c2ecf20Sopenharmony_ci the ChipcommonG GPIO. Both controllers are supported by this driver. 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci The Broadcom Stingray GPIO controllers are supported by this driver. 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci All above SoCs GPIO controllers support basic PINCONF functions such 608c2ecf20Sopenharmony_ci as bias pull up, pull down, and drive strength configurations, when 618c2ecf20Sopenharmony_ci these pins are muxed to GPIO. 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci It provides the framework where pins from the individual GPIO can be 648c2ecf20Sopenharmony_ci individually muxed to GPIO function, through interaction with the 658c2ecf20Sopenharmony_ci SoCs IOMUX controller. This features could be used only on SoCs which 668c2ecf20Sopenharmony_ci support individual pin muxing. 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ciconfig PINCTRL_CYGNUS_MUX 698c2ecf20Sopenharmony_ci bool "Broadcom Cygnus IOMUX driver" 708c2ecf20Sopenharmony_ci depends on (ARCH_BCM_CYGNUS || COMPILE_TEST) 718c2ecf20Sopenharmony_ci depends on OF 728c2ecf20Sopenharmony_ci select PINMUX 738c2ecf20Sopenharmony_ci select GENERIC_PINCONF 748c2ecf20Sopenharmony_ci default ARCH_BCM_CYGNUS 758c2ecf20Sopenharmony_ci help 768c2ecf20Sopenharmony_ci Say yes here to enable the Broadcom Cygnus IOMUX driver. 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci The Broadcom Cygnus IOMUX driver supports group based IOMUX 798c2ecf20Sopenharmony_ci configuration, with the exception that certain individual pins 808c2ecf20Sopenharmony_ci can be overridden to GPIO function 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ciconfig PINCTRL_NS 838c2ecf20Sopenharmony_ci bool "Broadcom Northstar pins driver" 848c2ecf20Sopenharmony_ci depends on OF && (ARCH_BCM_5301X || COMPILE_TEST) 858c2ecf20Sopenharmony_ci select PINMUX 868c2ecf20Sopenharmony_ci select GENERIC_PINCONF 878c2ecf20Sopenharmony_ci default ARCH_BCM_5301X 888c2ecf20Sopenharmony_ci help 898c2ecf20Sopenharmony_ci Say yes here to enable the Broadcom NS SoC pins driver. 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci The Broadcom Northstar pins driver supports muxing multi-purpose pins 928c2ecf20Sopenharmony_ci that can be used for various functions (e.g. SPI, I2C, UART) as well 938c2ecf20Sopenharmony_ci as GPIOs. 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ciconfig PINCTRL_NSP_GPIO 968c2ecf20Sopenharmony_ci bool "Broadcom NSP GPIO (with PINCONF) driver" 978c2ecf20Sopenharmony_ci depends on OF_GPIO && (ARCH_BCM_NSP || COMPILE_TEST) 988c2ecf20Sopenharmony_ci select GPIOLIB_IRQCHIP 998c2ecf20Sopenharmony_ci select PINCONF 1008c2ecf20Sopenharmony_ci select GENERIC_PINCONF 1018c2ecf20Sopenharmony_ci default ARCH_BCM_NSP 1028c2ecf20Sopenharmony_ci help 1038c2ecf20Sopenharmony_ci Say yes here to enable the Broadcom NSP GPIO driver. 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is 1068c2ecf20Sopenharmony_ci supported by this driver. 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci The ChipcommonA GPIO controller support basic PINCONF functions such 1098c2ecf20Sopenharmony_ci as bias pull up, pull down, and drive strength configurations, when 1108c2ecf20Sopenharmony_ci these pins are muxed to GPIO. 1118c2ecf20Sopenharmony_ci 1128c2ecf20Sopenharmony_ciconfig PINCTRL_NS2_MUX 1138c2ecf20Sopenharmony_ci bool "Broadcom Northstar2 pinmux driver" 1148c2ecf20Sopenharmony_ci depends on OF 1158c2ecf20Sopenharmony_ci depends on ARCH_BCM_IPROC || COMPILE_TEST 1168c2ecf20Sopenharmony_ci select PINMUX 1178c2ecf20Sopenharmony_ci select GENERIC_PINCONF 1188c2ecf20Sopenharmony_ci default ARM64 && ARCH_BCM_IPROC 1198c2ecf20Sopenharmony_ci help 1208c2ecf20Sopenharmony_ci Say yes here to enable the Broadcom NS2 MUX driver. 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci The Broadcom Northstar2 IOMUX driver supports group based IOMUX 1238c2ecf20Sopenharmony_ci configuration. 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ciconfig PINCTRL_NSP_MUX 1268c2ecf20Sopenharmony_ci bool "Broadcom NSP IOMUX driver" 1278c2ecf20Sopenharmony_ci depends on (ARCH_BCM_NSP || COMPILE_TEST) 1288c2ecf20Sopenharmony_ci depends on OF 1298c2ecf20Sopenharmony_ci select PINMUX 1308c2ecf20Sopenharmony_ci select GENERIC_PINCONF 1318c2ecf20Sopenharmony_ci default ARCH_BCM_NSP 1328c2ecf20Sopenharmony_ci help 1338c2ecf20Sopenharmony_ci Say yes here to enable the Broadcom NSP SOC IOMUX driver. 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX 1368c2ecf20Sopenharmony_ci configuration, with certain individual pins can be overridden 1378c2ecf20Sopenharmony_ci to GPIO function. 138