1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Broadcom pinctrl drivers
4 #
5 
6 config PINCTRL_BCM281XX
7 	bool "Broadcom BCM281xx pinctrl driver"
8 	depends on OF && (ARCH_BCM_MOBILE || COMPILE_TEST)
9 	select PINMUX
10 	select PINCONF
11 	select GENERIC_PINCONF
12 	select REGMAP_MMIO
13 	default ARCH_BCM_MOBILE
14 	help
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.
19 
20 config PINCTRL_BCM2835
21 	tristate "Broadcom BCM2835 GPIO (with PINCONF) driver"
22 	depends on OF && (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST)
23 	select PINMUX
24 	select PINCONF
25 	select GENERIC_PINCONF
26 	select GPIOLIB
27 	select GPIOLIB_IRQCHIP
28 	default ARCH_BCM2835 || ARCH_BRCMSTB
29 	help
30 	   Say Y here to enable the Broadcom BCM2835 GPIO driver.
31 
32 config PINCTRL_BCM4908
33 	tristate "Broadcom BCM4908 pinmux driver"
34 	depends on OF && (ARCH_BCMBCA || COMPILE_TEST)
35 	select PINMUX
36 	select PINCONF
37 	select GENERIC_PINCONF
38 	select GENERIC_PINCTRL_GROUPS
39 	select GENERIC_PINMUX_FUNCTIONS
40 	default ARCH_BCMBCA
41 	help
42 	  Driver for BCM4908 family SoCs with integrated pin controller.
43 
44 	  If compiled as module it will be called pinctrl-bcm4908.
45 
46 config PINCTRL_BCM63XX
47 	bool
48 	select PINMUX
49 	select PINCONF
50 	select GENERIC_PINCONF
51 	select GPIOLIB
52 	select REGMAP
53 	select GPIO_REGMAP
54 
55 config PINCTRL_BCM6318
56 	bool "Broadcom BCM6318 GPIO driver"
57 	depends on (BMIPS_GENERIC || COMPILE_TEST)
58 	depends on OF
59 	select PINCTRL_BCM63XX
60 	default BMIPS_GENERIC
61 	help
62 	   Say Y here to enable the Broadcom BCM6318 GPIO driver.
63 
64 config PINCTRL_BCM6328
65 	bool "Broadcom BCM6328 GPIO driver"
66 	depends on (BMIPS_GENERIC || COMPILE_TEST)
67 	depends on OF
68 	select PINCTRL_BCM63XX
69 	default BMIPS_GENERIC
70 	help
71 	   Say Y here to enable the Broadcom BCM6328 GPIO driver.
72 
73 config PINCTRL_BCM6358
74 	bool "Broadcom BCM6358 GPIO driver"
75 	depends on (BMIPS_GENERIC || COMPILE_TEST)
76 	depends on OF
77 	select PINCTRL_BCM63XX
78 	default BMIPS_GENERIC
79 	help
80 	   Say Y here to enable the Broadcom BCM6358 GPIO driver.
81 
82 config PINCTRL_BCM6362
83 	bool "Broadcom BCM6362 GPIO driver"
84 	depends on (BMIPS_GENERIC || COMPILE_TEST)
85 	depends on OF
86 	select PINCTRL_BCM63XX
87 	default BMIPS_GENERIC
88 	help
89 	   Say Y here to enable the Broadcom BCM6362 GPIO driver.
90 
91 config PINCTRL_BCM6368
92 	bool "Broadcom BCM6368 GPIO driver"
93 	depends on (BMIPS_GENERIC || COMPILE_TEST)
94 	depends on OF
95 	select PINCTRL_BCM63XX
96 	default BMIPS_GENERIC
97 	help
98 	   Say Y here to enable the Broadcom BCM6368 GPIO driver.
99 
100 config PINCTRL_BCM63268
101 	bool "Broadcom BCM63268 GPIO driver"
102 	depends on (BMIPS_GENERIC || COMPILE_TEST)
103 	depends on OF
104 	select PINCTRL_BCM63XX
105 	default BMIPS_GENERIC
106 	help
107 	   Say Y here to enable the Broadcom BCM63268 GPIO driver.
108 
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
113 	select PINCONF
114 	select GENERIC_PINCONF
115 	default ARCH_BCM_IPROC
116 	help
117 	  Say yes here to enable the Broadcom iProc GPIO driver.
118 
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.
121 
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.
126 
127 	  The Broadcom NSP has two GPIO controllers including the ChipcommonA
128 	  GPIO, the ChipcommonB GPIO. Later controller is supported by this
129 	  driver.
130 
131 	  The Broadcom NS2 has two GPIO controller including the CRMU GPIO,
132 	  the ChipcommonG GPIO. Both controllers are supported by this driver.
133 
134 	  The Broadcom Stingray GPIO controllers are supported by this driver.
135 
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.
139 
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.
144 
145 config PINCTRL_CYGNUS_MUX
146 	bool "Broadcom Cygnus IOMUX driver"
147 	depends on (ARCH_BCM_CYGNUS || COMPILE_TEST)
148 	depends on OF
149 	select PINMUX
150 	select GENERIC_PINCONF
151 	default ARCH_BCM_CYGNUS
152 	help
153 	  Say yes here to enable the Broadcom Cygnus IOMUX driver.
154 
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
158 
159 config PINCTRL_NS
160 	bool "Broadcom Northstar pins driver"
161 	depends on OF && (ARCH_BCM_5301X || COMPILE_TEST)
162 	select PINMUX
163 	select GENERIC_PINCONF
164 	select GENERIC_PINCTRL_GROUPS
165 	select GENERIC_PINMUX_FUNCTIONS
166 	default ARCH_BCM_5301X
167 	help
168 	  Say yes here to enable the Broadcom NS SoC pins driver.
169 
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
172 	  as GPIOs.
173 
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
178 	select PINCONF
179 	select GENERIC_PINCONF
180 	default ARCH_BCM_NSP
181 	help
182 	  Say yes here to enable the Broadcom NSP GPIO driver.
183 
184 	  The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is
185 	  supported by this driver.
186 
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.
190 
191 config PINCTRL_NS2_MUX
192 	bool "Broadcom Northstar2 pinmux driver"
193 	depends on OF
194 	depends on ARCH_BCM_IPROC || COMPILE_TEST
195 	select PINMUX
196 	select GENERIC_PINCONF
197 	default ARM64 && ARCH_BCM_IPROC
198 	help
199 	  Say yes here to enable the Broadcom NS2 MUX driver.
200 
201 	  The Broadcom Northstar2 IOMUX driver supports group based IOMUX
202 	  configuration.
203 
204 config PINCTRL_NSP_MUX
205 	bool "Broadcom NSP IOMUX driver"
206 	depends on (ARCH_BCM_NSP || COMPILE_TEST)
207 	depends on OF
208 	select PINMUX
209 	select GENERIC_PINCONF
210 	default ARCH_BCM_NSP
211 	help
212 	  Say yes here to enable the Broadcom NSP SOC IOMUX driver.
213 
214 	  The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX
215 	  configuration, with certain individual pins can be overridden
216 	  to GPIO function.
217