xref: /linux/drivers/pci/controller/Kconfig (revision 67f8bc848ee31831336bd478e57d2f993551902e)
16e0832faSShawn Lin# SPDX-License-Identifier: GPL-2.0
26e0832faSShawn Lin
36e0832faSShawn Linmenu "PCI controller drivers"
46e0832faSShawn Lin	depends on PCI
56e0832faSShawn Lin
6d1c696dbSManivannan Sadhasivamconfig PCI_HOST_COMMON
7d1c696dbSManivannan Sadhasivam	tristate
8d1c696dbSManivannan Sadhasivam	select PCI_ECAM
9d1c696dbSManivannan Sadhasivam
106e0832faSShawn Linconfig PCI_AARDVARK
11526a7699SPali Rohár	tristate "Aardvark PCIe controller"
126e0832faSShawn Lin	depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
136e0832faSShawn Lin	depends on OF
14a474d3fbSThomas Gleixner	depends on PCI_MSI
158a3ebd8dSZachary Zhang	select PCI_BRIDGE_EMUL
1675027704SNam Cao	select IRQ_MSI_LIB
176e0832faSShawn Lin	help
186e0832faSShawn Lin	 Add support for Aardvark 64bit PCIe Host Controller. This
196e0832faSShawn Lin	 controller is part of the South Bridge of the Marvel Armada
206e0832faSShawn Lin	 3700 SoC.
216e0832faSShawn Lin
2281c362e7SBjorn Helgaasconfig PCIE_ALTERA
2381c362e7SBjorn Helgaas	tristate "Altera PCIe controller"
2481c362e7SBjorn Helgaas	depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
2581c362e7SBjorn Helgaas	help
2681c362e7SBjorn Helgaas	  Say Y here if you want to enable PCIe controller support on Altera
2781c362e7SBjorn Helgaas	  FPGA.
2881c362e7SBjorn Helgaas
2981c362e7SBjorn Helgaasconfig PCIE_ALTERA_MSI
3081c362e7SBjorn Helgaas	tristate "Altera PCIe MSI feature"
3181c362e7SBjorn Helgaas	depends on PCIE_ALTERA
32a474d3fbSThomas Gleixner	depends on PCI_MSI
33cf154cccSNam Cao	select IRQ_MSI_LIB
346e0832faSShawn Lin	help
3581c362e7SBjorn Helgaas	  Say Y here if you want PCIe MSI support for the Altera FPGA.
3681c362e7SBjorn Helgaas	  This MSI driver supports Altera MSI to GIC controller IP.
376e0832faSShawn Lin
3881c362e7SBjorn Helgaasconfig PCIE_APPLE_MSI_DOORBELL_ADDR
3981c362e7SBjorn Helgaas	hex
4081c362e7SBjorn Helgaas	default 0xfffff000
4181c362e7SBjorn Helgaas	depends on PCIE_APPLE
4281c362e7SBjorn Helgaas
4381c362e7SBjorn Helgaasconfig PCIE_APPLE
4481c362e7SBjorn Helgaas	tristate "Apple PCIe controller"
4581c362e7SBjorn Helgaas	depends on ARCH_APPLE || COMPILE_TEST
466e0832faSShawn Lin	depends on OF
47a474d3fbSThomas Gleixner	depends on PCI_MSI
48508f6106SBharat Kumar Gogada	select PCI_HOST_COMMON
495d627a94SMarc Zyngier	select IRQ_MSI_LIB
50508f6106SBharat Kumar Gogada	help
5181c362e7SBjorn Helgaas	  Say Y here if you want to enable PCIe controller support on Apple
5281c362e7SBjorn Helgaas	  system-on-chips, like the Apple M1. This is required for the USB
5381c362e7SBjorn Helgaas	  type-A ports, Ethernet, Wi-Fi, and Bluetooth.
54508f6106SBharat Kumar Gogada
5581c362e7SBjorn Helgaas	  If unsure, say Y if you have an Apple Silicon system.
566e0832faSShawn Lin
576e0832faSShawn Linconfig PCI_VERSATILE
586e0832faSShawn Lin	bool "ARM Versatile PB PCI controller"
59ecf8fd6dSRob Herring	depends on ARCH_VERSATILE || COMPILE_TEST
606e0832faSShawn Lin
619aa0cb68SJacky Chouconfig PCIE_ASPEED
629aa0cb68SJacky Chou	bool "ASPEED PCIe controller"
639aa0cb68SJacky Chou	depends on ARCH_ASPEED || COMPILE_TEST
649aa0cb68SJacky Chou	depends on OF
659aa0cb68SJacky Chou	depends on PCI_MSI
669aa0cb68SJacky Chou	select IRQ_MSI_LIB
679aa0cb68SJacky Chou	help
689aa0cb68SJacky Chou	  Enable this option to support the PCIe controller found on ASPEED
699aa0cb68SJacky Chou	  SoCs.
709aa0cb68SJacky Chou
719aa0cb68SJacky Chou	  This driver provides initialization and management for PCIe
729aa0cb68SJacky Chou	  Root Complex functionality, including INTx and MSI support.
739aa0cb68SJacky Chou
749aa0cb68SJacky Chou	  Select Y if your platform uses an ASPEED SoC and requires PCIe
759aa0cb68SJacky Chou	  connectivity.
769aa0cb68SJacky Chou
7781c362e7SBjorn Helgaasconfig PCIE_BRCMSTB
7881c362e7SBjorn Helgaas	tristate "Broadcom Brcmstb PCIe controller"
7981c362e7SBjorn Helgaas	depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
8081c362e7SBjorn Helgaas		   BMIPS_GENERIC || COMPILE_TEST
8181c362e7SBjorn Helgaas	depends on OF
8281c362e7SBjorn Helgaas	depends on PCI_MSI
83ebcc2fbdSNam Cao	select IRQ_MSI_LIB
8481c362e7SBjorn Helgaas	default ARCH_BRCMSTB || BMIPS_GENERIC
8581c362e7SBjorn Helgaas	help
8681c362e7SBjorn Helgaas	  Say Y here to enable PCIe host controller support for
8781c362e7SBjorn Helgaas	  Broadcom STB based SoCs, like the Raspberry Pi 4.
8881c362e7SBjorn Helgaas
896e0832faSShawn Linconfig PCIE_IPROC
906e0832faSShawn Lin	tristate
916e0832faSShawn Lin	help
926e0832faSShawn Lin	  This enables the iProc PCIe core controller support for Broadcom's
936e0832faSShawn Lin	  iProc family of SoCs. An appropriate bus interface driver needs
946e0832faSShawn Lin	  to be enabled to select this.
956e0832faSShawn Lin
966e0832faSShawn Linconfig PCIE_IPROC_PLATFORM
976e0832faSShawn Lin	tristate "Broadcom iProc PCIe platform bus driver"
986e0832faSShawn Lin	depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
996e0832faSShawn Lin	depends on OF
1006e0832faSShawn Lin	select PCIE_IPROC
1016e0832faSShawn Lin	default ARCH_BCM_IPROC
1026e0832faSShawn Lin	help
1036e0832faSShawn Lin	  Say Y here if you want to use the Broadcom iProc PCIe controller
1046e0832faSShawn Lin	  through the generic platform bus interface
1056e0832faSShawn Lin
1066e0832faSShawn Linconfig PCIE_IPROC_BCMA
10780c170d7SBjorn Helgaas	tristate "Broadcom iProc BCMA PCIe controller"
1086e0832faSShawn Lin	depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
1096e0832faSShawn Lin	select PCIE_IPROC
1106e0832faSShawn Lin	select BCMA
1116e0832faSShawn Lin	default ARCH_BCM_5301X
1126e0832faSShawn Lin	help
1136e0832faSShawn Lin	  Say Y here if you want to use the Broadcom iProc PCIe controller
1146e0832faSShawn Lin	  through the BCMA bus interface
1156e0832faSShawn Lin
1166e0832faSShawn Linconfig PCIE_IPROC_MSI
1176e0832faSShawn Lin	bool "Broadcom iProc PCIe MSI support"
1186e0832faSShawn Lin	depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
119a474d3fbSThomas Gleixner	depends on PCI_MSI
120e275e38aSNam Cao	select IRQ_MSI_LIB
1216e0832faSShawn Lin	default ARCH_BCM_IPROC
1226e0832faSShawn Lin	help
1236e0832faSShawn Lin	  Say Y here if you want to enable MSI support for Broadcom's iProc
1246e0832faSShawn Lin	  PCIe controller
1256e0832faSShawn Lin
1266e0832faSShawn Linconfig PCI_HOST_THUNDER_PEM
1276e0832faSShawn Lin	bool "Cavium Thunder PCIe controller to off-chip devices"
1286e0832faSShawn Lin	depends on ARM64 || COMPILE_TEST
1296e0832faSShawn Lin	depends on OF || (ACPI && PCI_QUIRKS)
1306e0832faSShawn Lin	select PCI_HOST_COMMON
1316e0832faSShawn Lin	help
1326e0832faSShawn Lin	  Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
1336e0832faSShawn Lin
1346e0832faSShawn Linconfig PCI_HOST_THUNDER_ECAM
1356e0832faSShawn Lin	bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
1366e0832faSShawn Lin	depends on ARM64 || COMPILE_TEST
1376e0832faSShawn Lin	depends on OF || (ACPI && PCI_QUIRKS)
1386e0832faSShawn Lin	select PCI_HOST_COMMON
1396e0832faSShawn Lin	help
1406e0832faSShawn Lin	  Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
1416e0832faSShawn Lin
14281c362e7SBjorn Helgaasconfig PCI_FTPCI100
14381c362e7SBjorn Helgaas	bool "Faraday Technology FTPCI100 PCI controller"
14481c362e7SBjorn Helgaas	depends on OF
14581c362e7SBjorn Helgaas	default ARCH_GEMINI
14681c362e7SBjorn Helgaas
14781c362e7SBjorn Helgaasconfig PCI_HOST_GENERIC
14881c362e7SBjorn Helgaas	tristate "Generic PCI host controller"
14981c362e7SBjorn Helgaas	depends on OF
15081c362e7SBjorn Helgaas	select PCI_HOST_COMMON
15181c362e7SBjorn Helgaas	select IRQ_DOMAIN
15281c362e7SBjorn Helgaas	help
15381c362e7SBjorn Helgaas	  Say Y here if you want to support a simple generic PCI host
15481c362e7SBjorn Helgaas	  controller, such as the one emulated by kvmtool.
15581c362e7SBjorn Helgaas
15681c362e7SBjorn Helgaasconfig PCIE_HISI_ERR
15781c362e7SBjorn Helgaas	depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
15881c362e7SBjorn Helgaas	bool "HiSilicon HIP PCIe controller error handling driver"
15981c362e7SBjorn Helgaas	help
16081c362e7SBjorn Helgaas	  Say Y here if you want error handling support
16181c362e7SBjorn Helgaas	  for the PCIe controller's errors on HiSilicon HIP SoCs
16281c362e7SBjorn Helgaas
16381c362e7SBjorn Helgaasconfig PCI_IXP4XX
16481c362e7SBjorn Helgaas	bool "Intel IXP4xx PCI controller"
165d2713dfdSBjorn Helgaas	depends on OF
16681c362e7SBjorn Helgaas	depends on ARCH_IXP4XX || COMPILE_TEST
16781c362e7SBjorn Helgaas	default ARCH_IXP4XX
16881c362e7SBjorn Helgaas	help
16981c362e7SBjorn Helgaas	  Say Y here if you want support for the PCI host controller found
17081c362e7SBjorn Helgaas	  in the Intel IXP4xx XScale-based network processor SoC.
17181c362e7SBjorn Helgaas
17281c362e7SBjorn Helgaasconfig VMD
17381c362e7SBjorn Helgaas	depends on PCI_MSI && X86_64 && !UML
17481c362e7SBjorn Helgaas	tristate "Intel Volume Management Device Driver"
175d7d8ab87SNam Cao	select IRQ_MSI_LIB
17681c362e7SBjorn Helgaas	help
17781c362e7SBjorn Helgaas	  Adds support for the Intel Volume Management Device (VMD). VMD is a
17881c362e7SBjorn Helgaas	  secondary PCI host bridge that allows PCI Express root ports,
17981c362e7SBjorn Helgaas	  and devices attached to them, to be removed from the default
18081c362e7SBjorn Helgaas	  PCI domain and placed within the VMD domain. This provides
18181c362e7SBjorn Helgaas	  more bus resources than are otherwise possible with a
18281c362e7SBjorn Helgaas	  single domain. If you know your system provides one of these and
18381c362e7SBjorn Helgaas	  has devices attached to it, say Y; if you are not sure, say N.
18481c362e7SBjorn Helgaas
18581c362e7SBjorn Helgaas	  To compile this driver as a module, choose M here: the
18681c362e7SBjorn Helgaas	  module will be called vmd.
18781c362e7SBjorn Helgaas
18881c362e7SBjorn Helgaasconfig PCI_LOONGSON
18981c362e7SBjorn Helgaas	bool "LOONGSON PCIe controller"
1903d9aba66SHuacai Chen	depends on MACH_LOONGSON32 || MACH_LOONGSON64 || COMPILE_TEST
19181c362e7SBjorn Helgaas	depends on OF || ACPI
19281c362e7SBjorn Helgaas	depends on PCI_QUIRKS
19381c362e7SBjorn Helgaas	default MACH_LOONGSON64
19481c362e7SBjorn Helgaas	help
19581c362e7SBjorn Helgaas	  Say Y here if you want to enable PCI controller support on
19681c362e7SBjorn Helgaas	  Loongson systems.
19781c362e7SBjorn Helgaas
19881c362e7SBjorn Helgaasconfig PCI_MVEBU
19981c362e7SBjorn Helgaas	tristate "Marvell EBU PCIe controller"
20081c362e7SBjorn Helgaas	depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
20181c362e7SBjorn Helgaas	depends on MVEBU_MBUS
20281c362e7SBjorn Helgaas	depends on ARM
20381c362e7SBjorn Helgaas	depends on OF
20481c362e7SBjorn Helgaas	select PCI_BRIDGE_EMUL
20581c362e7SBjorn Helgaas	help
20681c362e7SBjorn Helgaas	 Add support for Marvell EBU PCIe controller. This PCIe controller
20781c362e7SBjorn Helgaas	 is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
20881c362e7SBjorn Helgaas	 Armada XP, Armada 375, Armada 38x and Armada 39x.
20981c362e7SBjorn Helgaas
21081c362e7SBjorn Helgaasconfig PCIE_MEDIATEK
21181c362e7SBjorn Helgaas	tristate "MediaTek PCIe controller"
2122077ccb9SCaleb James DeLisle	depends on ARCH_AIROHA || ARCH_MEDIATEK || ECONET || COMPILE_TEST
21381c362e7SBjorn Helgaas	depends on OF
21481c362e7SBjorn Helgaas	depends on PCI_MSI
215e449cb9aSNam Cao	select IRQ_MSI_LIB
21681c362e7SBjorn Helgaas	help
21781c362e7SBjorn Helgaas	  Say Y here if you want to enable PCIe controller support on
21881c362e7SBjorn Helgaas	  MediaTek SoCs.
21981c362e7SBjorn Helgaas
22081c362e7SBjorn Helgaasconfig PCIE_MEDIATEK_GEN3
22181c362e7SBjorn Helgaas	tristate "MediaTek Gen3 PCIe controller"
222f6ab8983SLorenzo Bianconi	depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
22381c362e7SBjorn Helgaas	depends on PCI_MSI
2249a35a264SNam Cao	select IRQ_MSI_LIB
2251a152e21SChen-Yu Tsai	select PCI_PWRCTRL_GENERIC
22681c362e7SBjorn Helgaas	help
22781c362e7SBjorn Helgaas	  Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
22881c362e7SBjorn Helgaas	  This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
22981c362e7SBjorn Helgaas	  and support up to 256 MSI interrupt numbers for
23081c362e7SBjorn Helgaas	  multi-function devices.
23181c362e7SBjorn Helgaas
23281c362e7SBjorn Helgaas	  Say Y here if you want to enable Gen3 PCIe controller support on
23381c362e7SBjorn Helgaas	  MediaTek SoCs.
23481c362e7SBjorn Helgaas
23581c362e7SBjorn Helgaasconfig PCIE_MT7621
23681c362e7SBjorn Helgaas	tristate "MediaTek MT7621 PCIe controller"
23781c362e7SBjorn Helgaas	depends on SOC_MT7621 || COMPILE_TEST
23881c362e7SBjorn Helgaas	select PHY_MT7621_PCI
23981c362e7SBjorn Helgaas	default SOC_MT7621
24081c362e7SBjorn Helgaas	help
24181c362e7SBjorn Helgaas	  This selects a driver for the MediaTek MT7621 PCIe Controller.
24281c362e7SBjorn Helgaas
24381c362e7SBjorn Helgaasconfig PCI_HYPERV_INTERFACE
24481c362e7SBjorn Helgaas	tristate "Microsoft Hyper-V PCI Interface"
24581c362e7SBjorn Helgaas	depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI
24681c362e7SBjorn Helgaas	help
24781c362e7SBjorn Helgaas	  The Hyper-V PCI Interface is a helper driver that allows other
24881c362e7SBjorn Helgaas	  drivers to have a common interface with the Hyper-V PCI frontend
24981c362e7SBjorn Helgaas	  driver.
25081c362e7SBjorn Helgaas
25181c362e7SBjorn Helgaasconfig PCI_TEGRA
252aac5ba6aSAaron Kling	tristate "NVIDIA Tegra PCIe controller"
25381c362e7SBjorn Helgaas	depends on ARCH_TEGRA || COMPILE_TEST
25481c362e7SBjorn Helgaas	depends on PCI_MSI
25594424278SMarc Zyngier	select IRQ_MSI_LIB
25681c362e7SBjorn Helgaas	help
25781c362e7SBjorn Helgaas	  Say Y here if you want support for the PCIe host controller found
258*01c3c27aSThierry Reding	  on NVIDIA Tegra SoCs (Tegra20 through Tegra186).
259*01c3c27aSThierry Reding
260*01c3c27aSThierry Redingconfig PCIE_TEGRA264
261*01c3c27aSThierry Reding	tristate "NVIDIA Tegra264 PCIe controller"
262*01c3c27aSThierry Reding	depends on ARCH_TEGRA || COMPILE_TEST
263*01c3c27aSThierry Reding	select PCI_ECAM
264*01c3c27aSThierry Reding	help
265*01c3c27aSThierry Reding	  Say Y here if you want support for the PCIe Host Controller found
266*01c3c27aSThierry Reding	  on NVIDIA Tegra264 SoCs.
26781c362e7SBjorn Helgaas
26881c362e7SBjorn Helgaasconfig PCIE_RCAR_HOST
26981c362e7SBjorn Helgaas	bool "Renesas R-Car PCIe controller (host mode)"
27081c362e7SBjorn Helgaas	depends on ARCH_RENESAS || COMPILE_TEST
27157833f84SNathan Chancellor	depends on OF
27281c362e7SBjorn Helgaas	depends on PCI_MSI
273dd26c1a2SNam Cao	select IRQ_MSI_LIB
27481c362e7SBjorn Helgaas	help
27581c362e7SBjorn Helgaas	  Say Y here if you want PCIe controller support on R-Car SoCs in host
27681c362e7SBjorn Helgaas	  mode.
27781c362e7SBjorn Helgaas
27881c362e7SBjorn Helgaasconfig PCIE_RCAR_EP
27981c362e7SBjorn Helgaas	bool "Renesas R-Car PCIe controller (endpoint mode)"
28081c362e7SBjorn Helgaas	depends on ARCH_RENESAS || COMPILE_TEST
28181c362e7SBjorn Helgaas	depends on PCI_ENDPOINT
28281c362e7SBjorn Helgaas	help
28381c362e7SBjorn Helgaas	  Say Y here if you want PCIe controller support on R-Car SoCs in
28481c362e7SBjorn Helgaas	  endpoint mode.
28581c362e7SBjorn Helgaas
28681c362e7SBjorn Helgaasconfig PCI_RCAR_GEN2
28781c362e7SBjorn Helgaas	bool "Renesas R-Car Gen2 Internal PCI controller"
288d312742fSGeert Uytterhoeven	depends on (ARCH_RENESAS && ARM) || COMPILE_TEST
28981c362e7SBjorn Helgaas	help
29081c362e7SBjorn Helgaas	  Say Y here if you want internal PCI support on R-Car Gen2 SoC.
291d312742fSGeert Uytterhoeven	  Each internal PCI controller contains a single built-in EHCI/OHCI
292d312742fSGeert Uytterhoeven	  host controller.
29381c362e7SBjorn Helgaas
2947ef502fbSClaudiu Bezneaconfig PCIE_RENESAS_RZG3S_HOST
2957ef502fbSClaudiu Beznea	bool "Renesas RZ/G3S PCIe host controller"
2967ef502fbSClaudiu Beznea	depends on ARCH_RENESAS || COMPILE_TEST
2977ef502fbSClaudiu Beznea	select MFD_SYSCON
2987ef502fbSClaudiu Beznea	select IRQ_MSI_LIB
2997ef502fbSClaudiu Beznea	help
3007ef502fbSClaudiu Beznea	  Say Y here if you want PCIe host controller support on Renesas RZ/G3S
3017ef502fbSClaudiu Beznea	  SoC.
3027ef502fbSClaudiu Beznea
3036e0832faSShawn Linconfig PCIE_ROCKCHIP
3046e0832faSShawn Lin	bool
3056e0832faSShawn Lin	depends on PCI
3066e0832faSShawn Lin
3076e0832faSShawn Linconfig PCIE_ROCKCHIP_HOST
30880c170d7SBjorn Helgaas	tristate "Rockchip PCIe controller (host mode)"
3096e0832faSShawn Lin	depends on ARCH_ROCKCHIP || COMPILE_TEST
3106e0832faSShawn Lin	depends on OF
311a474d3fbSThomas Gleixner	depends on PCI_MSI
3126e0832faSShawn Lin	select MFD_SYSCON
3136e0832faSShawn Lin	select PCIE_ROCKCHIP
3146e0832faSShawn Lin	help
3156e0832faSShawn Lin	  Say Y here if you want internal PCI support on Rockchip SoC.
3166e0832faSShawn Lin	  There is 1 internal PCIe port available to support GEN2 with
3176e0832faSShawn Lin	  4 slots.
3186e0832faSShawn Lin
3196e0832faSShawn Linconfig PCIE_ROCKCHIP_EP
32080c170d7SBjorn Helgaas	bool "Rockchip PCIe controller (endpoint mode)"
3216e0832faSShawn Lin	depends on ARCH_ROCKCHIP || COMPILE_TEST
3226e0832faSShawn Lin	depends on OF
3236e0832faSShawn Lin	depends on PCI_ENDPOINT
3246e0832faSShawn Lin	select MFD_SYSCON
3256e0832faSShawn Lin	select PCIE_ROCKCHIP
3266e0832faSShawn Lin	help
3276e0832faSShawn Lin	  Say Y here if you want to support Rockchip PCIe controller in
3286e0832faSShawn Lin	  endpoint mode on Rockchip SoC. There is 1 internal PCIe port
3296e0832faSShawn Lin	  available to support GEN2 with 4 slots.
3306e0832faSShawn Lin
33181c362e7SBjorn Helgaasconfig PCI_V3_SEMI
33281c362e7SBjorn Helgaas	bool "V3 Semiconductor PCI controller"
3336e0832faSShawn Lin	depends on OF
33481c362e7SBjorn Helgaas	depends on ARM || COMPILE_TEST
33581c362e7SBjorn Helgaas	default ARCH_INTEGRATOR_AP
33681c362e7SBjorn Helgaas
33781c362e7SBjorn Helgaasconfig PCI_XGENE
33881c362e7SBjorn Helgaas	bool "X-Gene PCIe controller"
33981c362e7SBjorn Helgaas	depends on ARM64 || COMPILE_TEST
34081c362e7SBjorn Helgaas	depends on OF || (ACPI && PCI_QUIRKS)
34181c362e7SBjorn Helgaas	help
34281c362e7SBjorn Helgaas	  Say Y here if you want internal PCI support on APM X-Gene SoC.
34381c362e7SBjorn Helgaas	  There are 5 internal PCIe ports available. Each port is GEN3 capable
34481c362e7SBjorn Helgaas	  and have varied lanes from x1 to x8.
34581c362e7SBjorn Helgaas
34681c362e7SBjorn Helgaasconfig PCI_XGENE_MSI
34781c362e7SBjorn Helgaas	bool "X-Gene v1 PCIe MSI feature"
34881c362e7SBjorn Helgaas	depends on PCI_XGENE
34981c362e7SBjorn Helgaas	depends on PCI_MSI
350ae79351eSMarc Zyngier	select IRQ_MSI_LIB
35181c362e7SBjorn Helgaas	default y
35281c362e7SBjorn Helgaas	help
35381c362e7SBjorn Helgaas	  Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
35481c362e7SBjorn Helgaas	  This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
35581c362e7SBjorn Helgaas
35681c362e7SBjorn Helgaasconfig PCIE_XILINX
35781c362e7SBjorn Helgaas	bool "Xilinx AXI PCIe controller"
358ab072a3bSJean Delvare	depends on OF
359a474d3fbSThomas Gleixner	depends on PCI_MSI
360f29861aaSNam Cao	select IRQ_MSI_LIB
3616e0832faSShawn Lin	help
36281c362e7SBjorn Helgaas	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
3636f15a9c9SDaire McNamara	  Host Bridge driver.
3646f15a9c9SDaire McNamara
3658d786149SThippeswamy Havaligeconfig PCIE_XILINX_DMA_PL
3668d786149SThippeswamy Havalige	bool "Xilinx DMA PL PCIe host bridge support"
3678d786149SThippeswamy Havalige	depends on ARCH_ZYNQMP || COMPILE_TEST
3688d786149SThippeswamy Havalige	depends on PCI_MSI
3698d786149SThippeswamy Havalige	select PCI_HOST_COMMON
370d08c7e50SNam Cao	select IRQ_MSI_LIB
3718d786149SThippeswamy Havalige	help
3728d786149SThippeswamy Havalige	  Say 'Y' here if you want kernel support for the Xilinx PL DMA
3738d786149SThippeswamy Havalige	  PCIe host bridge. The controller is a Soft IP which can act as
3748d786149SThippeswamy Havalige	  Root Port. If your system provides Xilinx PCIe host controller
3758d786149SThippeswamy Havalige	  bridge DMA as Soft IP say 'Y'; if you are not sure, say 'N'.
3768d786149SThippeswamy Havalige
37781c362e7SBjorn Helgaasconfig PCIE_XILINX_NWL
37881c362e7SBjorn Helgaas	bool "Xilinx NWL PCIe controller"
37981c362e7SBjorn Helgaas	depends on ARCH_ZYNQMP || COMPILE_TEST
380a474d3fbSThomas Gleixner	depends on PCI_MSI
381710a1494SNam Cao	select IRQ_MSI_LIB
38281c362e7SBjorn Helgaas	help
38381c362e7SBjorn Helgaas	 Say 'Y' here if you want kernel support for Xilinx
38481c362e7SBjorn Helgaas	 NWL PCIe controller. The controller can act as Root Port
38581c362e7SBjorn Helgaas	 or End Point. The current option selection will only
38681c362e7SBjorn Helgaas	 support root port enabling.
38781c362e7SBjorn Helgaas
38881c362e7SBjorn Helgaasconfig PCIE_XILINX_CPM
38981c362e7SBjorn Helgaas	bool "Xilinx Versal CPM PCI controller"
39081c362e7SBjorn Helgaas	depends on ARCH_ZYNQMP || COMPILE_TEST
3911e33888fSAlyssa Rosenzweig	select PCI_HOST_COMMON
3921e33888fSAlyssa Rosenzweig	help
39381c362e7SBjorn Helgaas	  Say 'Y' here if you want kernel support for the
39481c362e7SBjorn Helgaas	  Xilinx Versal CPM host bridge.
3951e33888fSAlyssa Rosenzweig
39681c362e7SBjorn Helgaassource "drivers/pci/controller/cadence/Kconfig"
3976e0832faSShawn Linsource "drivers/pci/controller/dwc/Kconfig"
39803bdc388SHou Zhiqiangsource "drivers/pci/controller/mobiveil/Kconfig"
39924934ee8SMinda Chensource "drivers/pci/controller/plda/Kconfig"
4006e0832faSShawn Linendmenu
401