treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / drivers / pci / controller / Kconfig
blob20bf00f587bd5a59883cc81171c175e343fb1dfc
1 # SPDX-License-Identifier: GPL-2.0
3 menu "PCI controller drivers"
4         depends on PCI
6 config PCI_MVEBU
7         bool "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         select PCI_BRIDGE_EMUL
14 config PCI_AARDVARK
15         bool "Aardvark PCIe controller"
16         depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
17         depends on OF
18         depends on PCI_MSI_IRQ_DOMAIN
19         select PCI_BRIDGE_EMUL
20         help
21          Add support for Aardvark 64bit PCIe Host Controller. This
22          controller is part of the South Bridge of the Marvel Armada
23          3700 SoC.
25 config PCIE_XILINX_NWL
26         bool "NWL PCIe Core"
27         depends on ARCH_ZYNQMP || COMPILE_TEST
28         depends on PCI_MSI_IRQ_DOMAIN
29         help
30          Say 'Y' here if you want kernel support for Xilinx
31          NWL PCIe controller. The controller can act as Root Port
32          or End Point. The current option selection will only
33          support root port enabling.
35 config PCI_FTPCI100
36         bool "Faraday Technology FTPCI100 PCI controller"
37         depends on OF
38         default ARCH_GEMINI
40 config PCI_TEGRA
41         bool "NVIDIA Tegra PCIe controller"
42         depends on ARCH_TEGRA || COMPILE_TEST
43         depends on PCI_MSI_IRQ_DOMAIN
44         help
45           Say Y here if you want support for the PCIe host controller found
46           on NVIDIA Tegra SoCs.
48 config PCI_RCAR_GEN2
49         bool "Renesas R-Car Gen2 Internal PCI controller"
50         depends on ARCH_RENESAS || COMPILE_TEST
51         depends on ARM
52         help
53           Say Y here if you want internal PCI support on R-Car Gen2 SoC.
54           There are 3 internal PCI controllers available with a single
55           built-in EHCI/OHCI host controller present on each one.
57 config PCIE_RCAR
58         bool "Renesas R-Car PCIe controller"
59         depends on ARCH_RENESAS || COMPILE_TEST
60         depends on PCI_MSI_IRQ_DOMAIN
61         help
62           Say Y here if you want PCIe controller support on R-Car SoCs.
64 config PCI_HOST_COMMON
65         bool
66         select PCI_ECAM
68 config PCI_HOST_GENERIC
69         bool "Generic PCI host controller"
70         depends on OF
71         select PCI_HOST_COMMON
72         select IRQ_DOMAIN
73         help
74           Say Y here if you want to support a simple generic PCI host
75           controller, such as the one emulated by kvmtool.
77 config PCIE_XILINX
78         bool "Xilinx AXI PCIe host bridge support"
79         depends on OF || COMPILE_TEST
80         help
81           Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
82           Host Bridge driver.
84 config PCI_XGENE
85         bool "X-Gene PCIe controller"
86         depends on ARM64 || COMPILE_TEST
87         depends on OF || (ACPI && PCI_QUIRKS)
88         help
89           Say Y here if you want internal PCI support on APM X-Gene SoC.
90           There are 5 internal PCIe ports available. Each port is GEN3 capable
91           and have varied lanes from x1 to x8.
93 config PCI_XGENE_MSI
94         bool "X-Gene v1 PCIe MSI feature"
95         depends on PCI_XGENE
96         depends on PCI_MSI_IRQ_DOMAIN
97         default y
98         help
99           Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
100           This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
102 config PCI_V3_SEMI
103         bool "V3 Semiconductor PCI controller"
104         depends on OF
105         depends on ARM || COMPILE_TEST
106         default ARCH_INTEGRATOR_AP
108 config PCI_VERSATILE
109         bool "ARM Versatile PB PCI controller"
110         depends on ARCH_VERSATILE || COMPILE_TEST
112 config PCIE_IPROC
113         tristate
114         help
115           This enables the iProc PCIe core controller support for Broadcom's
116           iProc family of SoCs. An appropriate bus interface driver needs
117           to be enabled to select this.
119 config PCIE_IPROC_PLATFORM
120         tristate "Broadcom iProc PCIe platform bus driver"
121         depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
122         depends on OF
123         select PCIE_IPROC
124         default ARCH_BCM_IPROC
125         help
126           Say Y here if you want to use the Broadcom iProc PCIe controller
127           through the generic platform bus interface
129 config PCIE_IPROC_BCMA
130         tristate "Broadcom iProc PCIe BCMA bus driver"
131         depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
132         select PCIE_IPROC
133         select BCMA
134         default ARCH_BCM_5301X
135         help
136           Say Y here if you want to use the Broadcom iProc PCIe controller
137           through the BCMA bus interface
139 config PCIE_IPROC_MSI
140         bool "Broadcom iProc PCIe MSI support"
141         depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
142         depends on PCI_MSI_IRQ_DOMAIN
143         default ARCH_BCM_IPROC
144         help
145           Say Y here if you want to enable MSI support for Broadcom's iProc
146           PCIe controller
148 config PCIE_ALTERA
149         tristate "Altera PCIe controller"
150         depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
151         help
152           Say Y here if you want to enable PCIe controller support on Altera
153           FPGA.
155 config PCIE_ALTERA_MSI
156         tristate "Altera PCIe MSI feature"
157         depends on PCIE_ALTERA
158         depends on PCI_MSI_IRQ_DOMAIN
159         help
160           Say Y here if you want PCIe MSI support for the Altera FPGA.
161           This MSI driver supports Altera MSI to GIC controller IP.
163 config PCI_HOST_THUNDER_PEM
164         bool "Cavium Thunder PCIe controller to off-chip devices"
165         depends on ARM64 || COMPILE_TEST
166         depends on OF || (ACPI && PCI_QUIRKS)
167         select PCI_HOST_COMMON
168         help
169           Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
171 config PCI_HOST_THUNDER_ECAM
172         bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
173         depends on ARM64 || COMPILE_TEST
174         depends on OF || (ACPI && PCI_QUIRKS)
175         select PCI_HOST_COMMON
176         help
177           Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
179 config PCIE_ROCKCHIP
180         bool
181         depends on PCI
183 config PCIE_ROCKCHIP_HOST
184         tristate "Rockchip PCIe host controller"
185         depends on ARCH_ROCKCHIP || COMPILE_TEST
186         depends on OF
187         depends on PCI_MSI_IRQ_DOMAIN
188         select MFD_SYSCON
189         select PCIE_ROCKCHIP
190         help
191           Say Y here if you want internal PCI support on Rockchip SoC.
192           There is 1 internal PCIe port available to support GEN2 with
193           4 slots.
195 config PCIE_ROCKCHIP_EP
196         bool "Rockchip PCIe endpoint controller"
197         depends on ARCH_ROCKCHIP || COMPILE_TEST
198         depends on OF
199         depends on PCI_ENDPOINT
200         select MFD_SYSCON
201         select PCIE_ROCKCHIP
202         help
203           Say Y here if you want to support Rockchip PCIe controller in
204           endpoint mode on Rockchip SoC. There is 1 internal PCIe port
205           available to support GEN2 with 4 slots.
207 config PCIE_MEDIATEK
208         tristate "MediaTek PCIe controller"
209         depends on ARCH_MEDIATEK || COMPILE_TEST
210         depends on OF
211         depends on PCI_MSI_IRQ_DOMAIN
212         help
213           Say Y here if you want to enable PCIe controller support on
214           MediaTek SoCs.
216 config PCIE_MOBIVEIL
217         bool "Mobiveil AXI PCIe controller"
218         depends on ARCH_ZYNQMP || COMPILE_TEST
219         depends on OF
220         depends on PCI_MSI_IRQ_DOMAIN
221         help
222           Say Y here if you want to enable support for the Mobiveil AXI PCIe
223           Soft IP. It has up to 8 outbound and inbound windows
224           for address translation and it is a PCIe Gen4 IP.
226 config PCIE_TANGO_SMP8759
227         bool "Tango SMP8759 PCIe controller (DANGEROUS)"
228         depends on ARCH_TANGO && PCI_MSI && OF
229         depends on BROKEN
230         select PCI_HOST_COMMON
231         help
232           Say Y here to enable PCIe controller support for Sigma Designs
233           Tango SMP8759-based systems.
235           Note: The SMP8759 controller multiplexes PCI config and MMIO
236           accesses, and Linux doesn't provide a way to serialize them.
237           This can lead to data corruption if drivers perform concurrent
238           config and MMIO accesses.
240 config VMD
241         depends on PCI_MSI && X86_64 && SRCU
242         tristate "Intel Volume Management Device Driver"
243         ---help---
244           Adds support for the Intel Volume Management Device (VMD). VMD is a
245           secondary PCI host bridge that allows PCI Express root ports,
246           and devices attached to them, to be removed from the default
247           PCI domain and placed within the VMD domain. This provides
248           more bus resources than are otherwise possible with a
249           single domain. If you know your system provides one of these and
250           has devices attached to it, say Y; if you are not sure, say N.
252           To compile this driver as a module, choose M here: the
253           module will be called vmd.
255 config PCIE_BRCMSTB
256         tristate "Broadcom Brcmstb PCIe host controller"
257         depends on ARCH_BCM2835 || COMPILE_TEST
258         depends on OF
259         depends on PCI_MSI_IRQ_DOMAIN
260         help
261           Say Y here to enable PCIe host controller support for
262           Broadcom STB based SoCs, like the Raspberry Pi 4.
264 config PCI_HYPERV_INTERFACE
265         tristate "Hyper-V PCI Interface"
266         depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
267         help
268           The Hyper-V PCI Interface is a helper driver allows other drivers to
269           have a common interface with the Hyper-V PCI frontend driver.
271 source "drivers/pci/controller/dwc/Kconfig"
272 source "drivers/pci/controller/cadence/Kconfig"
273 endmenu