1# SPDX-License-Identifier: GPL-2.0 2 3menu "PCI controller drivers" 4 depends on PCI 5 6config PCI_MVEBU 7 tristate "Marvell EBU PCIe controller" 8 depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST 9 depends on MVEBU_MBUS 10 depends on ARM 11 depends on OF 12 depends on BROKEN 13 select PCI_BRIDGE_EMUL 14 help 15 Add support for Marvell EBU PCIe controller. This PCIe controller 16 is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370, 17 Armada XP, Armada 375, Armada 38x and Armada 39x. 18 19config PCI_AARDVARK 20 tristate "Aardvark PCIe controller" 21 depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST 22 depends on OF 23 depends on PCI_MSI 24 select PCI_BRIDGE_EMUL 25 help 26 Add support for Aardvark 64bit PCIe Host Controller. This 27 controller is part of the South Bridge of the Marvel Armada 28 3700 SoC. 29 30config PCIE_XILINX_NWL 31 bool "NWL PCIe Core" 32 depends on ARCH_ZYNQMP || COMPILE_TEST 33 depends on PCI_MSI 34 help 35 Say 'Y' here if you want kernel support for Xilinx 36 NWL PCIe controller. The controller can act as Root Port 37 or End Point. The current option selection will only 38 support root port enabling. 39 40config PCI_FTPCI100 41 bool "Faraday Technology FTPCI100 PCI controller" 42 depends on OF 43 default ARCH_GEMINI 44 45config PCI_IXP4XX 46 bool "Intel IXP4xx PCI controller" 47 depends on ARM && OF 48 depends on ARCH_IXP4XX || COMPILE_TEST 49 default ARCH_IXP4XX 50 help 51 Say Y here if you want support for the PCI host controller found 52 in the Intel IXP4xx XScale-based network processor SoC. 53 54config PCI_TEGRA 55 bool "NVIDIA Tegra PCIe controller" 56 depends on ARCH_TEGRA || COMPILE_TEST 57 depends on PCI_MSI 58 help 59 Say Y here if you want support for the PCIe host controller found 60 on NVIDIA Tegra SoCs. 61 62config PCI_RCAR_GEN2 63 bool "Renesas R-Car Gen2 Internal PCI controller" 64 depends on ARCH_RENESAS || COMPILE_TEST 65 depends on ARM 66 help 67 Say Y here if you want internal PCI support on R-Car Gen2 SoC. 68 There are 3 internal PCI controllers available with a single 69 built-in EHCI/OHCI host controller present on each one. 70 71config PCIE_RCAR_HOST 72 bool "Renesas R-Car PCIe host controller" 73 depends on ARCH_RENESAS || COMPILE_TEST 74 depends on PCI_MSI 75 help 76 Say Y here if you want PCIe controller support on R-Car SoCs in host 77 mode. 78 79config PCIE_RCAR_EP 80 bool "Renesas R-Car PCIe endpoint controller" 81 depends on ARCH_RENESAS || COMPILE_TEST 82 depends on PCI_ENDPOINT 83 help 84 Say Y here if you want PCIe controller support on R-Car SoCs in 85 endpoint mode. 86 87config PCI_HOST_COMMON 88 tristate 89 select PCI_ECAM 90 91config PCI_HOST_GENERIC 92 tristate "Generic PCI host controller" 93 depends on OF 94 select PCI_HOST_COMMON 95 select IRQ_DOMAIN 96 help 97 Say Y here if you want to support a simple generic PCI host 98 controller, such as the one emulated by kvmtool. 99 100config PCIE_XILINX 101 bool "Xilinx AXI PCIe host bridge support" 102 depends on OF || COMPILE_TEST 103 depends on PCI_MSI 104 help 105 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe 106 Host Bridge driver. 107 108config PCIE_XILINX_CPM 109 bool "Xilinx Versal CPM host bridge support" 110 depends on ARCH_ZYNQMP || COMPILE_TEST 111 select PCI_HOST_COMMON 112 help 113 Say 'Y' here if you want kernel support for the 114 Xilinx Versal CPM host bridge. 115 116config PCI_XGENE 117 bool "X-Gene PCIe controller" 118 depends on ARM64 || COMPILE_TEST 119 depends on OF || (ACPI && PCI_QUIRKS) 120 help 121 Say Y here if you want internal PCI support on APM X-Gene SoC. 122 There are 5 internal PCIe ports available. Each port is GEN3 capable 123 and have varied lanes from x1 to x8. 124 125config PCI_XGENE_MSI 126 bool "X-Gene v1 PCIe MSI feature" 127 depends on PCI_XGENE 128 depends on PCI_MSI 129 default y 130 help 131 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC. 132 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC. 133 134config PCI_V3_SEMI 135 bool "V3 Semiconductor PCI controller" 136 depends on OF 137 depends on ARM || COMPILE_TEST 138 default ARCH_INTEGRATOR_AP 139 140config PCI_VERSATILE 141 bool "ARM Versatile PB PCI controller" 142 depends on ARCH_VERSATILE || COMPILE_TEST 143 144config PCIE_IPROC 145 tristate 146 help 147 This enables the iProc PCIe core controller support for Broadcom's 148 iProc family of SoCs. An appropriate bus interface driver needs 149 to be enabled to select this. 150 151config PCIE_IPROC_PLATFORM 152 tristate "Broadcom iProc PCIe platform bus driver" 153 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST) 154 depends on OF 155 select PCIE_IPROC 156 default ARCH_BCM_IPROC 157 help 158 Say Y here if you want to use the Broadcom iProc PCIe controller 159 through the generic platform bus interface 160 161config PCIE_IPROC_BCMA 162 tristate "Broadcom iProc PCIe BCMA bus driver" 163 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST) 164 select PCIE_IPROC 165 select BCMA 166 default ARCH_BCM_5301X 167 help 168 Say Y here if you want to use the Broadcom iProc PCIe controller 169 through the BCMA bus interface 170 171config PCIE_IPROC_MSI 172 bool "Broadcom iProc PCIe MSI support" 173 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA 174 depends on PCI_MSI 175 default ARCH_BCM_IPROC 176 help 177 Say Y here if you want to enable MSI support for Broadcom's iProc 178 PCIe controller 179 180config PCIE_ALTERA 181 tristate "Altera PCIe controller" 182 depends on ARM || NIOS2 || ARM64 || COMPILE_TEST 183 help 184 Say Y here if you want to enable PCIe controller support on Altera 185 FPGA. 186 187config PCIE_ALTERA_MSI 188 tristate "Altera PCIe MSI feature" 189 depends on PCIE_ALTERA 190 depends on PCI_MSI 191 help 192 Say Y here if you want PCIe MSI support for the Altera FPGA. 193 This MSI driver supports Altera MSI to GIC controller IP. 194 195config PCI_HOST_THUNDER_PEM 196 bool "Cavium Thunder PCIe controller to off-chip devices" 197 depends on ARM64 || COMPILE_TEST 198 depends on OF || (ACPI && PCI_QUIRKS) 199 select PCI_HOST_COMMON 200 help 201 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs. 202 203config PCI_HOST_THUNDER_ECAM 204 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon" 205 depends on ARM64 || COMPILE_TEST 206 depends on OF || (ACPI && PCI_QUIRKS) 207 select PCI_HOST_COMMON 208 help 209 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs. 210 211config PCIE_ROCKCHIP 212 bool 213 depends on PCI 214 215config PCIE_ROCKCHIP_HOST 216 tristate "Rockchip PCIe host controller" 217 depends on ARCH_ROCKCHIP || COMPILE_TEST 218 depends on OF 219 depends on PCI_MSI 220 select MFD_SYSCON 221 select PCIE_ROCKCHIP 222 help 223 Say Y here if you want internal PCI support on Rockchip SoC. 224 There is 1 internal PCIe port available to support GEN2 with 225 4 slots. 226 227config PCIE_ROCKCHIP_EP 228 bool "Rockchip PCIe endpoint controller" 229 depends on ARCH_ROCKCHIP || COMPILE_TEST 230 depends on OF 231 depends on PCI_ENDPOINT 232 select MFD_SYSCON 233 select PCIE_ROCKCHIP 234 help 235 Say Y here if you want to support Rockchip PCIe controller in 236 endpoint mode on Rockchip SoC. There is 1 internal PCIe port 237 available to support GEN2 with 4 slots. 238 239config PCIE_MEDIATEK 240 tristate "MediaTek PCIe controller" 241 depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST 242 depends on OF 243 depends on PCI_MSI 244 help 245 Say Y here if you want to enable PCIe controller support on 246 MediaTek SoCs. 247 248config PCIE_MEDIATEK_GEN3 249 tristate "MediaTek Gen3 PCIe controller" 250 depends on ARCH_MEDIATEK || COMPILE_TEST 251 depends on PCI_MSI 252 help 253 Adds support for PCIe Gen3 MAC controller for MediaTek SoCs. 254 This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed, 255 and support up to 256 MSI interrupt numbers for 256 multi-function devices. 257 258 Say Y here if you want to enable Gen3 PCIe controller support on 259 MediaTek SoCs. 260 261config VMD 262 depends on PCI_MSI && X86_64 && !UML 263 tristate "Intel Volume Management Device Driver" 264 help 265 Adds support for the Intel Volume Management Device (VMD). VMD is a 266 secondary PCI host bridge that allows PCI Express root ports, 267 and devices attached to them, to be removed from the default 268 PCI domain and placed within the VMD domain. This provides 269 more bus resources than are otherwise possible with a 270 single domain. If you know your system provides one of these and 271 has devices attached to it, say Y; if you are not sure, say N. 272 273 To compile this driver as a module, choose M here: the 274 module will be called vmd. 275 276config PCIE_BRCMSTB 277 tristate "Broadcom Brcmstb PCIe host controller" 278 depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \ 279 BMIPS_GENERIC || COMPILE_TEST 280 depends on OF 281 depends on PCI_MSI 282 default ARCH_BRCMSTB || BMIPS_GENERIC 283 help 284 Say Y here to enable PCIe host controller support for 285 Broadcom STB based SoCs, like the Raspberry Pi 4. 286 287config PCI_HYPERV_INTERFACE 288 tristate "Hyper-V PCI Interface" 289 depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI 290 help 291 The Hyper-V PCI Interface is a helper driver allows other drivers to 292 have a common interface with the Hyper-V PCI frontend driver. 293 294config PCI_LOONGSON 295 bool "LOONGSON PCI Controller" 296 depends on MACH_LOONGSON64 || COMPILE_TEST 297 depends on OF || ACPI 298 depends on PCI_QUIRKS 299 default MACH_LOONGSON64 300 help 301 Say Y here if you want to enable PCI controller support on 302 Loongson systems. 303 304config PCIE_MICROCHIP_HOST 305 bool "Microchip AXI PCIe host bridge support" 306 depends on PCI_MSI && OF 307 select PCI_HOST_COMMON 308 help 309 Say Y here if you want kernel to support the Microchip AXI PCIe 310 Host Bridge driver. 311 312config PCIE_HISI_ERR 313 depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST) 314 bool "HiSilicon HIP PCIe controller error handling driver" 315 help 316 Say Y here if you want error handling support 317 for the PCIe controller's errors on HiSilicon HIP SoCs 318 319config PCIE_APPLE_MSI_DOORBELL_ADDR 320 hex 321 default 0xfffff000 322 depends on PCIE_APPLE 323 324config PCIE_APPLE 325 tristate "Apple PCIe controller" 326 depends on ARCH_APPLE || COMPILE_TEST 327 depends on OF 328 depends on PCI_MSI 329 select PCI_HOST_COMMON 330 help 331 Say Y here if you want to enable PCIe controller support on Apple 332 system-on-chips, like the Apple M1. This is required for the USB 333 type-A ports, Ethernet, Wi-Fi, and Bluetooth. 334 335 If unsure, say Y if you have an Apple Silicon system. 336 337config PCIE_MT7621 338 tristate "MediaTek MT7621 PCIe Controller" 339 depends on SOC_MT7621 || COMPILE_TEST 340 select PHY_MT7621_PCI 341 default SOC_MT7621 342 help 343 This selects a driver for the MediaTek MT7621 PCIe Controller. 344 345source "drivers/pci/controller/dwc/Kconfig" 346source "drivers/pci/controller/mobiveil/Kconfig" 347source "drivers/pci/controller/cadence/Kconfig" 348endmenu 349