162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# Broadcom pinctrl drivers 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciconfig PINCTRL_BCM281XX 762306a36Sopenharmony_ci bool "Broadcom BCM281xx pinctrl driver" 862306a36Sopenharmony_ci depends on OF && (ARCH_BCM_MOBILE || COMPILE_TEST) 962306a36Sopenharmony_ci select PINMUX 1062306a36Sopenharmony_ci select PINCONF 1162306a36Sopenharmony_ci select GENERIC_PINCONF 1262306a36Sopenharmony_ci select REGMAP_MMIO 1362306a36Sopenharmony_ci default ARCH_BCM_MOBILE 1462306a36Sopenharmony_ci help 1562306a36Sopenharmony_ci Say Y here to support Broadcom BCM281xx pinctrl driver, which is used 1662306a36Sopenharmony_ci for the BCM281xx SoC family, including BCM11130, BCM11140, BCM11351, 1762306a36Sopenharmony_ci BCM28145, and BCM28155 SoCs. This driver requires the pinctrl 1862306a36Sopenharmony_ci framework. GPIO is provided by a separate GPIO driver. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciconfig PINCTRL_BCM2835 2162306a36Sopenharmony_ci tristate "Broadcom BCM2835 GPIO (with PINCONF) driver" 2262306a36Sopenharmony_ci depends on OF && (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST) 2362306a36Sopenharmony_ci select PINMUX 2462306a36Sopenharmony_ci select PINCONF 2562306a36Sopenharmony_ci select GENERIC_PINCONF 2662306a36Sopenharmony_ci select GPIOLIB 2762306a36Sopenharmony_ci select GPIOLIB_IRQCHIP 2862306a36Sopenharmony_ci default ARCH_BCM2835 || ARCH_BRCMSTB 2962306a36Sopenharmony_ci help 3062306a36Sopenharmony_ci Say Y here to enable the Broadcom BCM2835 GPIO driver. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciconfig PINCTRL_BCM4908 3362306a36Sopenharmony_ci tristate "Broadcom BCM4908 pinmux driver" 3462306a36Sopenharmony_ci depends on OF && (ARCH_BCMBCA || COMPILE_TEST) 3562306a36Sopenharmony_ci select PINMUX 3662306a36Sopenharmony_ci select PINCONF 3762306a36Sopenharmony_ci select GENERIC_PINCONF 3862306a36Sopenharmony_ci select GENERIC_PINCTRL_GROUPS 3962306a36Sopenharmony_ci select GENERIC_PINMUX_FUNCTIONS 4062306a36Sopenharmony_ci default ARCH_BCMBCA 4162306a36Sopenharmony_ci help 4262306a36Sopenharmony_ci Driver for BCM4908 family SoCs with integrated pin controller. 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci If compiled as module it will be called pinctrl-bcm4908. 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciconfig PINCTRL_BCM63XX 4762306a36Sopenharmony_ci bool 4862306a36Sopenharmony_ci select PINMUX 4962306a36Sopenharmony_ci select PINCONF 5062306a36Sopenharmony_ci select GENERIC_PINCONF 5162306a36Sopenharmony_ci select GPIOLIB 5262306a36Sopenharmony_ci select REGMAP 5362306a36Sopenharmony_ci select GPIO_REGMAP 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciconfig PINCTRL_BCM6318 5662306a36Sopenharmony_ci bool "Broadcom BCM6318 GPIO driver" 5762306a36Sopenharmony_ci depends on (BMIPS_GENERIC || COMPILE_TEST) 5862306a36Sopenharmony_ci depends on OF 5962306a36Sopenharmony_ci select PINCTRL_BCM63XX 6062306a36Sopenharmony_ci default BMIPS_GENERIC 6162306a36Sopenharmony_ci help 6262306a36Sopenharmony_ci Say Y here to enable the Broadcom BCM6318 GPIO driver. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ciconfig PINCTRL_BCM6328 6562306a36Sopenharmony_ci bool "Broadcom BCM6328 GPIO driver" 6662306a36Sopenharmony_ci depends on (BMIPS_GENERIC || COMPILE_TEST) 6762306a36Sopenharmony_ci depends on OF 6862306a36Sopenharmony_ci select PINCTRL_BCM63XX 6962306a36Sopenharmony_ci default BMIPS_GENERIC 7062306a36Sopenharmony_ci help 7162306a36Sopenharmony_ci Say Y here to enable the Broadcom BCM6328 GPIO driver. 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ciconfig PINCTRL_BCM6358 7462306a36Sopenharmony_ci bool "Broadcom BCM6358 GPIO driver" 7562306a36Sopenharmony_ci depends on (BMIPS_GENERIC || COMPILE_TEST) 7662306a36Sopenharmony_ci depends on OF 7762306a36Sopenharmony_ci select PINCTRL_BCM63XX 7862306a36Sopenharmony_ci default BMIPS_GENERIC 7962306a36Sopenharmony_ci help 8062306a36Sopenharmony_ci Say Y here to enable the Broadcom BCM6358 GPIO driver. 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ciconfig PINCTRL_BCM6362 8362306a36Sopenharmony_ci bool "Broadcom BCM6362 GPIO driver" 8462306a36Sopenharmony_ci depends on (BMIPS_GENERIC || COMPILE_TEST) 8562306a36Sopenharmony_ci depends on OF 8662306a36Sopenharmony_ci select PINCTRL_BCM63XX 8762306a36Sopenharmony_ci default BMIPS_GENERIC 8862306a36Sopenharmony_ci help 8962306a36Sopenharmony_ci Say Y here to enable the Broadcom BCM6362 GPIO driver. 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ciconfig PINCTRL_BCM6368 9262306a36Sopenharmony_ci bool "Broadcom BCM6368 GPIO driver" 9362306a36Sopenharmony_ci depends on (BMIPS_GENERIC || COMPILE_TEST) 9462306a36Sopenharmony_ci depends on OF 9562306a36Sopenharmony_ci select PINCTRL_BCM63XX 9662306a36Sopenharmony_ci default BMIPS_GENERIC 9762306a36Sopenharmony_ci help 9862306a36Sopenharmony_ci Say Y here to enable the Broadcom BCM6368 GPIO driver. 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ciconfig PINCTRL_BCM63268 10162306a36Sopenharmony_ci bool "Broadcom BCM63268 GPIO driver" 10262306a36Sopenharmony_ci depends on (BMIPS_GENERIC || COMPILE_TEST) 10362306a36Sopenharmony_ci depends on OF 10462306a36Sopenharmony_ci select PINCTRL_BCM63XX 10562306a36Sopenharmony_ci default BMIPS_GENERIC 10662306a36Sopenharmony_ci help 10762306a36Sopenharmony_ci Say Y here to enable the Broadcom BCM63268 GPIO driver. 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ciconfig PINCTRL_IPROC_GPIO 11062306a36Sopenharmony_ci bool "Broadcom iProc GPIO (with PINCONF) driver" 11162306a36Sopenharmony_ci depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST) 11262306a36Sopenharmony_ci select GPIOLIB_IRQCHIP 11362306a36Sopenharmony_ci select PINCONF 11462306a36Sopenharmony_ci select GENERIC_PINCONF 11562306a36Sopenharmony_ci default ARCH_BCM_IPROC 11662306a36Sopenharmony_ci help 11762306a36Sopenharmony_ci Say yes here to enable the Broadcom iProc GPIO driver. 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci The Broadcom iProc based SoCs- Cygnus, NS2, NSP and Stingray, use 12062306a36Sopenharmony_ci same GPIO Controller IP hence this driver could be used for all. 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci The Broadcom Cygnus SoC has 3 GPIO controllers including the ASIU 12362306a36Sopenharmony_ci GPIO controller (ASIU), the chipCommonG GPIO controller (CCM), and 12462306a36Sopenharmony_ci the always-ON GPIO controller (CRMU/AON). All 3 GPIO controllers are 12562306a36Sopenharmony_ci supported by this driver. 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci The Broadcom NSP has two GPIO controllers including the ChipcommonA 12862306a36Sopenharmony_ci GPIO, the ChipcommonB GPIO. Later controller is supported by this 12962306a36Sopenharmony_ci driver. 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci The Broadcom NS2 has two GPIO controller including the CRMU GPIO, 13262306a36Sopenharmony_ci the ChipcommonG GPIO. Both controllers are supported by this driver. 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci The Broadcom Stingray GPIO controllers are supported by this driver. 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci All above SoCs GPIO controllers support basic PINCONF functions such 13762306a36Sopenharmony_ci as bias pull up, pull down, and drive strength configurations, when 13862306a36Sopenharmony_ci these pins are muxed to GPIO. 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ci It provides the framework where pins from the individual GPIO can be 14162306a36Sopenharmony_ci individually muxed to GPIO function, through interaction with the 14262306a36Sopenharmony_ci SoCs IOMUX controller. This features could be used only on SoCs which 14362306a36Sopenharmony_ci support individual pin muxing. 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ciconfig PINCTRL_CYGNUS_MUX 14662306a36Sopenharmony_ci bool "Broadcom Cygnus IOMUX driver" 14762306a36Sopenharmony_ci depends on (ARCH_BCM_CYGNUS || COMPILE_TEST) 14862306a36Sopenharmony_ci depends on OF 14962306a36Sopenharmony_ci select PINMUX 15062306a36Sopenharmony_ci select GENERIC_PINCONF 15162306a36Sopenharmony_ci default ARCH_BCM_CYGNUS 15262306a36Sopenharmony_ci help 15362306a36Sopenharmony_ci Say yes here to enable the Broadcom Cygnus IOMUX driver. 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci The Broadcom Cygnus IOMUX driver supports group based IOMUX 15662306a36Sopenharmony_ci configuration, with the exception that certain individual pins 15762306a36Sopenharmony_ci can be overridden to GPIO function 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ciconfig PINCTRL_NS 16062306a36Sopenharmony_ci bool "Broadcom Northstar pins driver" 16162306a36Sopenharmony_ci depends on OF && (ARCH_BCM_5301X || COMPILE_TEST) 16262306a36Sopenharmony_ci select PINMUX 16362306a36Sopenharmony_ci select GENERIC_PINCONF 16462306a36Sopenharmony_ci select GENERIC_PINCTRL_GROUPS 16562306a36Sopenharmony_ci select GENERIC_PINMUX_FUNCTIONS 16662306a36Sopenharmony_ci default ARCH_BCM_5301X 16762306a36Sopenharmony_ci help 16862306a36Sopenharmony_ci Say yes here to enable the Broadcom NS SoC pins driver. 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci The Broadcom Northstar pins driver supports muxing multi-purpose pins 17162306a36Sopenharmony_ci that can be used for various functions (e.g. SPI, I2C, UART) as well 17262306a36Sopenharmony_ci as GPIOs. 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ciconfig PINCTRL_NSP_GPIO 17562306a36Sopenharmony_ci bool "Broadcom NSP GPIO (with PINCONF) driver" 17662306a36Sopenharmony_ci depends on OF_GPIO && (ARCH_BCM_NSP || COMPILE_TEST) 17762306a36Sopenharmony_ci select GPIOLIB_IRQCHIP 17862306a36Sopenharmony_ci select PINCONF 17962306a36Sopenharmony_ci select GENERIC_PINCONF 18062306a36Sopenharmony_ci default ARCH_BCM_NSP 18162306a36Sopenharmony_ci help 18262306a36Sopenharmony_ci Say yes here to enable the Broadcom NSP GPIO driver. 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is 18562306a36Sopenharmony_ci supported by this driver. 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci The ChipcommonA GPIO controller support basic PINCONF functions such 18862306a36Sopenharmony_ci as bias pull up, pull down, and drive strength configurations, when 18962306a36Sopenharmony_ci these pins are muxed to GPIO. 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ciconfig PINCTRL_NS2_MUX 19262306a36Sopenharmony_ci bool "Broadcom Northstar2 pinmux driver" 19362306a36Sopenharmony_ci depends on OF 19462306a36Sopenharmony_ci depends on ARCH_BCM_IPROC || COMPILE_TEST 19562306a36Sopenharmony_ci select PINMUX 19662306a36Sopenharmony_ci select GENERIC_PINCONF 19762306a36Sopenharmony_ci default ARM64 && ARCH_BCM_IPROC 19862306a36Sopenharmony_ci help 19962306a36Sopenharmony_ci Say yes here to enable the Broadcom NS2 MUX driver. 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci The Broadcom Northstar2 IOMUX driver supports group based IOMUX 20262306a36Sopenharmony_ci configuration. 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ciconfig PINCTRL_NSP_MUX 20562306a36Sopenharmony_ci bool "Broadcom NSP IOMUX driver" 20662306a36Sopenharmony_ci depends on (ARCH_BCM_NSP || COMPILE_TEST) 20762306a36Sopenharmony_ci depends on OF 20862306a36Sopenharmony_ci select PINMUX 20962306a36Sopenharmony_ci select GENERIC_PINCONF 21062306a36Sopenharmony_ci default ARCH_BCM_NSP 21162306a36Sopenharmony_ci help 21262306a36Sopenharmony_ci Say yes here to enable the Broadcom NSP SOC IOMUX driver. 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX 21562306a36Sopenharmony_ci configuration, with certain individual pins can be overridden 21662306a36Sopenharmony_ci to GPIO function. 217