xref: /openbmc/linux/drivers/pinctrl/bcm/Kconfig (revision 941518d6)
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	select GENERIC_PINCTRL_GROUPS
150	select GENERIC_PINMUX_FUNCTIONS
151	default ARCH_BCM_5301X
152	help
153	  Say yes here to enable the Broadcom NS SoC pins driver.
154
155	  The Broadcom Northstar pins driver supports muxing multi-purpose pins
156	  that can be used for various functions (e.g. SPI, I2C, UART) as well
157	  as GPIOs.
158
159config PINCTRL_NSP_GPIO
160	bool "Broadcom NSP GPIO (with PINCONF) driver"
161	depends on OF_GPIO && (ARCH_BCM_NSP || COMPILE_TEST)
162	select GPIOLIB_IRQCHIP
163	select PINCONF
164	select GENERIC_PINCONF
165	default ARCH_BCM_NSP
166	help
167	  Say yes here to enable the Broadcom NSP GPIO driver.
168
169	  The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is
170	  supported by this driver.
171
172	  The ChipcommonA GPIO controller support basic PINCONF functions such
173	  as bias pull up, pull down, and drive strength configurations, when
174	  these pins are muxed to GPIO.
175
176config PINCTRL_NS2_MUX
177	bool "Broadcom Northstar2 pinmux driver"
178	depends on OF
179	depends on ARCH_BCM_IPROC || COMPILE_TEST
180	select PINMUX
181	select GENERIC_PINCONF
182	default ARM64 && ARCH_BCM_IPROC
183	help
184	  Say yes here to enable the Broadcom NS2 MUX driver.
185
186	  The Broadcom Northstar2 IOMUX driver supports group based IOMUX
187	  configuration.
188
189config PINCTRL_NSP_MUX
190	bool "Broadcom NSP IOMUX driver"
191	depends on (ARCH_BCM_NSP || COMPILE_TEST)
192	depends on OF
193	select PINMUX
194	select GENERIC_PINCONF
195	default ARCH_BCM_NSP
196	help
197	  Say yes here to enable the Broadcom NSP SOC IOMUX driver.
198
199	  The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX
200	  configuration, with certain individual pins can be overridden
201	  to GPIO function.
202