1# SPDX-License-Identifier: GPL-2.0 2 3menu "DesignWare PCI Core Support" 4 depends on PCI 5 6config PCIE_DW 7 bool 8 9config PCIE_DW_HOST 10 bool 11 depends on PCI_MSI_IRQ_DOMAIN 12 select PCIE_DW 13 14config PCIE_DW_EP 15 bool 16 depends on PCI_ENDPOINT 17 select PCIE_DW 18 19config PCI_DRA7XX 20 bool 21 22config PCI_DRA7XX_HOST 23 bool "TI DRA7xx PCIe controller Host Mode" 24 depends on SOC_DRA7XX || COMPILE_TEST 25 depends on PCI_MSI_IRQ_DOMAIN 26 depends on OF && HAS_IOMEM && TI_PIPE3 27 select PCIE_DW_HOST 28 select PCI_DRA7XX 29 default y if SOC_DRA7XX 30 help 31 Enables support for the PCIe controller in the DRA7xx SoC to work in 32 host mode. There are two instances of PCIe controller in DRA7xx. 33 This controller can work either as EP or RC. In order to enable 34 host-specific features PCI_DRA7XX_HOST must be selected and in order 35 to enable device-specific features PCI_DRA7XX_EP must be selected. 36 This uses the DesignWare core. 37 38config PCI_DRA7XX_EP 39 bool "TI DRA7xx PCIe controller Endpoint Mode" 40 depends on SOC_DRA7XX || COMPILE_TEST 41 depends on PCI_ENDPOINT 42 depends on OF && HAS_IOMEM && TI_PIPE3 43 select PCIE_DW_EP 44 select PCI_DRA7XX 45 help 46 Enables support for the PCIe controller in the DRA7xx SoC to work in 47 endpoint mode. There are two instances of PCIe controller in DRA7xx. 48 This controller can work either as EP or RC. In order to enable 49 host-specific features PCI_DRA7XX_HOST must be selected and in order 50 to enable device-specific features PCI_DRA7XX_EP must be selected. 51 This uses the DesignWare core. 52 53config PCIE_DW_PLAT 54 bool 55 56config PCIE_DW_PLAT_HOST 57 bool "Platform bus based DesignWare PCIe Controller - Host mode" 58 depends on PCI && PCI_MSI_IRQ_DOMAIN 59 select PCIE_DW_HOST 60 select PCIE_DW_PLAT 61 help 62 Enables support for the PCIe controller in the Designware IP to 63 work in host mode. There are two instances of PCIe controller in 64 Designware IP. 65 This controller can work either as EP or RC. In order to enable 66 host-specific features PCIE_DW_PLAT_HOST must be selected and in 67 order to enable device-specific features PCI_DW_PLAT_EP must be 68 selected. 69 70config PCIE_DW_PLAT_EP 71 bool "Platform bus based DesignWare PCIe Controller - Endpoint mode" 72 depends on PCI && PCI_MSI_IRQ_DOMAIN 73 depends on PCI_ENDPOINT 74 select PCIE_DW_EP 75 select PCIE_DW_PLAT 76 help 77 Enables support for the PCIe controller in the Designware IP to 78 work in endpoint mode. There are two instances of PCIe controller 79 in Designware IP. 80 This controller can work either as EP or RC. In order to enable 81 host-specific features PCIE_DW_PLAT_HOST must be selected and in 82 order to enable device-specific features PCI_DW_PLAT_EP must be 83 selected. 84 85config PCI_EXYNOS 86 bool "Samsung Exynos PCIe controller" 87 depends on SOC_EXYNOS5440 || COMPILE_TEST 88 depends on PCI_MSI_IRQ_DOMAIN 89 select PCIE_DW_HOST 90 91config PCI_IMX6 92 bool "Freescale i.MX6/7/8 PCIe controller" 93 depends on ARCH_MXC || COMPILE_TEST 94 depends on PCI_MSI_IRQ_DOMAIN 95 select PCIE_DW_HOST 96 97config PCIE_SPEAR13XX 98 bool "STMicroelectronics SPEAr PCIe controller" 99 depends on ARCH_SPEAR13XX || COMPILE_TEST 100 depends on PCI_MSI_IRQ_DOMAIN 101 select PCIE_DW_HOST 102 help 103 Say Y here if you want PCIe support on SPEAr13XX SoCs. 104 105config PCI_KEYSTONE 106 bool 107 108config PCI_KEYSTONE_HOST 109 bool "PCI Keystone Host Mode" 110 depends on ARCH_KEYSTONE || ARCH_K3 || ((ARM || ARM64) && COMPILE_TEST) 111 depends on PCI_MSI_IRQ_DOMAIN 112 select PCIE_DW_HOST 113 select PCI_KEYSTONE 114 help 115 Enables support for the PCIe controller in the Keystone SoC to 116 work in host mode. The PCI controller on Keystone is based on 117 DesignWare hardware and therefore the driver re-uses the 118 DesignWare core functions to implement the driver. 119 120config PCI_KEYSTONE_EP 121 bool "PCI Keystone Endpoint Mode" 122 depends on ARCH_KEYSTONE || ARCH_K3 || ((ARM || ARM64) && COMPILE_TEST) 123 depends on PCI_ENDPOINT 124 select PCIE_DW_EP 125 select PCI_KEYSTONE 126 help 127 Enables support for the PCIe controller in the Keystone SoC to 128 work in endpoint mode. The PCI controller on Keystone is based 129 on DesignWare hardware and therefore the driver re-uses the 130 DesignWare core functions to implement the driver. 131 132config PCI_LAYERSCAPE 133 bool "Freescale Layerscape PCIe controller - Host mode" 134 depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST) 135 depends on PCI_MSI_IRQ_DOMAIN 136 select MFD_SYSCON 137 select PCIE_DW_HOST 138 help 139 Say Y here if you want to enable PCIe controller support on Layerscape 140 SoCs to work in Host mode. 141 This controller can work either as EP or RC. The RCW[HOST_AGT_PEX] 142 determines which PCIe controller works in EP mode and which PCIe 143 controller works in RC mode. 144 145config PCI_LAYERSCAPE_EP 146 bool "Freescale Layerscape PCIe controller - Endpoint mode" 147 depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST) 148 depends on PCI_ENDPOINT 149 select PCIE_DW_EP 150 help 151 Say Y here if you want to enable PCIe controller support on Layerscape 152 SoCs to work in Endpoint mode. 153 This controller can work either as EP or RC. The RCW[HOST_AGT_PEX] 154 determines which PCIe controller works in EP mode and which PCIe 155 controller works in RC mode. 156 157config PCI_HISI 158 depends on OF && (ARM64 || COMPILE_TEST) 159 bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers" 160 depends on PCI_MSI_IRQ_DOMAIN 161 select PCIE_DW_HOST 162 select PCI_HOST_COMMON 163 help 164 Say Y here if you want PCIe controller support on HiSilicon 165 Hip05 and Hip06 SoCs 166 167config PCIE_QCOM 168 bool "Qualcomm PCIe controller" 169 depends on OF && (ARCH_QCOM || COMPILE_TEST) 170 depends on PCI_MSI_IRQ_DOMAIN 171 select PCIE_DW_HOST 172 help 173 Say Y here to enable PCIe controller support on Qualcomm SoCs. The 174 PCIe controller uses the DesignWare core plus Qualcomm-specific 175 hardware wrappers. 176 177config PCIE_ARMADA_8K 178 bool "Marvell Armada-8K PCIe controller" 179 depends on ARCH_MVEBU || COMPILE_TEST 180 depends on PCI_MSI_IRQ_DOMAIN 181 select PCIE_DW_HOST 182 help 183 Say Y here if you want to enable PCIe controller support on 184 Armada-8K SoCs. The PCIe controller on Armada-8K is based on 185 DesignWare hardware and therefore the driver re-uses the 186 DesignWare core functions to implement the driver. 187 188config PCIE_ARTPEC6 189 bool 190 191config PCIE_ARTPEC6_HOST 192 bool "Axis ARTPEC-6 PCIe controller Host Mode" 193 depends on MACH_ARTPEC6 || COMPILE_TEST 194 depends on PCI_MSI_IRQ_DOMAIN 195 select PCIE_DW_HOST 196 select PCIE_ARTPEC6 197 help 198 Enables support for the PCIe controller in the ARTPEC-6 SoC to work in 199 host mode. This uses the DesignWare core. 200 201config PCIE_ARTPEC6_EP 202 bool "Axis ARTPEC-6 PCIe controller Endpoint Mode" 203 depends on MACH_ARTPEC6 || COMPILE_TEST 204 depends on PCI_ENDPOINT 205 select PCIE_DW_EP 206 select PCIE_ARTPEC6 207 help 208 Enables support for the PCIe controller in the ARTPEC-6 SoC to work in 209 endpoint mode. This uses the DesignWare core. 210 211config PCIE_INTEL_GW 212 bool "Intel Gateway PCIe host controller support" 213 depends on OF && (X86 || COMPILE_TEST) 214 depends on PCI_MSI_IRQ_DOMAIN 215 select PCIE_DW_HOST 216 help 217 Say 'Y' here to enable PCIe Host controller support on Intel 218 Gateway SoCs. 219 The PCIe controller uses the DesignWare core plus Intel-specific 220 hardware wrappers. 221 222config PCIE_KIRIN 223 depends on OF && (ARM64 || COMPILE_TEST) 224 bool "HiSilicon Kirin series SoCs PCIe controllers" 225 depends on PCI_MSI_IRQ_DOMAIN 226 select PCIE_DW_HOST 227 help 228 Say Y here if you want PCIe controller support 229 on HiSilicon Kirin series SoCs. 230 231config PCIE_HISI_STB 232 bool "HiSilicon STB SoCs PCIe controllers" 233 depends on ARCH_HISI || COMPILE_TEST 234 depends on PCI_MSI_IRQ_DOMAIN 235 select PCIE_DW_HOST 236 help 237 Say Y here if you want PCIe controller support on HiSilicon STB SoCs 238 239config PCI_MESON 240 bool "MESON PCIe controller" 241 depends on PCI_MSI_IRQ_DOMAIN 242 select PCIE_DW_HOST 243 help 244 Say Y here if you want to enable PCI controller support on Amlogic 245 SoCs. The PCI controller on Amlogic is based on DesignWare hardware 246 and therefore the driver re-uses the DesignWare core functions to 247 implement the driver. 248 249config PCIE_TEGRA194 250 tristate 251 252config PCIE_TEGRA194_HOST 253 tristate "NVIDIA Tegra194 (and later) PCIe controller - Host Mode" 254 depends on ARCH_TEGRA_194_SOC || COMPILE_TEST 255 depends on PCI_MSI_IRQ_DOMAIN 256 select PCIE_DW_HOST 257 select PHY_TEGRA194_P2U 258 select PCIE_TEGRA194 259 help 260 Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to 261 work in host mode. There are two instances of PCIe controllers in 262 Tegra194. This controller can work either as EP or RC. In order to 263 enable host-specific features PCIE_TEGRA194_HOST must be selected and 264 in order to enable device-specific features PCIE_TEGRA194_EP must be 265 selected. This uses the DesignWare core. 266 267config PCIE_TEGRA194_EP 268 tristate "NVIDIA Tegra194 (and later) PCIe controller - Endpoint Mode" 269 depends on ARCH_TEGRA_194_SOC || COMPILE_TEST 270 depends on PCI_ENDPOINT 271 select PCIE_DW_EP 272 select PHY_TEGRA194_P2U 273 select PCIE_TEGRA194 274 help 275 Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to 276 work in host mode. There are two instances of PCIe controllers in 277 Tegra194. This controller can work either as EP or RC. In order to 278 enable host-specific features PCIE_TEGRA194_HOST must be selected and 279 in order to enable device-specific features PCIE_TEGRA194_EP must be 280 selected. This uses the DesignWare core. 281 282config PCIE_UNIPHIER 283 bool "Socionext UniPhier PCIe host controllers" 284 depends on ARCH_UNIPHIER || COMPILE_TEST 285 depends on OF && HAS_IOMEM 286 depends on PCI_MSI_IRQ_DOMAIN 287 select PCIE_DW_HOST 288 help 289 Say Y here if you want PCIe host controller support on UniPhier SoCs. 290 This driver supports LD20 and PXs3 SoCs. 291 292config PCIE_UNIPHIER_EP 293 bool "Socionext UniPhier PCIe endpoint controllers" 294 depends on ARCH_UNIPHIER || COMPILE_TEST 295 depends on OF && HAS_IOMEM 296 depends on PCI_ENDPOINT 297 select PCIE_DW_EP 298 help 299 Say Y here if you want PCIe endpoint controller support on 300 UniPhier SoCs. This driver supports Pro5 SoC. 301 302config PCIE_AL 303 bool "Amazon Annapurna Labs PCIe controller" 304 depends on OF && (ARM64 || COMPILE_TEST) 305 depends on PCI_MSI_IRQ_DOMAIN 306 select PCIE_DW_HOST 307 help 308 Say Y here to enable support of the Amazon's Annapurna Labs PCIe 309 controller IP on Amazon SoCs. The PCIe controller uses the DesignWare 310 core plus Annapurna Labs proprietary hardware wrappers. This is 311 required only for DT-based platforms. ACPI platforms with the 312 Annapurna Labs PCIe controller don't need to enable this. 313 314endmenu 315