pinctrl: bcm2712 pinctrl/pinconf driver
[platform/kernel/linux-rpi.git] / drivers / pinctrl / bcm / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Broadcom pinctrl drivers
4 #
5
6 config PINCTRL_BCM2712
7         bool "Broadcom BCM2712 PINCONF driver"
8         depends on OF && (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST)
9         select PINMUX
10         select PINCONF
11         select GENERIC_PINCONF
12         help
13            Say Y here to enable the Broadcom BCM2835 GPIO driver.
14
15 config PINCTRL_BCM281XX
16         bool "Broadcom BCM281xx pinctrl driver"
17         depends on OF && (ARCH_BCM_MOBILE || COMPILE_TEST)
18         select PINMUX
19         select PINCONF
20         select GENERIC_PINCONF
21         select REGMAP_MMIO
22         default ARCH_BCM_MOBILE
23         help
24           Say Y here to support Broadcom BCM281xx pinctrl driver, which is used
25           for the BCM281xx SoC family, including BCM11130, BCM11140, BCM11351,
26           BCM28145, and BCM28155 SoCs.  This driver requires the pinctrl
27           framework.  GPIO is provided by a separate GPIO driver.
28
29 config PINCTRL_BCM2835
30         tristate "Broadcom BCM2835 GPIO (with PINCONF) driver"
31         depends on OF && (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST)
32         select PINMUX
33         select PINCONF
34         select GENERIC_PINCONF
35         select GPIOLIB
36         select GPIOLIB_IRQCHIP
37         default ARCH_BCM2835 || ARCH_BRCMSTB
38         help
39            Say Y here to enable the Broadcom BCM2835 GPIO driver.
40
41 config PINCTRL_BCM4908
42         tristate "Broadcom BCM4908 pinmux driver"
43         depends on OF && (ARCH_BCMBCA || COMPILE_TEST)
44         select PINMUX
45         select PINCONF
46         select GENERIC_PINCONF
47         select GENERIC_PINCTRL_GROUPS
48         select GENERIC_PINMUX_FUNCTIONS
49         default ARCH_BCMBCA
50         help
51           Driver for BCM4908 family SoCs with integrated pin controller.
52
53           If compiled as module it will be called pinctrl-bcm4908.
54
55 config PINCTRL_BCM63XX
56         bool
57         select PINMUX
58         select PINCONF
59         select GENERIC_PINCONF
60         select GPIOLIB
61         select REGMAP
62         select GPIO_REGMAP
63
64 config PINCTRL_BCM6318
65         bool "Broadcom BCM6318 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 BCM6318 GPIO driver.
72
73 config PINCTRL_BCM6328
74         bool "Broadcom BCM6328 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 BCM6328 GPIO driver.
81
82 config PINCTRL_BCM6358
83         bool "Broadcom BCM6358 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 BCM6358 GPIO driver.
90
91 config PINCTRL_BCM6362
92         bool "Broadcom BCM6362 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 BCM6362 GPIO driver.
99
100 config PINCTRL_BCM6368
101         bool "Broadcom BCM6368 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 BCM6368 GPIO driver.
108
109 config PINCTRL_BCM63268
110         bool "Broadcom BCM63268 GPIO driver"
111         depends on (BMIPS_GENERIC || COMPILE_TEST)
112         depends on OF
113         select PINCTRL_BCM63XX
114         default BMIPS_GENERIC
115         help
116            Say Y here to enable the Broadcom BCM63268 GPIO driver.
117
118 config PINCTRL_IPROC_GPIO
119         bool "Broadcom iProc GPIO (with PINCONF) driver"
120         depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST)
121         select GPIOLIB_IRQCHIP
122         select PINCONF
123         select GENERIC_PINCONF
124         default ARCH_BCM_IPROC
125         help
126           Say yes here to enable the Broadcom iProc GPIO driver.
127
128           The Broadcom iProc based SoCs- Cygnus, NS2, NSP and Stingray, use
129           same GPIO Controller IP hence this driver could be used for all.
130
131           The Broadcom Cygnus SoC has 3 GPIO controllers including the ASIU
132           GPIO controller (ASIU), the chipCommonG GPIO controller (CCM), and
133           the always-ON GPIO controller (CRMU/AON). All 3 GPIO controllers are
134           supported by this driver.
135
136           The Broadcom NSP has two GPIO controllers including the ChipcommonA
137           GPIO, the ChipcommonB GPIO. Later controller is supported by this
138           driver.
139
140           The Broadcom NS2 has two GPIO controller including the CRMU GPIO,
141           the ChipcommonG GPIO. Both controllers are supported by this driver.
142
143           The Broadcom Stingray GPIO controllers are supported by this driver.
144
145           All above SoCs GPIO controllers support basic PINCONF functions such
146           as bias pull up, pull down, and drive strength configurations, when
147           these pins are muxed to GPIO.
148
149           It provides the framework where pins from the individual GPIO can be
150           individually muxed to GPIO function, through interaction with the
151           SoCs IOMUX controller. This features could be used only on SoCs which
152           support individual pin muxing.
153
154 config PINCTRL_CYGNUS_MUX
155         bool "Broadcom Cygnus IOMUX driver"
156         depends on (ARCH_BCM_CYGNUS || COMPILE_TEST)
157         depends on OF
158         select PINMUX
159         select GENERIC_PINCONF
160         default ARCH_BCM_CYGNUS
161         help
162           Say yes here to enable the Broadcom Cygnus IOMUX driver.
163
164           The Broadcom Cygnus IOMUX driver supports group based IOMUX
165           configuration, with the exception that certain individual pins
166           can be overridden to GPIO function
167
168 config PINCTRL_NS
169         bool "Broadcom Northstar pins driver"
170         depends on OF && (ARCH_BCM_5301X || COMPILE_TEST)
171         select PINMUX
172         select GENERIC_PINCONF
173         select GENERIC_PINCTRL_GROUPS
174         select GENERIC_PINMUX_FUNCTIONS
175         default ARCH_BCM_5301X
176         help
177           Say yes here to enable the Broadcom NS SoC pins driver.
178
179           The Broadcom Northstar pins driver supports muxing multi-purpose pins
180           that can be used for various functions (e.g. SPI, I2C, UART) as well
181           as GPIOs.
182
183 config PINCTRL_NSP_GPIO
184         bool "Broadcom NSP GPIO (with PINCONF) driver"
185         depends on OF_GPIO && (ARCH_BCM_NSP || COMPILE_TEST)
186         select GPIOLIB_IRQCHIP
187         select PINCONF
188         select GENERIC_PINCONF
189         default ARCH_BCM_NSP
190         help
191           Say yes here to enable the Broadcom NSP GPIO driver.
192
193           The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is
194           supported by this driver.
195
196           The ChipcommonA GPIO controller support basic PINCONF functions such
197           as bias pull up, pull down, and drive strength configurations, when
198           these pins are muxed to GPIO.
199
200 config PINCTRL_NS2_MUX
201         bool "Broadcom Northstar2 pinmux driver"
202         depends on OF
203         depends on ARCH_BCM_IPROC || COMPILE_TEST
204         select PINMUX
205         select GENERIC_PINCONF
206         default ARM64 && ARCH_BCM_IPROC
207         help
208           Say yes here to enable the Broadcom NS2 MUX driver.
209
210           The Broadcom Northstar2 IOMUX driver supports group based IOMUX
211           configuration.
212
213 config PINCTRL_NSP_MUX
214         bool "Broadcom NSP IOMUX driver"
215         depends on (ARCH_BCM_NSP || COMPILE_TEST)
216         depends on OF
217         select PINMUX
218         select GENERIC_PINCONF
219         default ARCH_BCM_NSP
220         help
221           Say yes here to enable the Broadcom NSP SOC IOMUX driver.
222
223           The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX
224           configuration, with certain individual pins can be overridden
225           to GPIO function.