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