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