1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Broadcom pinctrl drivers
4#
5
6config 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
20config 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
32config PINCTRL_BCM63XX
33	bool
34	select PINMUX
35	select PINCONF
36	select GENERIC_PINCONF
37	select GPIOLIB
38	select GPIO_REGMAP
39
40config PINCTRL_BCM6318
41	bool "Broadcom BCM6318 GPIO driver"
42	depends on (BMIPS_GENERIC || COMPILE_TEST)
43	depends on OF
44	select PINCTRL_BCM63XX
45	default BMIPS_GENERIC
46	help
47	   Say Y here to enable the Broadcom BCM6318 GPIO driver.
48
49config PINCTRL_BCM6328
50	bool "Broadcom BCM6328 GPIO driver"
51	depends on (BMIPS_GENERIC || COMPILE_TEST)
52	depends on OF
53	select PINCTRL_BCM63XX
54	default BMIPS_GENERIC
55	help
56	   Say Y here to enable the Broadcom BCM6328 GPIO driver.
57
58config PINCTRL_BCM6358
59	bool "Broadcom BCM6358 GPIO driver"
60	depends on (BMIPS_GENERIC || COMPILE_TEST)
61	depends on OF
62	select PINCTRL_BCM63XX
63	default BMIPS_GENERIC
64	help
65	   Say Y here to enable the Broadcom BCM6358 GPIO driver.
66
67config PINCTRL_BCM6362
68	bool "Broadcom BCM6362 GPIO driver"
69	depends on (BMIPS_GENERIC || COMPILE_TEST)
70	depends on OF
71	select PINCTRL_BCM63XX
72	default BMIPS_GENERIC
73	help
74	   Say Y here to enable the Broadcom BCM6362 GPIO driver.
75
76config PINCTRL_BCM6368
77	bool "Broadcom BCM6368 GPIO driver"
78	depends on (BMIPS_GENERIC || COMPILE_TEST)
79	depends on OF
80	select PINCTRL_BCM63XX
81	default BMIPS_GENERIC
82	help
83	   Say Y here to enable the Broadcom BCM6368 GPIO driver.
84
85config PINCTRL_BCM63268
86	bool "Broadcom BCM63268 GPIO driver"
87	depends on (BMIPS_GENERIC || COMPILE_TEST)
88	depends on OF
89	select PINCTRL_BCM63XX
90	default BMIPS_GENERIC
91	help
92	   Say Y here to enable the Broadcom BCM63268 GPIO driver.
93
94config PINCTRL_IPROC_GPIO
95	bool "Broadcom iProc GPIO (with PINCONF) driver"
96	depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST)
97	select GPIOLIB_IRQCHIP
98	select PINCONF
99	select GENERIC_PINCONF
100	default ARCH_BCM_IPROC
101	help
102	  Say yes here to enable the Broadcom iProc GPIO driver.
103
104	  The Broadcom iProc based SoCs- Cygnus, NS2, NSP and Stingray, use
105	  same GPIO Controller IP hence this driver could be used for all.
106
107	  The Broadcom Cygnus SoC has 3 GPIO controllers including the ASIU
108	  GPIO controller (ASIU), the chipCommonG GPIO controller (CCM), and
109	  the always-ON GPIO controller (CRMU/AON). All 3 GPIO controllers are
110	  supported by this driver.
111
112	  The Broadcom NSP has two GPIO controllers including the ChipcommonA
113	  GPIO, the ChipcommonB GPIO. Later controller is supported by this
114	  driver.
115
116	  The Broadcom NS2 has two GPIO controller including the CRMU GPIO,
117	  the ChipcommonG GPIO. Both controllers are supported by this driver.
118
119	  The Broadcom Stingray GPIO controllers are supported by this driver.
120
121	  All above SoCs GPIO controllers support basic PINCONF functions such
122	  as bias pull up, pull down, and drive strength configurations, when
123	  these pins are muxed to GPIO.
124
125	  It provides the framework where pins from the individual GPIO can be
126	  individually muxed to GPIO function, through interaction with the
127	  SoCs IOMUX controller. This features could be used only on SoCs which
128	  support individual pin muxing.
129
130config PINCTRL_CYGNUS_MUX
131	bool "Broadcom Cygnus IOMUX driver"
132	depends on (ARCH_BCM_CYGNUS || COMPILE_TEST)
133	depends on OF
134	select PINMUX
135	select GENERIC_PINCONF
136	default ARCH_BCM_CYGNUS
137	help
138	  Say yes here to enable the Broadcom Cygnus IOMUX driver.
139
140	  The Broadcom Cygnus IOMUX driver supports group based IOMUX
141	  configuration, with the exception that certain individual pins
142	  can be overridden to GPIO function
143
144config PINCTRL_NS
145	bool "Broadcom Northstar pins driver"
146	depends on OF && (ARCH_BCM_5301X || COMPILE_TEST)
147	select PINMUX
148	select GENERIC_PINCONF
149	default ARCH_BCM_5301X
150	help
151	  Say yes here to enable the Broadcom NS SoC pins driver.
152
153	  The Broadcom Northstar pins driver supports muxing multi-purpose pins
154	  that can be used for various functions (e.g. SPI, I2C, UART) as well
155	  as GPIOs.
156
157config PINCTRL_NSP_GPIO
158	bool "Broadcom NSP GPIO (with PINCONF) driver"
159	depends on OF_GPIO && (ARCH_BCM_NSP || COMPILE_TEST)
160	select GPIOLIB_IRQCHIP
161	select PINCONF
162	select GENERIC_PINCONF
163	default ARCH_BCM_NSP
164	help
165	  Say yes here to enable the Broadcom NSP GPIO driver.
166
167	  The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is
168	  supported by this driver.
169
170	  The ChipcommonA GPIO controller support basic PINCONF functions such
171	  as bias pull up, pull down, and drive strength configurations, when
172	  these pins are muxed to GPIO.
173
174config PINCTRL_NS2_MUX
175	bool "Broadcom Northstar2 pinmux driver"
176	depends on OF
177	depends on ARCH_BCM_IPROC || COMPILE_TEST
178	select PINMUX
179	select GENERIC_PINCONF
180	default ARM64 && ARCH_BCM_IPROC
181	help
182	  Say yes here to enable the Broadcom NS2 MUX driver.
183
184	  The Broadcom Northstar2 IOMUX driver supports group based IOMUX
185	  configuration.
186
187config PINCTRL_NSP_MUX
188	bool "Broadcom NSP IOMUX driver"
189	depends on (ARCH_BCM_NSP || COMPILE_TEST)
190	depends on OF
191	select PINMUX
192	select GENERIC_PINCONF
193	default ARCH_BCM_NSP
194	help
195	  Say yes here to enable the Broadcom NSP SOC IOMUX driver.
196
197	  The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX
198	  configuration, with certain individual pins can be overridden
199	  to GPIO function.
200