xref: /openbmc/linux/drivers/pinctrl/bcm/Kconfig (revision 26ea7ac9)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2b17f2f9bSRay Jui#
3b17f2f9bSRay Jui# Broadcom pinctrl drivers
4b17f2f9bSRay Jui#
5b17f2f9bSRay Jui
6b17f2f9bSRay Juiconfig PINCTRL_BCM281XX
7b17f2f9bSRay Jui	bool "Broadcom BCM281xx pinctrl driver"
8b17f2f9bSRay Jui	depends on OF && (ARCH_BCM_MOBILE || COMPILE_TEST)
9b17f2f9bSRay Jui	select PINMUX
10b17f2f9bSRay Jui	select PINCONF
11b17f2f9bSRay Jui	select GENERIC_PINCONF
12b17f2f9bSRay Jui	select REGMAP_MMIO
13652da824SFlorian Fainelli	default ARCH_BCM_MOBILE
14b17f2f9bSRay Jui	help
15b17f2f9bSRay Jui	  Say Y here to support Broadcom BCM281xx pinctrl driver, which is used
16b17f2f9bSRay Jui	  for the BCM281xx SoC family, including BCM11130, BCM11140, BCM11351,
17b17f2f9bSRay Jui	  BCM28145, and BCM28155 SoCs.  This driver requires the pinctrl
18b17f2f9bSRay Jui	  framework.  GPIO is provided by a separate GPIO driver.
19b17f2f9bSRay Jui
20b17f2f9bSRay Juiconfig PINCTRL_BCM2835
21ee11f864SDoug Berger	bool "Broadcom BCM2835 GPIO (with PINCONF) driver"
22138f79dbSYueHaibing	depends on OF && (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST)
23b17f2f9bSRay Jui	select PINMUX
24b17f2f9bSRay Jui	select PINCONF
250de70495SMatheus Castello	select GENERIC_PINCONF
26513034d8SNecip Fazil Yildiran	select GPIOLIB
2785ae9e51SLinus Walleij	select GPIOLIB_IRQCHIP
28ee11f864SDoug Berger	default ARCH_BCM2835 || ARCH_BRCMSTB
29ee11f864SDoug Berger	help
30ee11f864SDoug Berger	   Say Y here to enable the Broadcom BCM2835 GPIO driver.
31cbd159edSRay Jui
32132f9501SÁlvaro Fernández Rojasconfig PINCTRL_BCM63XX
33132f9501SÁlvaro Fernández Rojas	bool
34*26ea7ac9SLinus Walleij	depends on OF
35132f9501SÁlvaro Fernández Rojas	select PINMUX
36*26ea7ac9SLinus Walleij	select PINCONF
37*26ea7ac9SLinus Walleij	select GENERIC_PINCONF
38*26ea7ac9SLinus Walleij	select GPIOLIB
39*26ea7ac9SLinus Walleij	select GPIO_REGMAP
40132f9501SÁlvaro Fernández Rojas
41d28039fcSÁlvaro Fernández Rojasconfig PINCTRL_BCM6318
42d28039fcSÁlvaro Fernández Rojas	bool "Broadcom BCM6318 GPIO driver"
43d28039fcSÁlvaro Fernández Rojas	depends on (BMIPS_GENERIC || COMPILE_TEST)
44d28039fcSÁlvaro Fernández Rojas	select PINCTRL_BCM63XX
45d28039fcSÁlvaro Fernández Rojas	default BMIPS_GENERIC
46d28039fcSÁlvaro Fernández Rojas	help
47d28039fcSÁlvaro Fernández Rojas	   Say Y here to enable the Broadcom BCM6318 GPIO driver.
48d28039fcSÁlvaro Fernández Rojas
499bf34ac5SÁlvaro Fernández Rojasconfig PINCTRL_BCM6328
509bf34ac5SÁlvaro Fernández Rojas	bool "Broadcom BCM6328 GPIO driver"
519bf34ac5SÁlvaro Fernández Rojas	depends on (BMIPS_GENERIC || COMPILE_TEST)
529bf34ac5SÁlvaro Fernández Rojas	select PINCTRL_BCM63XX
539bf34ac5SÁlvaro Fernández Rojas	default BMIPS_GENERIC
549bf34ac5SÁlvaro Fernández Rojas	help
559bf34ac5SÁlvaro Fernández Rojas	   Say Y here to enable the Broadcom BCM6328 GPIO driver.
569bf34ac5SÁlvaro Fernández Rojas
579494b169SÁlvaro Fernández Rojasconfig PINCTRL_BCM6358
589494b169SÁlvaro Fernández Rojas	bool "Broadcom BCM6358 GPIO driver"
599494b169SÁlvaro Fernández Rojas	depends on (BMIPS_GENERIC || COMPILE_TEST)
609494b169SÁlvaro Fernández Rojas	select PINCTRL_BCM63XX
619494b169SÁlvaro Fernández Rojas	default BMIPS_GENERIC
629494b169SÁlvaro Fernández Rojas	help
639494b169SÁlvaro Fernández Rojas	   Say Y here to enable the Broadcom BCM6358 GPIO driver.
649494b169SÁlvaro Fernández Rojas
65705791e2SÁlvaro Fernández Rojasconfig PINCTRL_BCM6362
66705791e2SÁlvaro Fernández Rojas	bool "Broadcom BCM6362 GPIO driver"
67705791e2SÁlvaro Fernández Rojas	depends on (BMIPS_GENERIC || COMPILE_TEST)
68705791e2SÁlvaro Fernández Rojas	select PINCTRL_BCM63XX
69705791e2SÁlvaro Fernández Rojas	default BMIPS_GENERIC
70705791e2SÁlvaro Fernández Rojas	help
71705791e2SÁlvaro Fernández Rojas	   Say Y here to enable the Broadcom BCM6362 GPIO driver.
72705791e2SÁlvaro Fernández Rojas
7350554accSÁlvaro Fernández Rojasconfig PINCTRL_BCM6368
7450554accSÁlvaro Fernández Rojas	bool "Broadcom BCM6368 GPIO driver"
7550554accSÁlvaro Fernández Rojas	depends on (BMIPS_GENERIC || COMPILE_TEST)
7650554accSÁlvaro Fernández Rojas	select PINCTRL_BCM63XX
7750554accSÁlvaro Fernández Rojas	default BMIPS_GENERIC
7850554accSÁlvaro Fernández Rojas	help
7950554accSÁlvaro Fernández Rojas	   Say Y here to enable the Broadcom BCM6368 GPIO driver.
8050554accSÁlvaro Fernández Rojas
81155cca1bSÁlvaro Fernández Rojasconfig PINCTRL_BCM63268
82155cca1bSÁlvaro Fernández Rojas	bool "Broadcom BCM63268 GPIO driver"
83155cca1bSÁlvaro Fernández Rojas	depends on (BMIPS_GENERIC || COMPILE_TEST)
84155cca1bSÁlvaro Fernández Rojas	select PINCTRL_BCM63XX
85155cca1bSÁlvaro Fernández Rojas	default BMIPS_GENERIC
86155cca1bSÁlvaro Fernández Rojas	help
87155cca1bSÁlvaro Fernández Rojas	   Say Y here to enable the Broadcom BCM63268 GPIO driver.
88155cca1bSÁlvaro Fernández Rojas
89616043d5SPramod Kumarconfig PINCTRL_IPROC_GPIO
90616043d5SPramod Kumar	bool "Broadcom iProc GPIO (with PINCONF) driver"
91616043d5SPramod Kumar	depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST)
92b64333ceSRay Jui	select GPIOLIB_IRQCHIP
93b64333ceSRay Jui	select PINCONF
94b64333ceSRay Jui	select GENERIC_PINCONF
95616043d5SPramod Kumar	default ARCH_BCM_IPROC
96b64333ceSRay Jui	help
97616043d5SPramod Kumar	  Say yes here to enable the Broadcom iProc GPIO driver.
98616043d5SPramod Kumar
99616043d5SPramod Kumar	  The Broadcom iProc based SoCs- Cygnus, NS2, NSP and Stingray, use
100616043d5SPramod Kumar	  same GPIO Controller IP hence this driver could be used for all.
101b64333ceSRay Jui
102b64333ceSRay Jui	  The Broadcom Cygnus SoC has 3 GPIO controllers including the ASIU
103b64333ceSRay Jui	  GPIO controller (ASIU), the chipCommonG GPIO controller (CCM), and
104b64333ceSRay Jui	  the always-ON GPIO controller (CRMU/AON). All 3 GPIO controllers are
105b64333ceSRay Jui	  supported by this driver.
106b64333ceSRay Jui
107616043d5SPramod Kumar	  The Broadcom NSP has two GPIO controllers including the ChipcommonA
108616043d5SPramod Kumar	  GPIO, the ChipcommonB GPIO. Later controller is supported by this
109616043d5SPramod Kumar	  driver.
110616043d5SPramod Kumar
111616043d5SPramod Kumar	  The Broadcom NS2 has two GPIO controller including the CRMU GPIO,
112616043d5SPramod Kumar	  the ChipcommonG GPIO. Both controllers are supported by this driver.
113616043d5SPramod Kumar
114616043d5SPramod Kumar	  The Broadcom Stingray GPIO controllers are supported by this driver.
115616043d5SPramod Kumar
116616043d5SPramod Kumar	  All above SoCs GPIO controllers support basic PINCONF functions such
117b64333ceSRay Jui	  as bias pull up, pull down, and drive strength configurations, when
118b64333ceSRay Jui	  these pins are muxed to GPIO.
119b64333ceSRay Jui
120616043d5SPramod Kumar	  It provides the framework where pins from the individual GPIO can be
121616043d5SPramod Kumar	  individually muxed to GPIO function, through interaction with the
122616043d5SPramod Kumar	  SoCs IOMUX controller. This features could be used only on SoCs which
123616043d5SPramod Kumar	  support individual pin muxing.
124b64333ceSRay Jui
125cbd159edSRay Juiconfig PINCTRL_CYGNUS_MUX
126cbd159edSRay Jui	bool "Broadcom Cygnus IOMUX driver"
127cbd159edSRay Jui	depends on (ARCH_BCM_CYGNUS || COMPILE_TEST)
12853056f59SArnd Bergmann	depends on OF
129cbd159edSRay Jui	select PINMUX
130cbd159edSRay Jui	select GENERIC_PINCONF
131cbd159edSRay Jui	default ARCH_BCM_CYGNUS
132cbd159edSRay Jui	help
133cbd159edSRay Jui	  Say yes here to enable the Broadcom Cygnus IOMUX driver.
134cbd159edSRay Jui
135cbd159edSRay Jui	  The Broadcom Cygnus IOMUX driver supports group based IOMUX
136cbd159edSRay Jui	  configuration, with the exception that certain individual pins
13703671057SMasahiro Yamada	  can be overridden to GPIO function
1388bfcbbbcSYendapally Reddy Dhananjaya Reddy
139c12fb177SRafał Miłeckiconfig PINCTRL_NS
140c12fb177SRafał Miłecki	bool "Broadcom Northstar pins driver"
141c12fb177SRafał Miłecki	depends on OF && (ARCH_BCM_5301X || COMPILE_TEST)
142c12fb177SRafał Miłecki	select PINMUX
143c12fb177SRafał Miłecki	select GENERIC_PINCONF
144c12fb177SRafał Miłecki	default ARCH_BCM_5301X
145c12fb177SRafał Miłecki	help
146c12fb177SRafał Miłecki	  Say yes here to enable the Broadcom NS SoC pins driver.
147c12fb177SRafał Miłecki
148c12fb177SRafał Miłecki	  The Broadcom Northstar pins driver supports muxing multi-purpose pins
149c12fb177SRafał Miłecki	  that can be used for various functions (e.g. SPI, I2C, UART) as well
150c12fb177SRafał Miłecki	  as GPIOs.
151c12fb177SRafał Miłecki
1528bfcbbbcSYendapally Reddy Dhananjaya Reddyconfig PINCTRL_NSP_GPIO
1538bfcbbbcSYendapally Reddy Dhananjaya Reddy	bool "Broadcom NSP GPIO (with PINCONF) driver"
1548bfcbbbcSYendapally Reddy Dhananjaya Reddy	depends on OF_GPIO && (ARCH_BCM_NSP || COMPILE_TEST)
1558bfcbbbcSYendapally Reddy Dhananjaya Reddy	select GPIOLIB_IRQCHIP
1568bfcbbbcSYendapally Reddy Dhananjaya Reddy	select PINCONF
1578bfcbbbcSYendapally Reddy Dhananjaya Reddy	select GENERIC_PINCONF
1588bfcbbbcSYendapally Reddy Dhananjaya Reddy	default ARCH_BCM_NSP
1598bfcbbbcSYendapally Reddy Dhananjaya Reddy	help
1608bfcbbbcSYendapally Reddy Dhananjaya Reddy	  Say yes here to enable the Broadcom NSP GPIO driver.
1618bfcbbbcSYendapally Reddy Dhananjaya Reddy
1628bfcbbbcSYendapally Reddy Dhananjaya Reddy	  The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is
1638bfcbbbcSYendapally Reddy Dhananjaya Reddy	  supported by this driver.
1648bfcbbbcSYendapally Reddy Dhananjaya Reddy
1658bfcbbbcSYendapally Reddy Dhananjaya Reddy	  The ChipcommonA GPIO controller support basic PINCONF functions such
1668bfcbbbcSYendapally Reddy Dhananjaya Reddy	  as bias pull up, pull down, and drive strength configurations, when
1678bfcbbbcSYendapally Reddy Dhananjaya Reddy	  these pins are muxed to GPIO.
168b5aa1006SYendapally Reddy Dhananjaya Reddy
169b5aa1006SYendapally Reddy Dhananjaya Reddyconfig PINCTRL_NS2_MUX
170b5aa1006SYendapally Reddy Dhananjaya Reddy	bool "Broadcom Northstar2 pinmux driver"
171b5aa1006SYendapally Reddy Dhananjaya Reddy	depends on OF
172b5aa1006SYendapally Reddy Dhananjaya Reddy	depends on ARCH_BCM_IPROC || COMPILE_TEST
173b5aa1006SYendapally Reddy Dhananjaya Reddy	select PINMUX
174b5aa1006SYendapally Reddy Dhananjaya Reddy	select GENERIC_PINCONF
175b5aa1006SYendapally Reddy Dhananjaya Reddy	default ARM64 && ARCH_BCM_IPROC
176b5aa1006SYendapally Reddy Dhananjaya Reddy	help
177b5aa1006SYendapally Reddy Dhananjaya Reddy	  Say yes here to enable the Broadcom NS2 MUX driver.
178b5aa1006SYendapally Reddy Dhananjaya Reddy
179b5aa1006SYendapally Reddy Dhananjaya Reddy	  The Broadcom Northstar2 IOMUX driver supports group based IOMUX
180b5aa1006SYendapally Reddy Dhananjaya Reddy	  configuration.
181cc4fa83fSYendapally Reddy Dhananjaya Reddy
182cc4fa83fSYendapally Reddy Dhananjaya Reddyconfig PINCTRL_NSP_MUX
183cc4fa83fSYendapally Reddy Dhananjaya Reddy	bool "Broadcom NSP IOMUX driver"
184cc4fa83fSYendapally Reddy Dhananjaya Reddy	depends on (ARCH_BCM_NSP || COMPILE_TEST)
18553056f59SArnd Bergmann	depends on OF
186cc4fa83fSYendapally Reddy Dhananjaya Reddy	select PINMUX
187cc4fa83fSYendapally Reddy Dhananjaya Reddy	select GENERIC_PINCONF
188cc4fa83fSYendapally Reddy Dhananjaya Reddy	default ARCH_BCM_NSP
189cc4fa83fSYendapally Reddy Dhananjaya Reddy	help
190cc4fa83fSYendapally Reddy Dhananjaya Reddy	  Say yes here to enable the Broadcom NSP SOC IOMUX driver.
191cc4fa83fSYendapally Reddy Dhananjaya Reddy
192cc4fa83fSYendapally Reddy Dhananjaya Reddy	  The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX
193cc4fa83fSYendapally Reddy Dhananjaya Reddy	  configuration, with certain individual pins can be overridden
194cc4fa83fSYendapally Reddy Dhananjaya Reddy	  to GPIO function.
195