0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Broadcom pinctrl drivers
0004 #
0005
0006 config PINCTRL_BCM281XX
0007 bool "Broadcom BCM281xx pinctrl driver"
0008 depends on OF && (ARCH_BCM_MOBILE || COMPILE_TEST)
0009 select PINMUX
0010 select PINCONF
0011 select GENERIC_PINCONF
0012 select REGMAP_MMIO
0013 default ARCH_BCM_MOBILE
0014 help
0015 Say Y here to support Broadcom BCM281xx pinctrl driver, which is used
0016 for the BCM281xx SoC family, including BCM11130, BCM11140, BCM11351,
0017 BCM28145, and BCM28155 SoCs. This driver requires the pinctrl
0018 framework. GPIO is provided by a separate GPIO driver.
0019
0020 config PINCTRL_BCM2835
0021 tristate "Broadcom BCM2835 GPIO (with PINCONF) driver"
0022 depends on OF && (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST)
0023 select PINMUX
0024 select PINCONF
0025 select GENERIC_PINCONF
0026 select GPIOLIB
0027 select GPIOLIB_IRQCHIP
0028 default ARCH_BCM2835 || ARCH_BRCMSTB
0029 help
0030 Say Y here to enable the Broadcom BCM2835 GPIO driver.
0031
0032 config PINCTRL_BCM4908
0033 tristate "Broadcom BCM4908 pinmux driver"
0034 depends on OF && (ARCH_BCM4908 || COMPILE_TEST)
0035 select PINMUX
0036 select PINCONF
0037 select GENERIC_PINCONF
0038 select GENERIC_PINCTRL_GROUPS
0039 select GENERIC_PINMUX_FUNCTIONS
0040 default ARCH_BCM4908
0041 help
0042 Driver for BCM4908 family SoCs with integrated pin controller.
0043
0044 If compiled as module it will be called pinctrl-bcm4908.
0045
0046 config PINCTRL_BCM63XX
0047 bool
0048 select PINMUX
0049 select PINCONF
0050 select GENERIC_PINCONF
0051 select GPIOLIB
0052 select REGMAP
0053 select GPIO_REGMAP
0054
0055 config PINCTRL_BCM6318
0056 bool "Broadcom BCM6318 GPIO driver"
0057 depends on (BMIPS_GENERIC || COMPILE_TEST)
0058 depends on OF
0059 select PINCTRL_BCM63XX
0060 default BMIPS_GENERIC
0061 help
0062 Say Y here to enable the Broadcom BCM6318 GPIO driver.
0063
0064 config PINCTRL_BCM6328
0065 bool "Broadcom BCM6328 GPIO driver"
0066 depends on (BMIPS_GENERIC || COMPILE_TEST)
0067 depends on OF
0068 select PINCTRL_BCM63XX
0069 default BMIPS_GENERIC
0070 help
0071 Say Y here to enable the Broadcom BCM6328 GPIO driver.
0072
0073 config PINCTRL_BCM6358
0074 bool "Broadcom BCM6358 GPIO driver"
0075 depends on (BMIPS_GENERIC || COMPILE_TEST)
0076 depends on OF
0077 select PINCTRL_BCM63XX
0078 default BMIPS_GENERIC
0079 help
0080 Say Y here to enable the Broadcom BCM6358 GPIO driver.
0081
0082 config PINCTRL_BCM6362
0083 bool "Broadcom BCM6362 GPIO driver"
0084 depends on (BMIPS_GENERIC || COMPILE_TEST)
0085 depends on OF
0086 select PINCTRL_BCM63XX
0087 default BMIPS_GENERIC
0088 help
0089 Say Y here to enable the Broadcom BCM6362 GPIO driver.
0090
0091 config PINCTRL_BCM6368
0092 bool "Broadcom BCM6368 GPIO driver"
0093 depends on (BMIPS_GENERIC || COMPILE_TEST)
0094 depends on OF
0095 select PINCTRL_BCM63XX
0096 default BMIPS_GENERIC
0097 help
0098 Say Y here to enable the Broadcom BCM6368 GPIO driver.
0099
0100 config PINCTRL_BCM63268
0101 bool "Broadcom BCM63268 GPIO driver"
0102 depends on (BMIPS_GENERIC || COMPILE_TEST)
0103 depends on OF
0104 select PINCTRL_BCM63XX
0105 default BMIPS_GENERIC
0106 help
0107 Say Y here to enable the Broadcom BCM63268 GPIO driver.
0108
0109 config PINCTRL_IPROC_GPIO
0110 bool "Broadcom iProc GPIO (with PINCONF) driver"
0111 depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST)
0112 select GPIOLIB_IRQCHIP
0113 select PINCONF
0114 select GENERIC_PINCONF
0115 default ARCH_BCM_IPROC
0116 help
0117 Say yes here to enable the Broadcom iProc GPIO driver.
0118
0119 The Broadcom iProc based SoCs- Cygnus, NS2, NSP and Stingray, use
0120 same GPIO Controller IP hence this driver could be used for all.
0121
0122 The Broadcom Cygnus SoC has 3 GPIO controllers including the ASIU
0123 GPIO controller (ASIU), the chipCommonG GPIO controller (CCM), and
0124 the always-ON GPIO controller (CRMU/AON). All 3 GPIO controllers are
0125 supported by this driver.
0126
0127 The Broadcom NSP has two GPIO controllers including the ChipcommonA
0128 GPIO, the ChipcommonB GPIO. Later controller is supported by this
0129 driver.
0130
0131 The Broadcom NS2 has two GPIO controller including the CRMU GPIO,
0132 the ChipcommonG GPIO. Both controllers are supported by this driver.
0133
0134 The Broadcom Stingray GPIO controllers are supported by this driver.
0135
0136 All above SoCs GPIO controllers support basic PINCONF functions such
0137 as bias pull up, pull down, and drive strength configurations, when
0138 these pins are muxed to GPIO.
0139
0140 It provides the framework where pins from the individual GPIO can be
0141 individually muxed to GPIO function, through interaction with the
0142 SoCs IOMUX controller. This features could be used only on SoCs which
0143 support individual pin muxing.
0144
0145 config PINCTRL_CYGNUS_MUX
0146 bool "Broadcom Cygnus IOMUX driver"
0147 depends on (ARCH_BCM_CYGNUS || COMPILE_TEST)
0148 depends on OF
0149 select PINMUX
0150 select GENERIC_PINCONF
0151 default ARCH_BCM_CYGNUS
0152 help
0153 Say yes here to enable the Broadcom Cygnus IOMUX driver.
0154
0155 The Broadcom Cygnus IOMUX driver supports group based IOMUX
0156 configuration, with the exception that certain individual pins
0157 can be overridden to GPIO function
0158
0159 config PINCTRL_NS
0160 bool "Broadcom Northstar pins driver"
0161 depends on OF && (ARCH_BCM_5301X || COMPILE_TEST)
0162 select PINMUX
0163 select GENERIC_PINCONF
0164 select GENERIC_PINCTRL_GROUPS
0165 select GENERIC_PINMUX_FUNCTIONS
0166 default ARCH_BCM_5301X
0167 help
0168 Say yes here to enable the Broadcom NS SoC pins driver.
0169
0170 The Broadcom Northstar pins driver supports muxing multi-purpose pins
0171 that can be used for various functions (e.g. SPI, I2C, UART) as well
0172 as GPIOs.
0173
0174 config PINCTRL_NSP_GPIO
0175 bool "Broadcom NSP GPIO (with PINCONF) driver"
0176 depends on OF_GPIO && (ARCH_BCM_NSP || COMPILE_TEST)
0177 select GPIOLIB_IRQCHIP
0178 select PINCONF
0179 select GENERIC_PINCONF
0180 default ARCH_BCM_NSP
0181 help
0182 Say yes here to enable the Broadcom NSP GPIO driver.
0183
0184 The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is
0185 supported by this driver.
0186
0187 The ChipcommonA GPIO controller support basic PINCONF functions such
0188 as bias pull up, pull down, and drive strength configurations, when
0189 these pins are muxed to GPIO.
0190
0191 config PINCTRL_NS2_MUX
0192 bool "Broadcom Northstar2 pinmux driver"
0193 depends on OF
0194 depends on ARCH_BCM_IPROC || COMPILE_TEST
0195 select PINMUX
0196 select GENERIC_PINCONF
0197 default ARM64 && ARCH_BCM_IPROC
0198 help
0199 Say yes here to enable the Broadcom NS2 MUX driver.
0200
0201 The Broadcom Northstar2 IOMUX driver supports group based IOMUX
0202 configuration.
0203
0204 config PINCTRL_NSP_MUX
0205 bool "Broadcom NSP IOMUX driver"
0206 depends on (ARCH_BCM_NSP || COMPILE_TEST)
0207 depends on OF
0208 select PINMUX
0209 select GENERIC_PINCONF
0210 default ARCH_BCM_NSP
0211 help
0212 Say yes here to enable the Broadcom NSP SOC IOMUX driver.
0213
0214 The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX
0215 configuration, with certain individual pins can be overridden
0216 to GPIO function.