Thomas Gleixner | ec8f24b | 2019-05-19 13:07:45 +0100 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-2.0-only |
Ray Jui | b17f2f9 | 2015-03-04 16:35:49 -0800 | [diff] [blame] | 2 | # |
| 3 | # Broadcom pinctrl drivers |
| 4 | # |
| 5 | |
| 6 | config 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 |
Florian Fainelli | 652da824 | 2015-12-01 17:41:30 -0800 | [diff] [blame] | 13 | default ARCH_BCM_MOBILE |
Ray Jui | b17f2f9 | 2015-03-04 16:35:49 -0800 | [diff] [blame] | 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 | |
| 20 | config PINCTRL_BCM2835 |
Florian Fainelli | 4434f4c5 | 2021-10-19 15:11:21 -0700 | [diff] [blame] | 21 | tristate "Broadcom BCM2835 GPIO (with PINCONF) driver" |
YueHaibing | 138f79d | 2019-05-28 17:13:04 +0800 | [diff] [blame] | 22 | depends on OF && (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST) |
Ray Jui | b17f2f9 | 2015-03-04 16:35:49 -0800 | [diff] [blame] | 23 | select PINMUX |
| 24 | select PINCONF |
Matheus Castello | 0de7049 | 2018-04-30 20:42:13 -0400 | [diff] [blame] | 25 | select GENERIC_PINCONF |
Necip Fazil Yildiran | 513034d | 2020-09-14 17:40:26 +0300 | [diff] [blame] | 26 | select GPIOLIB |
Linus Walleij | 85ae9e5 | 2016-11-14 18:48:19 +0100 | [diff] [blame] | 27 | select GPIOLIB_IRQCHIP |
Doug Berger | ee11f86 | 2019-05-09 13:59:54 -0700 | [diff] [blame] | 28 | default ARCH_BCM2835 || ARCH_BRCMSTB |
| 29 | help |
| 30 | Say Y here to enable the Broadcom BCM2835 GPIO driver. |
Ray Jui | cbd159e | 2015-03-04 16:35:51 -0800 | [diff] [blame] | 31 | |
Álvaro Fernández Rojas | 132f950 | 2021-03-24 09:19:05 +0100 | [diff] [blame] | 32 | config PINCTRL_BCM63XX |
| 33 | bool |
Álvaro Fernández Rojas | 132f950 | 2021-03-24 09:19:05 +0100 | [diff] [blame] | 34 | select PINMUX |
Linus Walleij | 26ea7ac | 2021-03-31 14:45:05 +0200 | [diff] [blame] | 35 | select PINCONF |
| 36 | select GENERIC_PINCONF |
| 37 | select GPIOLIB |
Julian Braha | 3a52869 | 2022-01-17 01:25:57 -0500 | [diff] [blame] | 38 | select REGMAP |
Linus Walleij | 26ea7ac | 2021-03-31 14:45:05 +0200 | [diff] [blame] | 39 | select GPIO_REGMAP |
Álvaro Fernández Rojas | 132f950 | 2021-03-24 09:19:05 +0100 | [diff] [blame] | 40 | |
Álvaro Fernández Rojas | d28039f | 2021-03-24 09:19:23 +0100 | [diff] [blame] | 41 | config PINCTRL_BCM6318 |
| 42 | bool "Broadcom BCM6318 GPIO driver" |
| 43 | depends on (BMIPS_GENERIC || COMPILE_TEST) |
Randy Dunlap | da35b19 | 2021-04-01 10:47:03 -0700 | [diff] [blame] | 44 | depends on OF |
Álvaro Fernández Rojas | d28039f | 2021-03-24 09:19:23 +0100 | [diff] [blame] | 45 | select PINCTRL_BCM63XX |
| 46 | default BMIPS_GENERIC |
| 47 | help |
| 48 | Say Y here to enable the Broadcom BCM6318 GPIO driver. |
| 49 | |
Álvaro Fernández Rojas | 9bf34ac | 2021-03-24 09:19:08 +0100 | [diff] [blame] | 50 | config PINCTRL_BCM6328 |
| 51 | bool "Broadcom BCM6328 GPIO driver" |
| 52 | depends on (BMIPS_GENERIC || COMPILE_TEST) |
Randy Dunlap | da35b19 | 2021-04-01 10:47:03 -0700 | [diff] [blame] | 53 | depends on OF |
Álvaro Fernández Rojas | 9bf34ac | 2021-03-24 09:19:08 +0100 | [diff] [blame] | 54 | select PINCTRL_BCM63XX |
| 55 | default BMIPS_GENERIC |
| 56 | help |
| 57 | Say Y here to enable the Broadcom BCM6328 GPIO driver. |
| 58 | |
Álvaro Fernández Rojas | 9494b16 | 2021-03-24 09:19:11 +0100 | [diff] [blame] | 59 | config PINCTRL_BCM6358 |
| 60 | bool "Broadcom BCM6358 GPIO driver" |
| 61 | depends on (BMIPS_GENERIC || COMPILE_TEST) |
Randy Dunlap | da35b19 | 2021-04-01 10:47:03 -0700 | [diff] [blame] | 62 | depends on OF |
Álvaro Fernández Rojas | 9494b16 | 2021-03-24 09:19:11 +0100 | [diff] [blame] | 63 | select PINCTRL_BCM63XX |
| 64 | default BMIPS_GENERIC |
| 65 | help |
| 66 | Say Y here to enable the Broadcom BCM6358 GPIO driver. |
| 67 | |
Álvaro Fernández Rojas | 705791e | 2021-03-24 09:19:14 +0100 | [diff] [blame] | 68 | config PINCTRL_BCM6362 |
| 69 | bool "Broadcom BCM6362 GPIO driver" |
| 70 | depends on (BMIPS_GENERIC || COMPILE_TEST) |
Randy Dunlap | da35b19 | 2021-04-01 10:47:03 -0700 | [diff] [blame] | 71 | depends on OF |
Álvaro Fernández Rojas | 705791e | 2021-03-24 09:19:14 +0100 | [diff] [blame] | 72 | select PINCTRL_BCM63XX |
| 73 | default BMIPS_GENERIC |
| 74 | help |
| 75 | Say Y here to enable the Broadcom BCM6362 GPIO driver. |
| 76 | |
Álvaro Fernández Rojas | 50554ac | 2021-03-24 09:19:17 +0100 | [diff] [blame] | 77 | config PINCTRL_BCM6368 |
| 78 | bool "Broadcom BCM6368 GPIO driver" |
| 79 | depends on (BMIPS_GENERIC || COMPILE_TEST) |
Randy Dunlap | da35b19 | 2021-04-01 10:47:03 -0700 | [diff] [blame] | 80 | depends on OF |
Álvaro Fernández Rojas | 50554ac | 2021-03-24 09:19:17 +0100 | [diff] [blame] | 81 | select PINCTRL_BCM63XX |
| 82 | default BMIPS_GENERIC |
| 83 | help |
| 84 | Say Y here to enable the Broadcom BCM6368 GPIO driver. |
| 85 | |
Álvaro Fernández Rojas | 155cca1 | 2021-03-24 09:19:20 +0100 | [diff] [blame] | 86 | config PINCTRL_BCM63268 |
| 87 | bool "Broadcom BCM63268 GPIO driver" |
| 88 | depends on (BMIPS_GENERIC || COMPILE_TEST) |
Randy Dunlap | da35b19 | 2021-04-01 10:47:03 -0700 | [diff] [blame] | 89 | depends on OF |
Álvaro Fernández Rojas | 155cca1 | 2021-03-24 09:19:20 +0100 | [diff] [blame] | 90 | select PINCTRL_BCM63XX |
| 91 | default BMIPS_GENERIC |
| 92 | help |
| 93 | Say Y here to enable the Broadcom BCM63268 GPIO driver. |
| 94 | |
Pramod Kumar | 616043d | 2015-11-19 09:22:19 +0530 | [diff] [blame] | 95 | config PINCTRL_IPROC_GPIO |
| 96 | bool "Broadcom iProc GPIO (with PINCONF) driver" |
| 97 | depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST) |
Ray Jui | b64333c | 2015-03-09 13:45:00 -0700 | [diff] [blame] | 98 | select GPIOLIB_IRQCHIP |
| 99 | select PINCONF |
| 100 | select GENERIC_PINCONF |
Pramod Kumar | 616043d | 2015-11-19 09:22:19 +0530 | [diff] [blame] | 101 | default ARCH_BCM_IPROC |
Ray Jui | b64333c | 2015-03-09 13:45:00 -0700 | [diff] [blame] | 102 | help |
Pramod Kumar | 616043d | 2015-11-19 09:22:19 +0530 | [diff] [blame] | 103 | Say yes here to enable the Broadcom iProc GPIO driver. |
| 104 | |
| 105 | The Broadcom iProc based SoCs- Cygnus, NS2, NSP and Stingray, use |
| 106 | same GPIO Controller IP hence this driver could be used for all. |
Ray Jui | b64333c | 2015-03-09 13:45:00 -0700 | [diff] [blame] | 107 | |
| 108 | The Broadcom Cygnus SoC has 3 GPIO controllers including the ASIU |
| 109 | GPIO controller (ASIU), the chipCommonG GPIO controller (CCM), and |
| 110 | the always-ON GPIO controller (CRMU/AON). All 3 GPIO controllers are |
| 111 | supported by this driver. |
| 112 | |
Pramod Kumar | 616043d | 2015-11-19 09:22:19 +0530 | [diff] [blame] | 113 | The Broadcom NSP has two GPIO controllers including the ChipcommonA |
| 114 | GPIO, the ChipcommonB GPIO. Later controller is supported by this |
| 115 | driver. |
| 116 | |
| 117 | The Broadcom NS2 has two GPIO controller including the CRMU GPIO, |
| 118 | the ChipcommonG GPIO. Both controllers are supported by this driver. |
| 119 | |
| 120 | The Broadcom Stingray GPIO controllers are supported by this driver. |
| 121 | |
| 122 | All above SoCs GPIO controllers support basic PINCONF functions such |
Ray Jui | b64333c | 2015-03-09 13:45:00 -0700 | [diff] [blame] | 123 | as bias pull up, pull down, and drive strength configurations, when |
| 124 | these pins are muxed to GPIO. |
| 125 | |
Pramod Kumar | 616043d | 2015-11-19 09:22:19 +0530 | [diff] [blame] | 126 | It provides the framework where pins from the individual GPIO can be |
| 127 | individually muxed to GPIO function, through interaction with the |
| 128 | SoCs IOMUX controller. This features could be used only on SoCs which |
| 129 | support individual pin muxing. |
Ray Jui | b64333c | 2015-03-09 13:45:00 -0700 | [diff] [blame] | 130 | |
Ray Jui | cbd159e | 2015-03-04 16:35:51 -0800 | [diff] [blame] | 131 | config PINCTRL_CYGNUS_MUX |
| 132 | bool "Broadcom Cygnus IOMUX driver" |
| 133 | depends on (ARCH_BCM_CYGNUS || COMPILE_TEST) |
Arnd Bergmann | 53056f5 | 2016-07-15 22:29:54 +0200 | [diff] [blame] | 134 | depends on OF |
Ray Jui | cbd159e | 2015-03-04 16:35:51 -0800 | [diff] [blame] | 135 | select PINMUX |
| 136 | select GENERIC_PINCONF |
| 137 | default ARCH_BCM_CYGNUS |
| 138 | help |
| 139 | Say yes here to enable the Broadcom Cygnus IOMUX driver. |
| 140 | |
| 141 | The Broadcom Cygnus IOMUX driver supports group based IOMUX |
| 142 | configuration, with the exception that certain individual pins |
Masahiro Yamada | 0367105 | 2017-02-27 14:29:28 -0800 | [diff] [blame] | 143 | can be overridden to GPIO function |
Yendapally Reddy Dhananjaya Reddy | 8bfcbbb | 2015-12-04 12:11:42 -0500 | [diff] [blame] | 144 | |
Rafał Miłecki | c12fb17 | 2018-09-26 21:31:03 +0200 | [diff] [blame] | 145 | config PINCTRL_NS |
| 146 | bool "Broadcom Northstar pins driver" |
| 147 | depends on OF && (ARCH_BCM_5301X || COMPILE_TEST) |
| 148 | select PINMUX |
| 149 | select GENERIC_PINCONF |
Rafał Miłecki | 4b1643c | 2021-12-22 07:43:44 +0100 | [diff] [blame] | 150 | select GENERIC_PINCTRL_GROUPS |
| 151 | select GENERIC_PINMUX_FUNCTIONS |
Rafał Miłecki | c12fb17 | 2018-09-26 21:31:03 +0200 | [diff] [blame] | 152 | default ARCH_BCM_5301X |
| 153 | help |
| 154 | Say yes here to enable the Broadcom NS SoC pins driver. |
| 155 | |
| 156 | The Broadcom Northstar pins driver supports muxing multi-purpose pins |
| 157 | that can be used for various functions (e.g. SPI, I2C, UART) as well |
| 158 | as GPIOs. |
| 159 | |
Yendapally Reddy Dhananjaya Reddy | 8bfcbbb | 2015-12-04 12:11:42 -0500 | [diff] [blame] | 160 | config PINCTRL_NSP_GPIO |
| 161 | bool "Broadcom NSP GPIO (with PINCONF) driver" |
| 162 | depends on OF_GPIO && (ARCH_BCM_NSP || COMPILE_TEST) |
| 163 | select GPIOLIB_IRQCHIP |
| 164 | select PINCONF |
| 165 | select GENERIC_PINCONF |
| 166 | default ARCH_BCM_NSP |
| 167 | help |
| 168 | Say yes here to enable the Broadcom NSP GPIO driver. |
| 169 | |
| 170 | The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is |
| 171 | supported by this driver. |
| 172 | |
| 173 | The ChipcommonA GPIO controller support basic PINCONF functions such |
| 174 | as bias pull up, pull down, and drive strength configurations, when |
| 175 | these pins are muxed to GPIO. |
Yendapally Reddy Dhananjaya Reddy | b5aa100 | 2016-04-29 08:51:38 -0400 | [diff] [blame] | 176 | |
| 177 | config PINCTRL_NS2_MUX |
| 178 | bool "Broadcom Northstar2 pinmux driver" |
| 179 | depends on OF |
| 180 | depends on ARCH_BCM_IPROC || COMPILE_TEST |
| 181 | select PINMUX |
| 182 | select GENERIC_PINCONF |
| 183 | default ARM64 && ARCH_BCM_IPROC |
| 184 | help |
| 185 | Say yes here to enable the Broadcom NS2 MUX driver. |
| 186 | |
| 187 | The Broadcom Northstar2 IOMUX driver supports group based IOMUX |
| 188 | configuration. |
Yendapally Reddy Dhananjaya Reddy | cc4fa83 | 2016-06-23 13:35:07 -0400 | [diff] [blame] | 189 | |
| 190 | config PINCTRL_NSP_MUX |
| 191 | bool "Broadcom NSP IOMUX driver" |
| 192 | depends on (ARCH_BCM_NSP || COMPILE_TEST) |
Arnd Bergmann | 53056f5 | 2016-07-15 22:29:54 +0200 | [diff] [blame] | 193 | depends on OF |
Yendapally Reddy Dhananjaya Reddy | cc4fa83 | 2016-06-23 13:35:07 -0400 | [diff] [blame] | 194 | select PINMUX |
| 195 | select GENERIC_PINCONF |
| 196 | default ARCH_BCM_NSP |
| 197 | help |
| 198 | Say yes here to enable the Broadcom NSP SOC IOMUX driver. |
| 199 | |
| 200 | The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX |
| 201 | configuration, with certain individual pins can be overridden |
| 202 | to GPIO function. |