xref: /linux/drivers/pinctrl/bcm/Kconfig (revision cf9610f9116d55c5a66ef9f1faecacabd93a9322)
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_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
46config 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
55config 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
64config 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
73config 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
82config 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
91config 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
100config 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
109config PINCTRL_BRCMSTB
110        tristate "Broadcom STB product line pin controller driver"
111        depends on OF && (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST)
112        select PINMUX
113        select PINCONF
114        select GENERIC_PINCONF
115        help
116          Enable pin muxing and configuration functionality
117          for Broadcom STB product line chipsets.
118
119source "drivers/pinctrl/bcm/Kconfig.stb"
120
121config PINCTRL_IPROC_GPIO
122	bool "Broadcom iProc GPIO (with PINCONF) driver"
123	depends on ARCH_BCM_IPROC || COMPILE_TEST
124	select GPIOLIB
125	select GPIOLIB_IRQCHIP
126	select PINCONF
127	select GENERIC_PINCONF
128	default ARCH_BCM_IPROC
129	help
130	  Say yes here to enable the Broadcom iProc GPIO driver.
131
132	  The Broadcom iProc based SoCs- Cygnus, NS2, NSP and Stingray, use
133	  same GPIO Controller IP hence this driver could be used for all.
134
135	  The Broadcom Cygnus SoC has 3 GPIO controllers including the ASIU
136	  GPIO controller (ASIU), the chipCommonG GPIO controller (CCM), and
137	  the always-ON GPIO controller (CRMU/AON). All 3 GPIO controllers are
138	  supported by this driver.
139
140	  The Broadcom NSP has two GPIO controllers including the ChipcommonA
141	  GPIO, the ChipcommonB GPIO. Later controller is supported by this
142	  driver.
143
144	  The Broadcom NS2 has two GPIO controller including the CRMU GPIO,
145	  the ChipcommonG GPIO. Both controllers are supported by this driver.
146
147	  The Broadcom Stingray GPIO controllers are supported by this driver.
148
149	  All above SoCs GPIO controllers support basic PINCONF functions such
150	  as bias pull up, pull down, and drive strength configurations, when
151	  these pins are muxed to GPIO.
152
153	  It provides the framework where pins from the individual GPIO can be
154	  individually muxed to GPIO function, through interaction with the
155	  SoCs IOMUX controller. This features could be used only on SoCs which
156	  support individual pin muxing.
157
158config PINCTRL_CYGNUS_MUX
159	bool "Broadcom Cygnus IOMUX driver"
160	depends on (ARCH_BCM_CYGNUS || COMPILE_TEST)
161	depends on OF
162	select PINMUX
163	select GENERIC_PINCONF
164	default ARCH_BCM_CYGNUS
165	help
166	  Say yes here to enable the Broadcom Cygnus IOMUX driver.
167
168	  The Broadcom Cygnus IOMUX driver supports group based IOMUX
169	  configuration, with the exception that certain individual pins
170	  can be overridden to GPIO function
171
172config PINCTRL_NS
173	bool "Broadcom Northstar pins driver"
174	depends on OF && (ARCH_BCM_5301X || COMPILE_TEST)
175	select PINMUX
176	select GENERIC_PINCONF
177	select GENERIC_PINCTRL_GROUPS
178	select GENERIC_PINMUX_FUNCTIONS
179	default ARCH_BCM_5301X
180	help
181	  Say yes here to enable the Broadcom NS SoC pins driver.
182
183	  The Broadcom Northstar pins driver supports muxing multi-purpose pins
184	  that can be used for various functions (e.g. SPI, I2C, UART) as well
185	  as GPIOs.
186
187config PINCTRL_NSP_GPIO
188	bool "Broadcom NSP GPIO (with PINCONF) driver"
189	depends on ARCH_BCM_NSP || COMPILE_TEST
190	select GPIOLIB
191	select GPIOLIB_IRQCHIP
192	select PINCONF
193	select GENERIC_PINCONF
194	default ARCH_BCM_NSP
195	help
196	  Say yes here to enable the Broadcom NSP GPIO driver.
197
198	  The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is
199	  supported by this driver.
200
201	  The ChipcommonA GPIO controller support basic PINCONF functions such
202	  as bias pull up, pull down, and drive strength configurations, when
203	  these pins are muxed to GPIO.
204
205config PINCTRL_NS2_MUX
206	bool "Broadcom Northstar2 pinmux driver"
207	depends on OF
208	depends on ARCH_BCM_IPROC || COMPILE_TEST
209	select PINMUX
210	select GENERIC_PINCONF
211	default ARM64 && ARCH_BCM_IPROC
212	help
213	  Say yes here to enable the Broadcom NS2 MUX driver.
214
215	  The Broadcom Northstar2 IOMUX driver supports group based IOMUX
216	  configuration.
217
218config PINCTRL_NSP_MUX
219	bool "Broadcom NSP IOMUX driver"
220	depends on (ARCH_BCM_NSP || COMPILE_TEST)
221	depends on OF
222	select PINMUX
223	select GENERIC_PINCONF
224	default ARCH_BCM_NSP
225	help
226	  Say yes here to enable the Broadcom NSP SOC IOMUX driver.
227
228	  The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX
229	  configuration, with certain individual pins can be overridden
230	  to GPIO function.
231