1 # SPDX-License-Identifier: GPL-2.0-only
3 # Broadcom pinctrl drivers
6 config PINCTRL_BCM281XX
7 bool "Broadcom BCM281xx pinctrl driver"
8 depends on OF && (ARCH_BCM_MOBILE || COMPILE_TEST)
11 select GENERIC_PINCONF
13 default ARCH_BCM_MOBILE
15 Say Y here to support Broadcom BCM281xx pinctrl driver, which is used
16 for the BCM281xx SoC family, including BCM11130, BCM11140, BCM11351,
17 BCM28145, and BCM28155 SoCs. This driver requires the pinctrl
18 framework. GPIO is provided by a separate GPIO driver.
20 config PINCTRL_BCM2835
21 tristate "Broadcom BCM2835 GPIO (with PINCONF) driver"
22 depends on OF && (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST)
25 select GENERIC_PINCONF
27 select GPIOLIB_IRQCHIP
28 default ARCH_BCM2835 || ARCH_BRCMSTB
30 Say Y here to enable the Broadcom BCM2835 GPIO driver.
32 config PINCTRL_BCM4908
33 tristate "Broadcom BCM4908 pinmux driver"
34 depends on OF && (ARCH_BCM4908 || COMPILE_TEST)
37 select GENERIC_PINCONF
38 select GENERIC_PINCTRL_GROUPS
39 select GENERIC_PINMUX_FUNCTIONS
42 Driver for BCM4908 family SoCs with integrated pin controller.
44 If compiled as module it will be called pinctrl-bcm4908.
46 config PINCTRL_BCM63XX
50 select GENERIC_PINCONF
55 config PINCTRL_BCM6318
56 bool "Broadcom BCM6318 GPIO driver"
57 depends on (BMIPS_GENERIC || COMPILE_TEST)
59 select PINCTRL_BCM63XX
62 Say Y here to enable the Broadcom BCM6318 GPIO driver.
64 config PINCTRL_BCM6328
65 bool "Broadcom BCM6328 GPIO driver"
66 depends on (BMIPS_GENERIC || COMPILE_TEST)
68 select PINCTRL_BCM63XX
71 Say Y here to enable the Broadcom BCM6328 GPIO driver.
73 config PINCTRL_BCM6358
74 bool "Broadcom BCM6358 GPIO driver"
75 depends on (BMIPS_GENERIC || COMPILE_TEST)
77 select PINCTRL_BCM63XX
80 Say Y here to enable the Broadcom BCM6358 GPIO driver.
82 config PINCTRL_BCM6362
83 bool "Broadcom BCM6362 GPIO driver"
84 depends on (BMIPS_GENERIC || COMPILE_TEST)
86 select PINCTRL_BCM63XX
89 Say Y here to enable the Broadcom BCM6362 GPIO driver.
91 config PINCTRL_BCM6368
92 bool "Broadcom BCM6368 GPIO driver"
93 depends on (BMIPS_GENERIC || COMPILE_TEST)
95 select PINCTRL_BCM63XX
98 Say Y here to enable the Broadcom BCM6368 GPIO driver.
100 config PINCTRL_BCM63268
101 bool "Broadcom BCM63268 GPIO driver"
102 depends on (BMIPS_GENERIC || COMPILE_TEST)
104 select PINCTRL_BCM63XX
105 default BMIPS_GENERIC
107 Say Y here to enable the Broadcom BCM63268 GPIO driver.
109 config PINCTRL_IPROC_GPIO
110 bool "Broadcom iProc GPIO (with PINCONF) driver"
111 depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST)
112 select GPIOLIB_IRQCHIP
114 select GENERIC_PINCONF
115 default ARCH_BCM_IPROC
117 Say yes here to enable the Broadcom iProc GPIO driver.
119 The Broadcom iProc based SoCs- Cygnus, NS2, NSP and Stingray, use
120 same GPIO Controller IP hence this driver could be used for all.
122 The Broadcom Cygnus SoC has 3 GPIO controllers including the ASIU
123 GPIO controller (ASIU), the chipCommonG GPIO controller (CCM), and
124 the always-ON GPIO controller (CRMU/AON). All 3 GPIO controllers are
125 supported by this driver.
127 The Broadcom NSP has two GPIO controllers including the ChipcommonA
128 GPIO, the ChipcommonB GPIO. Later controller is supported by this
131 The Broadcom NS2 has two GPIO controller including the CRMU GPIO,
132 the ChipcommonG GPIO. Both controllers are supported by this driver.
134 The Broadcom Stingray GPIO controllers are supported by this driver.
136 All above SoCs GPIO controllers support basic PINCONF functions such
137 as bias pull up, pull down, and drive strength configurations, when
138 these pins are muxed to GPIO.
140 It provides the framework where pins from the individual GPIO can be
141 individually muxed to GPIO function, through interaction with the
142 SoCs IOMUX controller. This features could be used only on SoCs which
143 support individual pin muxing.
145 config PINCTRL_CYGNUS_MUX
146 bool "Broadcom Cygnus IOMUX driver"
147 depends on (ARCH_BCM_CYGNUS || COMPILE_TEST)
150 select GENERIC_PINCONF
151 default ARCH_BCM_CYGNUS
153 Say yes here to enable the Broadcom Cygnus IOMUX driver.
155 The Broadcom Cygnus IOMUX driver supports group based IOMUX
156 configuration, with the exception that certain individual pins
157 can be overridden to GPIO function
160 bool "Broadcom Northstar pins driver"
161 depends on OF && (ARCH_BCM_5301X || COMPILE_TEST)
163 select GENERIC_PINCONF
164 select GENERIC_PINCTRL_GROUPS
165 select GENERIC_PINMUX_FUNCTIONS
166 default ARCH_BCM_5301X
168 Say yes here to enable the Broadcom NS SoC pins driver.
170 The Broadcom Northstar pins driver supports muxing multi-purpose pins
171 that can be used for various functions (e.g. SPI, I2C, UART) as well
174 config PINCTRL_NSP_GPIO
175 bool "Broadcom NSP GPIO (with PINCONF) driver"
176 depends on OF_GPIO && (ARCH_BCM_NSP || COMPILE_TEST)
177 select GPIOLIB_IRQCHIP
179 select GENERIC_PINCONF
182 Say yes here to enable the Broadcom NSP GPIO driver.
184 The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is
185 supported by this driver.
187 The ChipcommonA GPIO controller support basic PINCONF functions such
188 as bias pull up, pull down, and drive strength configurations, when
189 these pins are muxed to GPIO.
191 config PINCTRL_NS2_MUX
192 bool "Broadcom Northstar2 pinmux driver"
194 depends on ARCH_BCM_IPROC || COMPILE_TEST
196 select GENERIC_PINCONF
197 default ARM64 && ARCH_BCM_IPROC
199 Say yes here to enable the Broadcom NS2 MUX driver.
201 The Broadcom Northstar2 IOMUX driver supports group based IOMUX
204 config PINCTRL_NSP_MUX
205 bool "Broadcom NSP IOMUX driver"
206 depends on (ARCH_BCM_NSP || COMPILE_TEST)
209 select GENERIC_PINCONF
212 Say yes here to enable the Broadcom NSP SOC IOMUX driver.
214 The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX
215 configuration, with certain individual pins can be overridden