463 lines · plain
1# SPDX-License-Identifier: GPL-2.02 3menu "DesignWare-based PCIe controllers"4 depends on PCI5 6config PCIE_DW7 bool8 9config PCIE_DW_HOST10 bool11 select PCIE_DW12 13config PCIE_DW_EP14 bool15 select PCIE_DW16 17config PCIE_AL18 bool "Amazon Annapurna Labs PCIe controller"19 depends on OF && (ARM64 || COMPILE_TEST)20 depends on PCI_MSI21 select PCIE_DW_HOST22 select PCI_ECAM23 help24 Say Y here to enable support of the Amazon's Annapurna Labs PCIe25 controller IP on Amazon SoCs. The PCIe controller uses the DesignWare26 core plus Annapurna Labs proprietary hardware wrappers. This is27 required only for DT-based platforms. ACPI platforms with the28 Annapurna Labs PCIe controller don't need to enable this.29 30config PCI_MESON31 tristate "Amlogic Meson PCIe controller"32 default m if ARCH_MESON33 depends on PCI_MSI34 select PCIE_DW_HOST35 help36 Say Y here if you want to enable PCI controller support on Amlogic37 SoCs. The PCI controller on Amlogic is based on DesignWare hardware38 and therefore the driver re-uses the DesignWare core functions to39 implement the driver.40 41config PCIE_ARTPEC642 bool43 44config PCIE_ARTPEC6_HOST45 bool "Axis ARTPEC-6 PCIe controller (host mode)"46 depends on MACH_ARTPEC6 || COMPILE_TEST47 depends on PCI_MSI48 select PCIE_DW_HOST49 select PCIE_ARTPEC650 help51 Enables support for the PCIe controller in the ARTPEC-6 SoC to work in52 host mode. This uses the DesignWare core.53 54config PCIE_ARTPEC6_EP55 bool "Axis ARTPEC-6 PCIe controller (endpoint mode)"56 depends on MACH_ARTPEC6 || COMPILE_TEST57 depends on PCI_ENDPOINT58 select PCIE_DW_EP59 select PCIE_ARTPEC660 help61 Enables support for the PCIe controller in the ARTPEC-6 SoC to work in62 endpoint mode. This uses the DesignWare core.63 64config PCIE_BT165 tristate "Baikal-T1 PCIe controller"66 depends on MIPS_BAIKAL_T1 || COMPILE_TEST67 depends on PCI_MSI68 select PCIE_DW_HOST69 help70 Enables support for the PCIe controller in the Baikal-T1 SoC to work71 in host mode. It's based on the Synopsys DWC PCIe v4.60a IP-core.72 73config PCI_IMX674 bool75 76config PCI_IMX6_HOST77 bool "Freescale i.MX6/7/8 PCIe controller (host mode)"78 depends on ARCH_MXC || COMPILE_TEST79 depends on PCI_MSI80 select PCIE_DW_HOST81 select PCI_IMX682 help83 Enables support for the PCIe controller in the i.MX SoCs to84 work in Root Complex mode. The PCI controller on i.MX is based85 on DesignWare hardware and therefore the driver re-uses the86 DesignWare core functions to implement the driver.87 88config PCI_IMX6_EP89 bool "Freescale i.MX6/7/8 PCIe controller (endpoint mode)"90 depends on ARCH_MXC || COMPILE_TEST91 depends on PCI_ENDPOINT92 select PCIE_DW_EP93 select PCI_IMX694 help95 Enables support for the PCIe controller in the i.MX SoCs to96 work in endpoint mode. The PCI controller on i.MX is based97 on DesignWare hardware and therefore the driver re-uses the98 DesignWare core functions to implement the driver.99 100config PCI_LAYERSCAPE101 bool "Freescale Layerscape PCIe controller (host mode)"102 depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)103 depends on PCI_MSI104 select PCIE_DW_HOST105 select MFD_SYSCON106 help107 Say Y here if you want to enable PCIe controller support on Layerscape108 SoCs to work in Host mode.109 This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]110 determines which PCIe controller works in EP mode and which PCIe111 controller works in RC mode.112 113config PCI_LAYERSCAPE_EP114 bool "Freescale Layerscape PCIe controller (endpoint mode)"115 depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)116 depends on PCI_ENDPOINT117 select PCIE_DW_EP118 help119 Say Y here if you want to enable PCIe controller support on Layerscape120 SoCs to work in Endpoint mode.121 This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]122 determines which PCIe controller works in EP mode and which PCIe123 controller works in RC mode.124 125config PCI_HISI126 depends on OF && (ARM64 || COMPILE_TEST)127 bool "HiSilicon Hip05 and Hip06 SoCs PCIe controller"128 depends on PCI_MSI129 select PCIE_DW_HOST130 select PCI_HOST_COMMON131 help132 Say Y here if you want PCIe controller support on HiSilicon133 Hip05 and Hip06 SoCs134 135config PCIE_KIRIN136 depends on OF && (ARM64 || COMPILE_TEST)137 tristate "HiSilicon Kirin PCIe controller"138 depends on PCI_MSI139 select PCIE_DW_HOST140 select REGMAP_MMIO141 help142 Say Y here if you want PCIe controller support143 on HiSilicon Kirin series SoCs.144 145config PCIE_HISI_STB146 bool "HiSilicon STB PCIe controller"147 depends on ARCH_HISI || COMPILE_TEST148 depends on PCI_MSI149 select PCIE_DW_HOST150 help151 Say Y here if you want PCIe controller support on HiSilicon STB SoCs152 153config PCIE_INTEL_GW154 bool "Intel Gateway PCIe controller "155 depends on OF && (X86 || COMPILE_TEST)156 depends on PCI_MSI157 select PCIE_DW_HOST158 help159 Say 'Y' here to enable PCIe Host controller support on Intel160 Gateway SoCs.161 The PCIe controller uses the DesignWare core plus Intel-specific162 hardware wrappers.163 164config PCIE_KEEMBAY165 bool166 167config PCIE_KEEMBAY_HOST168 bool "Intel Keem Bay PCIe controller (host mode)"169 depends on ARCH_KEEMBAY || COMPILE_TEST170 depends on PCI_MSI171 select PCIE_DW_HOST172 select PCIE_KEEMBAY173 help174 Say 'Y' here to enable support for the PCIe controller in Keem Bay175 to work in host mode.176 The PCIe controller is based on DesignWare Hardware and uses177 DesignWare core functions.178 179config PCIE_KEEMBAY_EP180 bool "Intel Keem Bay PCIe controller (endpoint mode)"181 depends on ARCH_KEEMBAY || COMPILE_TEST182 depends on PCI_MSI183 depends on PCI_ENDPOINT184 select PCIE_DW_EP185 select PCIE_KEEMBAY186 help187 Say 'Y' here to enable support for the PCIe controller in Keem Bay188 to work in endpoint mode.189 The PCIe controller is based on DesignWare Hardware and uses190 DesignWare core functions.191 192config PCIE_ARMADA_8K193 bool "Marvell Armada-8K PCIe controller"194 depends on ARCH_MVEBU || COMPILE_TEST195 depends on PCI_MSI196 select PCIE_DW_HOST197 help198 Say Y here if you want to enable PCIe controller support on199 Armada-8K SoCs. The PCIe controller on Armada-8K is based on200 DesignWare hardware and therefore the driver re-uses the201 DesignWare core functions to implement the driver.202 203config PCIE_TEGRA194204 tristate205 206config PCIE_TEGRA194_HOST207 tristate "NVIDIA Tegra194 (and later) PCIe controller (host mode)"208 depends on ARCH_TEGRA_194_SOC || COMPILE_TEST209 depends on PCI_MSI210 select PCIE_DW_HOST211 select PHY_TEGRA194_P2U212 select PCIE_TEGRA194213 help214 Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to215 work in host mode. There are two instances of PCIe controllers in216 Tegra194. This controller can work either as EP or RC. In order to217 enable host-specific features PCIE_TEGRA194_HOST must be selected and218 in order to enable device-specific features PCIE_TEGRA194_EP must be219 selected. This uses the DesignWare core.220 221config PCIE_TEGRA194_EP222 tristate "NVIDIA Tegra194 (and later) PCIe controller (endpoint mode)"223 depends on ARCH_TEGRA_194_SOC || COMPILE_TEST224 depends on PCI_ENDPOINT225 select PCIE_DW_EP226 select PHY_TEGRA194_P2U227 select PCIE_TEGRA194228 help229 Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to230 work in endpoint mode. There are two instances of PCIe controllers in231 Tegra194. This controller can work either as EP or RC. In order to232 enable host-specific features PCIE_TEGRA194_HOST must be selected and233 in order to enable device-specific features PCIE_TEGRA194_EP must be234 selected. This uses the DesignWare core.235 236config PCIE_DW_PLAT237 bool238 239config PCIE_DW_PLAT_HOST240 bool "Platform bus based DesignWare PCIe controller (host mode)"241 depends on PCI_MSI242 select PCIE_DW_HOST243 select PCIE_DW_PLAT244 help245 Enables support for the PCIe controller in the Designware IP to246 work in host mode. There are two instances of PCIe controller in247 Designware IP.248 This controller can work either as EP or RC. In order to enable249 host-specific features PCIE_DW_PLAT_HOST must be selected and in250 order to enable device-specific features PCI_DW_PLAT_EP must be251 selected.252 253config PCIE_DW_PLAT_EP254 bool "Platform bus based DesignWare PCIe controller (endpoint mode)"255 depends on PCI && PCI_MSI256 depends on PCI_ENDPOINT257 select PCIE_DW_EP258 select PCIE_DW_PLAT259 help260 Enables support for the PCIe controller in the Designware IP to261 work in endpoint mode. There are two instances of PCIe controller262 in Designware IP.263 This controller can work either as EP or RC. In order to enable264 host-specific features PCIE_DW_PLAT_HOST must be selected and in265 order to enable device-specific features PCI_DW_PLAT_EP must be266 selected.267 268config PCIE_QCOM_COMMON269 bool270 271config PCIE_QCOM272 bool "Qualcomm PCIe controller (host mode)"273 depends on OF && (ARCH_QCOM || COMPILE_TEST)274 depends on PCI_MSI275 select PCIE_DW_HOST276 select CRC8277 select PCIE_QCOM_COMMON278 help279 Say Y here to enable PCIe controller support on Qualcomm SoCs. The280 PCIe controller uses the DesignWare core plus Qualcomm-specific281 hardware wrappers.282 283config PCIE_QCOM_EP284 tristate "Qualcomm PCIe controller (endpoint mode)"285 depends on OF && (ARCH_QCOM || COMPILE_TEST)286 depends on PCI_ENDPOINT287 select PCIE_DW_EP288 select PCIE_QCOM_COMMON289 help290 Say Y here to enable support for the PCIe controllers on Qualcomm SoCs291 to work in endpoint mode. The PCIe controller uses the DesignWare core292 plus Qualcomm-specific hardware wrappers.293 294config PCIE_RCAR_GEN4295 tristate296 297config PCIE_RCAR_GEN4_HOST298 tristate "Renesas R-Car Gen4 PCIe controller (host mode)"299 depends on ARCH_RENESAS || COMPILE_TEST300 depends on PCI_MSI301 select PCIE_DW_HOST302 select PCIE_RCAR_GEN4303 help304 Say Y here if you want PCIe controller (host mode) on R-Car Gen4 SoCs.305 To compile this driver as a module, choose M here: the module will be306 called pcie-rcar-gen4.ko. This uses the DesignWare core.307 308config PCIE_RCAR_GEN4_EP309 tristate "Renesas R-Car Gen4 PCIe controller (endpoint mode)"310 depends on ARCH_RENESAS || COMPILE_TEST311 depends on PCI_ENDPOINT312 select PCIE_DW_EP313 select PCIE_RCAR_GEN4314 help315 Say Y here if you want PCIe controller (endpoint mode) on R-Car Gen4316 SoCs. To compile this driver as a module, choose M here: the module317 will be called pcie-rcar-gen4.ko. This uses the DesignWare core.318 319config PCIE_ROCKCHIP_DW320 bool321 322config PCIE_ROCKCHIP_DW_HOST323 bool "Rockchip DesignWare PCIe controller (host mode)"324 depends on PCI_MSI325 depends on ARCH_ROCKCHIP || COMPILE_TEST326 depends on OF327 select PCIE_DW_HOST328 select PCIE_ROCKCHIP_DW329 help330 Enables support for the DesignWare PCIe controller in the331 Rockchip SoC (except RK3399) to work in host mode.332 333config PCIE_ROCKCHIP_DW_EP334 bool "Rockchip DesignWare PCIe controller (endpoint mode)"335 depends on ARCH_ROCKCHIP || COMPILE_TEST336 depends on OF337 depends on PCI_ENDPOINT338 select PCIE_DW_EP339 select PCIE_ROCKCHIP_DW340 help341 Enables support for the DesignWare PCIe controller in the342 Rockchip SoC (except RK3399) to work in endpoint mode.343 344config PCI_EXYNOS345 tristate "Samsung Exynos PCIe controller"346 depends on ARCH_EXYNOS || COMPILE_TEST347 depends on PCI_MSI348 select PCIE_DW_HOST349 help350 Enables support for the PCIe controller in the Samsung Exynos SoCs351 to work in host mode. The PCI controller is based on the DesignWare352 hardware and therefore the driver re-uses the DesignWare core353 functions to implement the driver.354 355config PCIE_FU740356 bool "SiFive FU740 PCIe controller"357 depends on PCI_MSI358 depends on ARCH_SIFIVE || COMPILE_TEST359 select PCIE_DW_HOST360 help361 Say Y here if you want PCIe controller support for the SiFive362 FU740.363 364config PCIE_UNIPHIER365 bool "Socionext UniPhier PCIe controller (host mode)"366 depends on ARCH_UNIPHIER || COMPILE_TEST367 depends on OF && HAS_IOMEM368 depends on PCI_MSI369 select PCIE_DW_HOST370 help371 Say Y here if you want PCIe host controller support on UniPhier SoCs.372 This driver supports LD20 and PXs3 SoCs.373 374config PCIE_UNIPHIER_EP375 bool "Socionext UniPhier PCIe controller (endpoint mode)"376 depends on ARCH_UNIPHIER || COMPILE_TEST377 depends on OF && HAS_IOMEM378 depends on PCI_ENDPOINT379 select PCIE_DW_EP380 help381 Say Y here if you want PCIe endpoint controller support on382 UniPhier SoCs. This driver supports Pro5 SoC.383 384config PCIE_SPEAR13XX385 bool "STMicroelectronics SPEAr PCIe controller"386 depends on ARCH_SPEAR13XX || COMPILE_TEST387 depends on PCI_MSI388 select PCIE_DW_HOST389 help390 Say Y here if you want PCIe support on SPEAr13XX SoCs.391 392config PCI_DRA7XX393 tristate394 395config PCI_DRA7XX_HOST396 tristate "TI DRA7xx PCIe controller (host mode)"397 depends on SOC_DRA7XX || COMPILE_TEST398 depends on OF && HAS_IOMEM && TI_PIPE3399 depends on PCI_MSI400 select PCIE_DW_HOST401 select PCI_DRA7XX402 default y if SOC_DRA7XX403 help404 Enables support for the PCIe controller in the DRA7xx SoC to work in405 host mode. There are two instances of PCIe controller in DRA7xx.406 This controller can work either as EP or RC. In order to enable407 host-specific features PCI_DRA7XX_HOST must be selected and in order408 to enable device-specific features PCI_DRA7XX_EP must be selected.409 This uses the DesignWare core.410 411config PCI_DRA7XX_EP412 tristate "TI DRA7xx PCIe controller (endpoint mode)"413 depends on SOC_DRA7XX || COMPILE_TEST414 depends on OF && HAS_IOMEM && TI_PIPE3415 depends on PCI_ENDPOINT416 select PCIE_DW_EP417 select PCI_DRA7XX418 help419 Enables support for the PCIe controller in the DRA7xx SoC to work in420 endpoint mode. There are two instances of PCIe controller in DRA7xx.421 This controller can work either as EP or RC. In order to enable422 host-specific features PCI_DRA7XX_HOST must be selected and in order423 to enable device-specific features PCI_DRA7XX_EP must be selected.424 This uses the DesignWare core.425 426config PCI_KEYSTONE427 bool428 429config PCI_KEYSTONE_HOST430 bool "TI Keystone PCIe controller (host mode)"431 depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST432 depends on PCI_MSI433 select PCIE_DW_HOST434 select PCI_KEYSTONE435 help436 Enables support for the PCIe controller in the Keystone SoC to437 work in host mode. The PCI controller on Keystone is based on438 DesignWare hardware and therefore the driver re-uses the439 DesignWare core functions to implement the driver.440 441config PCI_KEYSTONE_EP442 bool "TI Keystone PCIe controller (endpoint mode)"443 depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST444 depends on PCI_ENDPOINT445 select PCIE_DW_EP446 select PCI_KEYSTONE447 help448 Enables support for the PCIe controller in the Keystone SoC to449 work in endpoint mode. The PCI controller on Keystone is based450 on DesignWare hardware and therefore the driver re-uses the451 DesignWare core functions to implement the driver.452 453config PCIE_VISCONTI_HOST454 bool "Toshiba Visconti PCIe controller"455 depends on ARCH_VISCONTI || COMPILE_TEST456 depends on PCI_MSI457 select PCIE_DW_HOST458 help459 Say Y here if you want PCIe controller support on Toshiba Visconti SoC.460 This driver supports TMPV7708 SoC.461 462endmenu463