Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 
0003 menu "PCI controller drivers"
0004         depends on PCI
0005 
0006 config PCI_MVEBU
0007         tristate "Marvell EBU PCIe controller"
0008         depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
0009         depends on MVEBU_MBUS
0010         depends on ARM
0011         depends on OF
0012         select PCI_BRIDGE_EMUL
0013         help
0014          Add support for Marvell EBU PCIe controller. This PCIe controller
0015          is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
0016          Armada XP, Armada 375, Armada 38x and Armada 39x.
0017 
0018 config PCI_AARDVARK
0019         tristate "Aardvark PCIe controller"
0020         depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
0021         depends on OF
0022         depends on PCI_MSI_IRQ_DOMAIN
0023         select PCI_BRIDGE_EMUL
0024         help
0025          Add support for Aardvark 64bit PCIe Host Controller. This
0026          controller is part of the South Bridge of the Marvel Armada
0027          3700 SoC.
0028 
0029 config PCIE_XILINX_NWL
0030         bool "NWL PCIe Core"
0031         depends on ARCH_ZYNQMP || COMPILE_TEST
0032         depends on PCI_MSI_IRQ_DOMAIN
0033         help
0034          Say 'Y' here if you want kernel support for Xilinx
0035          NWL PCIe controller. The controller can act as Root Port
0036          or End Point. The current option selection will only
0037          support root port enabling.
0038 
0039 config PCI_FTPCI100
0040         bool "Faraday Technology FTPCI100 PCI controller"
0041         depends on OF
0042         default ARCH_GEMINI
0043 
0044 config PCI_IXP4XX
0045         bool "Intel IXP4xx PCI controller"
0046         depends on ARM && OF
0047         depends on ARCH_IXP4XX || COMPILE_TEST
0048         default ARCH_IXP4XX
0049         help
0050           Say Y here if you want support for the PCI host controller found
0051           in the Intel IXP4xx XScale-based network processor SoC.
0052 
0053 config PCI_TEGRA
0054         bool "NVIDIA Tegra PCIe controller"
0055         depends on ARCH_TEGRA || COMPILE_TEST
0056         depends on PCI_MSI_IRQ_DOMAIN
0057         help
0058           Say Y here if you want support for the PCIe host controller found
0059           on NVIDIA Tegra SoCs.
0060 
0061 config PCI_RCAR_GEN2
0062         bool "Renesas R-Car Gen2 Internal PCI controller"
0063         depends on ARCH_RENESAS || COMPILE_TEST
0064         depends on ARM
0065         help
0066           Say Y here if you want internal PCI support on R-Car Gen2 SoC.
0067           There are 3 internal PCI controllers available with a single
0068           built-in EHCI/OHCI host controller present on each one.
0069 
0070 config PCIE_RCAR_HOST
0071         bool "Renesas R-Car PCIe host controller"
0072         depends on ARCH_RENESAS || COMPILE_TEST
0073         depends on PCI_MSI_IRQ_DOMAIN
0074         help
0075           Say Y here if you want PCIe controller support on R-Car SoCs in host
0076           mode.
0077 
0078 config PCIE_RCAR_EP
0079         bool "Renesas R-Car PCIe endpoint controller"
0080         depends on ARCH_RENESAS || COMPILE_TEST
0081         depends on PCI_ENDPOINT
0082         help
0083           Say Y here if you want PCIe controller support on R-Car SoCs in
0084           endpoint mode.
0085 
0086 config PCI_HOST_COMMON
0087         tristate
0088         select PCI_ECAM
0089 
0090 config PCI_HOST_GENERIC
0091         tristate "Generic PCI host controller"
0092         depends on OF
0093         select PCI_HOST_COMMON
0094         select IRQ_DOMAIN
0095         help
0096           Say Y here if you want to support a simple generic PCI host
0097           controller, such as the one emulated by kvmtool.
0098 
0099 config PCIE_XILINX
0100         bool "Xilinx AXI PCIe host bridge support"
0101         depends on OF || COMPILE_TEST
0102         depends on PCI_MSI_IRQ_DOMAIN
0103         help
0104           Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
0105           Host Bridge driver.
0106 
0107 config PCIE_XILINX_CPM
0108         bool "Xilinx Versal CPM host bridge support"
0109         depends on ARCH_ZYNQMP || COMPILE_TEST
0110         select PCI_HOST_COMMON
0111         help
0112           Say 'Y' here if you want kernel support for the
0113           Xilinx Versal CPM host bridge.
0114 
0115 config PCI_XGENE
0116         bool "X-Gene PCIe controller"
0117         depends on ARM64 || COMPILE_TEST
0118         depends on OF || (ACPI && PCI_QUIRKS)
0119         help
0120           Say Y here if you want internal PCI support on APM X-Gene SoC.
0121           There are 5 internal PCIe ports available. Each port is GEN3 capable
0122           and have varied lanes from x1 to x8.
0123 
0124 config PCI_XGENE_MSI
0125         bool "X-Gene v1 PCIe MSI feature"
0126         depends on PCI_XGENE
0127         depends on PCI_MSI_IRQ_DOMAIN
0128         default y
0129         help
0130           Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
0131           This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
0132 
0133 config PCI_V3_SEMI
0134         bool "V3 Semiconductor PCI controller"
0135         depends on OF
0136         depends on ARM || COMPILE_TEST
0137         default ARCH_INTEGRATOR_AP
0138 
0139 config PCI_VERSATILE
0140         bool "ARM Versatile PB PCI controller"
0141         depends on ARCH_VERSATILE || COMPILE_TEST
0142 
0143 config PCIE_IPROC
0144         tristate
0145         help
0146           This enables the iProc PCIe core controller support for Broadcom's
0147           iProc family of SoCs. An appropriate bus interface driver needs
0148           to be enabled to select this.
0149 
0150 config PCIE_IPROC_PLATFORM
0151         tristate "Broadcom iProc PCIe platform bus driver"
0152         depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
0153         depends on OF
0154         select PCIE_IPROC
0155         default ARCH_BCM_IPROC
0156         help
0157           Say Y here if you want to use the Broadcom iProc PCIe controller
0158           through the generic platform bus interface
0159 
0160 config PCIE_IPROC_BCMA
0161         tristate "Broadcom iProc PCIe BCMA bus driver"
0162         depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
0163         select PCIE_IPROC
0164         select BCMA
0165         default ARCH_BCM_5301X
0166         help
0167           Say Y here if you want to use the Broadcom iProc PCIe controller
0168           through the BCMA bus interface
0169 
0170 config PCIE_IPROC_MSI
0171         bool "Broadcom iProc PCIe MSI support"
0172         depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
0173         depends on PCI_MSI_IRQ_DOMAIN
0174         default ARCH_BCM_IPROC
0175         help
0176           Say Y here if you want to enable MSI support for Broadcom's iProc
0177           PCIe controller
0178 
0179 config PCIE_ALTERA
0180         tristate "Altera PCIe controller"
0181         depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
0182         help
0183           Say Y here if you want to enable PCIe controller support on Altera
0184           FPGA.
0185 
0186 config PCIE_ALTERA_MSI
0187         tristate "Altera PCIe MSI feature"
0188         depends on PCIE_ALTERA
0189         depends on PCI_MSI_IRQ_DOMAIN
0190         help
0191           Say Y here if you want PCIe MSI support for the Altera FPGA.
0192           This MSI driver supports Altera MSI to GIC controller IP.
0193 
0194 config PCI_HOST_THUNDER_PEM
0195         bool "Cavium Thunder PCIe controller to off-chip devices"
0196         depends on ARM64 || COMPILE_TEST
0197         depends on OF || (ACPI && PCI_QUIRKS)
0198         select PCI_HOST_COMMON
0199         help
0200           Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
0201 
0202 config PCI_HOST_THUNDER_ECAM
0203         bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
0204         depends on ARM64 || COMPILE_TEST
0205         depends on OF || (ACPI && PCI_QUIRKS)
0206         select PCI_HOST_COMMON
0207         help
0208           Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
0209 
0210 config PCIE_ROCKCHIP
0211         bool
0212         depends on PCI
0213 
0214 config PCIE_ROCKCHIP_HOST
0215         tristate "Rockchip PCIe host controller"
0216         depends on ARCH_ROCKCHIP || COMPILE_TEST
0217         depends on OF
0218         depends on PCI_MSI_IRQ_DOMAIN
0219         select MFD_SYSCON
0220         select PCIE_ROCKCHIP
0221         help
0222           Say Y here if you want internal PCI support on Rockchip SoC.
0223           There is 1 internal PCIe port available to support GEN2 with
0224           4 slots.
0225 
0226 config PCIE_ROCKCHIP_EP
0227         bool "Rockchip PCIe endpoint controller"
0228         depends on ARCH_ROCKCHIP || COMPILE_TEST
0229         depends on OF
0230         depends on PCI_ENDPOINT
0231         select MFD_SYSCON
0232         select PCIE_ROCKCHIP
0233         help
0234           Say Y here if you want to support Rockchip PCIe controller in
0235           endpoint mode on Rockchip SoC. There is 1 internal PCIe port
0236           available to support GEN2 with 4 slots.
0237 
0238 config PCIE_MEDIATEK
0239         tristate "MediaTek PCIe controller"
0240         depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
0241         depends on OF
0242         depends on PCI_MSI_IRQ_DOMAIN
0243         help
0244           Say Y here if you want to enable PCIe controller support on
0245           MediaTek SoCs.
0246 
0247 config PCIE_MEDIATEK_GEN3
0248         tristate "MediaTek Gen3 PCIe controller"
0249         depends on ARCH_MEDIATEK || COMPILE_TEST
0250         depends on PCI_MSI_IRQ_DOMAIN
0251         help
0252           Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
0253           This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
0254           and support up to 256 MSI interrupt numbers for
0255           multi-function devices.
0256 
0257           Say Y here if you want to enable Gen3 PCIe controller support on
0258           MediaTek SoCs.
0259 
0260 config VMD
0261         depends on PCI_MSI && X86_64 && SRCU && !UML
0262         tristate "Intel Volume Management Device Driver"
0263         help
0264           Adds support for the Intel Volume Management Device (VMD). VMD is a
0265           secondary PCI host bridge that allows PCI Express root ports,
0266           and devices attached to them, to be removed from the default
0267           PCI domain and placed within the VMD domain. This provides
0268           more bus resources than are otherwise possible with a
0269           single domain. If you know your system provides one of these and
0270           has devices attached to it, say Y; if you are not sure, say N.
0271 
0272           To compile this driver as a module, choose M here: the
0273           module will be called vmd.
0274 
0275 config PCIE_BRCMSTB
0276         tristate "Broadcom Brcmstb PCIe host controller"
0277         depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || \
0278                    BMIPS_GENERIC || COMPILE_TEST
0279         depends on OF
0280         depends on PCI_MSI_IRQ_DOMAIN
0281         default ARCH_BRCMSTB || BMIPS_GENERIC
0282         help
0283           Say Y here to enable PCIe host controller support for
0284           Broadcom STB based SoCs, like the Raspberry Pi 4.
0285 
0286 config PCI_HYPERV_INTERFACE
0287         tristate "Hyper-V PCI Interface"
0288         depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN
0289         help
0290           The Hyper-V PCI Interface is a helper driver allows other drivers to
0291           have a common interface with the Hyper-V PCI frontend driver.
0292 
0293 config PCI_LOONGSON
0294         bool "LOONGSON PCI Controller"
0295         depends on MACH_LOONGSON64 || COMPILE_TEST
0296         depends on OF || ACPI
0297         depends on PCI_QUIRKS
0298         default MACH_LOONGSON64
0299         help
0300           Say Y here if you want to enable PCI controller support on
0301           Loongson systems.
0302 
0303 config PCIE_MICROCHIP_HOST
0304         bool "Microchip AXI PCIe host bridge support"
0305         depends on PCI_MSI && OF
0306         select PCI_MSI_IRQ_DOMAIN
0307         select GENERIC_MSI_IRQ_DOMAIN
0308         select PCI_HOST_COMMON
0309         help
0310           Say Y here if you want kernel to support the Microchip AXI PCIe
0311           Host Bridge driver.
0312 
0313 config PCIE_HISI_ERR
0314         depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
0315         bool "HiSilicon HIP PCIe controller error handling driver"
0316         help
0317           Say Y here if you want error handling support
0318           for the PCIe controller's errors on HiSilicon HIP SoCs
0319 
0320 config PCIE_APPLE_MSI_DOORBELL_ADDR
0321         hex
0322         default 0xfffff000
0323         depends on PCIE_APPLE
0324 
0325 config PCIE_APPLE
0326         tristate "Apple PCIe controller"
0327         depends on ARCH_APPLE || COMPILE_TEST
0328         depends on OF
0329         depends on PCI_MSI_IRQ_DOMAIN
0330         select PCI_HOST_COMMON
0331         help
0332           Say Y here if you want to enable PCIe controller support on Apple
0333           system-on-chips, like the Apple M1. This is required for the USB
0334           type-A ports, Ethernet, Wi-Fi, and Bluetooth.
0335 
0336           If unsure, say Y if you have an Apple Silicon system.
0337 
0338 config PCIE_MT7621
0339         tristate "MediaTek MT7621 PCIe Controller"
0340         depends on SOC_MT7621 || COMPILE_TEST
0341         select PHY_MT7621_PCI
0342         default SOC_MT7621
0343         help
0344           This selects a driver for the MediaTek MT7621 PCIe Controller.
0345 
0346 source "drivers/pci/controller/dwc/Kconfig"
0347 source "drivers/pci/controller/mobiveil/Kconfig"
0348 source "drivers/pci/controller/cadence/Kconfig"
0349 endmenu