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