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 |
Doug Berger | ee11f86 | 2019-05-09 13:59:54 -0700 | [diff] [blame] | 21 | bool "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 |
| 34 | select GENERIC_PINCONF |
| 35 | select GPIO_REGMAP |
| 36 | select PINCONF |
| 37 | select PINMUX |
| 38 | |
Álvaro Fernández Rojas | 9bf34ac | 2021-03-24 09:19:08 +0100 | [diff] [blame] | 39 | config PINCTRL_BCM6328 |
| 40 | bool "Broadcom BCM6328 GPIO driver" |
| 41 | depends on (BMIPS_GENERIC || COMPILE_TEST) |
| 42 | select PINCTRL_BCM63XX |
| 43 | default BMIPS_GENERIC |
| 44 | help |
| 45 | Say Y here to enable the Broadcom BCM6328 GPIO driver. |
| 46 | |
Álvaro Fernández Rojas | 9494b16 | 2021-03-24 09:19:11 +0100 | [diff] [blame] | 47 | config PINCTRL_BCM6358 |
| 48 | bool "Broadcom BCM6358 GPIO driver" |
| 49 | depends on (BMIPS_GENERIC || COMPILE_TEST) |
| 50 | select PINCTRL_BCM63XX |
| 51 | default BMIPS_GENERIC |
| 52 | help |
| 53 | Say Y here to enable the Broadcom BCM6358 GPIO driver. |
| 54 | |
Álvaro Fernández Rojas | 705791e | 2021-03-24 09:19:14 +0100 | [diff] [blame^] | 55 | config PINCTRL_BCM6362 |
| 56 | bool "Broadcom BCM6362 GPIO driver" |
| 57 | depends on (BMIPS_GENERIC || COMPILE_TEST) |
| 58 | select PINCTRL_BCM63XX |
| 59 | default BMIPS_GENERIC |
| 60 | help |
| 61 | Say Y here to enable the Broadcom BCM6362 GPIO driver. |
| 62 | |
Pramod Kumar | 616043d | 2015-11-19 09:22:19 +0530 | [diff] [blame] | 63 | config PINCTRL_IPROC_GPIO |
| 64 | bool "Broadcom iProc GPIO (with PINCONF) driver" |
| 65 | depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST) |
Ray Jui | b64333c | 2015-03-09 13:45:00 -0700 | [diff] [blame] | 66 | select GPIOLIB_IRQCHIP |
| 67 | select PINCONF |
| 68 | select GENERIC_PINCONF |
Pramod Kumar | 616043d | 2015-11-19 09:22:19 +0530 | [diff] [blame] | 69 | default ARCH_BCM_IPROC |
Ray Jui | b64333c | 2015-03-09 13:45:00 -0700 | [diff] [blame] | 70 | help |
Pramod Kumar | 616043d | 2015-11-19 09:22:19 +0530 | [diff] [blame] | 71 | Say yes here to enable the Broadcom iProc GPIO driver. |
| 72 | |
| 73 | The Broadcom iProc based SoCs- Cygnus, NS2, NSP and Stingray, use |
| 74 | same GPIO Controller IP hence this driver could be used for all. |
Ray Jui | b64333c | 2015-03-09 13:45:00 -0700 | [diff] [blame] | 75 | |
| 76 | The Broadcom Cygnus SoC has 3 GPIO controllers including the ASIU |
| 77 | GPIO controller (ASIU), the chipCommonG GPIO controller (CCM), and |
| 78 | the always-ON GPIO controller (CRMU/AON). All 3 GPIO controllers are |
| 79 | supported by this driver. |
| 80 | |
Pramod Kumar | 616043d | 2015-11-19 09:22:19 +0530 | [diff] [blame] | 81 | The Broadcom NSP has two GPIO controllers including the ChipcommonA |
| 82 | GPIO, the ChipcommonB GPIO. Later controller is supported by this |
| 83 | driver. |
| 84 | |
| 85 | The Broadcom NS2 has two GPIO controller including the CRMU GPIO, |
| 86 | the ChipcommonG GPIO. Both controllers are supported by this driver. |
| 87 | |
| 88 | The Broadcom Stingray GPIO controllers are supported by this driver. |
| 89 | |
| 90 | All above SoCs GPIO controllers support basic PINCONF functions such |
Ray Jui | b64333c | 2015-03-09 13:45:00 -0700 | [diff] [blame] | 91 | as bias pull up, pull down, and drive strength configurations, when |
| 92 | these pins are muxed to GPIO. |
| 93 | |
Pramod Kumar | 616043d | 2015-11-19 09:22:19 +0530 | [diff] [blame] | 94 | It provides the framework where pins from the individual GPIO can be |
| 95 | individually muxed to GPIO function, through interaction with the |
| 96 | SoCs IOMUX controller. This features could be used only on SoCs which |
| 97 | support individual pin muxing. |
Ray Jui | b64333c | 2015-03-09 13:45:00 -0700 | [diff] [blame] | 98 | |
Ray Jui | cbd159e | 2015-03-04 16:35:51 -0800 | [diff] [blame] | 99 | config PINCTRL_CYGNUS_MUX |
| 100 | bool "Broadcom Cygnus IOMUX driver" |
| 101 | depends on (ARCH_BCM_CYGNUS || COMPILE_TEST) |
Arnd Bergmann | 53056f5 | 2016-07-15 22:29:54 +0200 | [diff] [blame] | 102 | depends on OF |
Ray Jui | cbd159e | 2015-03-04 16:35:51 -0800 | [diff] [blame] | 103 | select PINMUX |
| 104 | select GENERIC_PINCONF |
| 105 | default ARCH_BCM_CYGNUS |
| 106 | help |
| 107 | Say yes here to enable the Broadcom Cygnus IOMUX driver. |
| 108 | |
| 109 | The Broadcom Cygnus IOMUX driver supports group based IOMUX |
| 110 | configuration, with the exception that certain individual pins |
Masahiro Yamada | 0367105 | 2017-02-27 14:29:28 -0800 | [diff] [blame] | 111 | can be overridden to GPIO function |
Yendapally Reddy Dhananjaya Reddy | 8bfcbbb | 2015-12-04 12:11:42 -0500 | [diff] [blame] | 112 | |
Rafał Miłecki | c12fb17 | 2018-09-26 21:31:03 +0200 | [diff] [blame] | 113 | config PINCTRL_NS |
| 114 | bool "Broadcom Northstar pins driver" |
| 115 | depends on OF && (ARCH_BCM_5301X || COMPILE_TEST) |
| 116 | select PINMUX |
| 117 | select GENERIC_PINCONF |
| 118 | default ARCH_BCM_5301X |
| 119 | help |
| 120 | Say yes here to enable the Broadcom NS SoC pins driver. |
| 121 | |
| 122 | The Broadcom Northstar pins driver supports muxing multi-purpose pins |
| 123 | that can be used for various functions (e.g. SPI, I2C, UART) as well |
| 124 | as GPIOs. |
| 125 | |
Yendapally Reddy Dhananjaya Reddy | 8bfcbbb | 2015-12-04 12:11:42 -0500 | [diff] [blame] | 126 | config PINCTRL_NSP_GPIO |
| 127 | bool "Broadcom NSP GPIO (with PINCONF) driver" |
| 128 | depends on OF_GPIO && (ARCH_BCM_NSP || COMPILE_TEST) |
| 129 | select GPIOLIB_IRQCHIP |
| 130 | select PINCONF |
| 131 | select GENERIC_PINCONF |
| 132 | default ARCH_BCM_NSP |
| 133 | help |
| 134 | Say yes here to enable the Broadcom NSP GPIO driver. |
| 135 | |
| 136 | The Broadcom Northstar Plus SoC ChipcommonA GPIO controller is |
| 137 | supported by this driver. |
| 138 | |
| 139 | The ChipcommonA GPIO controller support basic PINCONF functions such |
| 140 | as bias pull up, pull down, and drive strength configurations, when |
| 141 | these pins are muxed to GPIO. |
Yendapally Reddy Dhananjaya Reddy | b5aa100 | 2016-04-29 08:51:38 -0400 | [diff] [blame] | 142 | |
| 143 | config PINCTRL_NS2_MUX |
| 144 | bool "Broadcom Northstar2 pinmux driver" |
| 145 | depends on OF |
| 146 | depends on ARCH_BCM_IPROC || COMPILE_TEST |
| 147 | select PINMUX |
| 148 | select GENERIC_PINCONF |
| 149 | default ARM64 && ARCH_BCM_IPROC |
| 150 | help |
| 151 | Say yes here to enable the Broadcom NS2 MUX driver. |
| 152 | |
| 153 | The Broadcom Northstar2 IOMUX driver supports group based IOMUX |
| 154 | configuration. |
Yendapally Reddy Dhananjaya Reddy | cc4fa83 | 2016-06-23 13:35:07 -0400 | [diff] [blame] | 155 | |
| 156 | config PINCTRL_NSP_MUX |
| 157 | bool "Broadcom NSP IOMUX driver" |
| 158 | depends on (ARCH_BCM_NSP || COMPILE_TEST) |
Arnd Bergmann | 53056f5 | 2016-07-15 22:29:54 +0200 | [diff] [blame] | 159 | depends on OF |
Yendapally Reddy Dhananjaya Reddy | cc4fa83 | 2016-06-23 13:35:07 -0400 | [diff] [blame] | 160 | select PINMUX |
| 161 | select GENERIC_PINCONF |
| 162 | default ARCH_BCM_NSP |
| 163 | help |
| 164 | Say yes here to enable the Broadcom NSP SOC IOMUX driver. |
| 165 | |
| 166 | The Broadcom Northstar Plus IOMUX driver supports pin based IOMUX |
| 167 | configuration, with certain individual pins can be overridden |
| 168 | to GPIO function. |