Kconfig 6.14 KB
menu "PCI controller drivers"

config PCI_DRA7XX
	bool "TI DRA7xx PCIe controller"
	depends on OF && HAS_IOMEM && TI_PIPE3
	help
	 Enables support for the PCIe controller in the DRA7xx SoC. There
	 are two instances of PCIe controller in DRA7xx. This controller can
	 work either as EP or RC. In order to enable host specific features
	 PCI_DRA7XX_HOST must be selected. This reuses the Designware core.

if PCI_DRA7XX

choice
	bool "PCIe Mode"
	default PCI_DRA7XX_HOST if PCI

config PCI_DRA7XX_HOST
	bool "Host Only Mode"
	depends on PCI
	select PCIE_DW_HOST
	help
	 Enables support for the PCIe controller in the DRA7xx SoC to work in
	 host mode.

config PCI_DRA7XX_EP
	bool "Endpoint Only Mode"
	depends on PCI_ENDPOINT
	select PCIE_DW_EP
	help
	 Enables support for the PCIe controller in the DRA7xx SoC to work in
	 endpoint mode.

config PCI_DRA7XX_HOST_EP
	bool "Both Host and Endpoint Mode"
	depends on PCI
	depends on PCI_ENDPOINT
	select PCIE_DW_HOST
	select PCIE_DW_EP
	help
	 Enables support for the PCIe controller in the DRA7xx SoC to work in
	 both endpoint mode and host mode. If the board has 2 PCIe ports and
	 one of them has to work in host mode and the other has to work in
	 EP mode then this option has to be enabled.

endchoice

endif

config PCI_MVEBU
	bool "Marvell EBU PCIe controller"
	depends on PCI
	depends on ARCH_MVEBU || ARCH_DOVE
	depends on OF

config PCIE_DW
	bool

config PCIE_DW_HOST
	bool
	depends on PCI
	select PCIE_DW

config PCIE_DW_EP
	bool
	depends on PCI_ENDPOINT
	select PCIE_DW

config PCI_EXYNOS
	bool "Samsung Exynos PCIe controller"
	depends on PCI
	depends on (SOC_EXYNOS5440 || COMPILE_TEST)
	select PCIEPORTBUS
	select PCIE_DW_HOST

config PCI_IMX6
	bool "Freescale i.MX6 PCIe controller"
	depends on PCI
	depends on SOC_IMX6Q || COMPILE_TEST
	select PCIEPORTBUS
	select PCIE_DW_HOST

config PCI_TEGRA
	bool "NVIDIA Tegra PCIe controller"
	depends on PCI
	depends on ARCH_TEGRA && !ARM64
	help
	  Say Y here if you want support for the PCIe host controller found
	  on NVIDIA Tegra SoCs.

config PCI_RCAR_GEN2
	bool "Renesas R-Car Gen2 Internal PCI controller"
	depends on PCI
	depends on ARM
	depends on ARCH_SHMOBILE || COMPILE_TEST
	help
	  Say Y here if you want internal PCI support on R-Car Gen2 SoC.
	  There are 3 internal PCI controllers available with a single
	  built-in EHCI/OHCI host controller present on each one.

config PCI_RCAR_GEN2_PCIE
	bool "Renesas R-Car PCIe controller"
	depends on PCI
	depends on ARM
	depends on ARCH_SHMOBILE || COMPILE_TEST
	help
	  Say Y here if you want PCIe controller support on R-Car Gen2 SoCs.

config PCI_HOST_GENERIC
	bool "Generic PCI host controller"
	depends on PCI
	depends on (ARM || ARM64) && OF
	help
	  Say Y here if you want to support a simple generic PCI host
	  controller, such as the one emulated by kvmtool.

config PCIE_SPEAR13XX
	bool "STMicroelectronics SPEAr PCIe controller"
	depends on PCI
	depends on ARCH_SPEAR13XX || COMPILE_TEST
	select PCIEPORTBUS
	select PCIE_DW_HOST
	help
	  Say Y here if you want PCIe support on SPEAr13XX SoCs.

config PCI_KEYSTONE
	bool "TI Keystone PCIe controller"
	depends on PCI
	depends on ARCH_KEYSTONE
	select PCIE_DW_HOST
	select PCIEPORTBUS
	help
	  Say Y here if you want to enable PCI controller support on Keystone
	  SoCs. The PCI controller on Keystone is based on Designware hardware
	  and therefore the driver re-uses the Designware core functions to
	  implement the driver.

config PCIE_XILINX
	bool "Xilinx AXI PCIe host bridge support"
	depends on PCI
	depends on ARCH_ZYNQ
	help
	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
	  Host Bridge driver.

config PCI_XGENE
	bool "X-Gene PCIe controller"
	depends on PCI
	depends on ARCH_XGENE
	depends on OF
	select PCIEPORTBUS
	select PCI_MSI_IRQ_DOMAIN if PCI_MSI
	help
	  Say Y here if you want internal PCI support on APM X-Gene SoC.
	  There are 5 internal PCIe ports available. Each port is GEN3 capable
	  and have varied lanes from x1 to x8.

config PCI_XGENE_MSI
	bool "X-Gene v1 PCIe MSI feature"
	depends on PCI
	depends on PCI_XGENE && PCI_MSI
	default y
	help
	  Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
	  This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.

config PCI_LAYERSCAPE
	bool "Freescale Layerscape PCIe controller"
	depends on PCI
	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
	select PCIE_DW_HOST
	select MFD_SYSCON
	help
	  Say Y here if you want PCIe controller support on Layerscape SoCs.

config PCI_VERSATILE
	bool "ARM Versatile PB PCI controller"
	depends on PCI
	depends on ARCH_VERSATILE

config PCIE_IPROC
	tristate "Broadcom iProc PCIe controller"
	depends on PCI
	depends on OF && (ARM || ARM64)
	default n
	help
	  This enables the iProc PCIe core controller support for Broadcom's
	  iProc family of SoCs. An appropriate bus interface driver also needs
	  to be enabled

config PCIE_IPROC_PLATFORM
	tristate "Broadcom iProc PCIe platform bus driver"
	depends on PCI
	depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
	depends on OF
	select PCIE_IPROC
	default ARCH_BCM_IPROC
	help
	  Say Y here if you want to use the Broadcom iProc PCIe controller
	  through the generic platform bus interface

config PCIE_IPROC_BCMA
	tristate "Broadcom iProc PCIe BCMA bus driver"
	depends on PCI
	depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
	select PCIE_IPROC
	select BCMA
	select PCI_DOMAINS
	default ARCH_BCM_5301X
	help
	  Say Y here if you want to use the Broadcom iProc PCIe controller
	  through the BCMA bus interface

config PCIE_ALTERA
	bool "Altera PCIe controller"
	depends on PCI
	depends on ARM || NIOS2
	depends on OF_PCI
	select PCI_DOMAINS
	help
	  Say Y here if you want to enable PCIe controller support on Altera
	  FPGA.

config PCIE_ALTERA_MSI
	bool "Altera PCIe MSI feature"
	depends on PCI
	depends on PCIE_ALTERA && PCI_MSI
	select PCI_MSI_IRQ_DOMAIN
	help
	  Say Y here if you want PCIe MSI support for the Altera FPGA.
	  This MSI driver supports Altera MSI to GIC controller IP.

config PCI_HISI
	depends on OF && (ARM64 || COMPILE_TEST)
	bool "HiSilicon SoC HIP05 PCIe controller"
	depends on PCI
	select PCIEPORTBUS
	select PCIE_DW_HOST
	help
	  Say Y here if you want PCIe controller support on HiSilicon HIP05 SoC

endmenu