Merge tag 'irq-urgent-2020-11-08' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / drivers / pci / controller / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 menu "PCI controller drivers"
4         depends on PCI
5
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
13
14 config PCI_AARDVARK
15         tristate "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.
24
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.
34
35 config PCI_FTPCI100
36         bool "Faraday Technology FTPCI100 PCI controller"
37         depends on OF
38         default ARCH_GEMINI
39
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         select PCI_MSI_ARCH_FALLBACKS
45         help
46           Say Y here if you want support for the PCIe host controller found
47           on NVIDIA Tegra SoCs.
48
49 config PCI_RCAR_GEN2
50         bool "Renesas R-Car Gen2 Internal PCI controller"
51         depends on ARCH_RENESAS || COMPILE_TEST
52         depends on ARM
53         help
54           Say Y here if you want internal PCI support on R-Car Gen2 SoC.
55           There are 3 internal PCI controllers available with a single
56           built-in EHCI/OHCI host controller present on each one.
57
58 config PCIE_RCAR
59         bool "Renesas R-Car PCIe controller"
60         depends on ARCH_RENESAS || COMPILE_TEST
61         depends on PCI_MSI_IRQ_DOMAIN
62         select PCIE_RCAR_HOST
63         help
64           Say Y here if you want PCIe controller support on R-Car SoCs.
65           This option will be removed after arm64 defconfig is updated.
66
67 config PCIE_RCAR_HOST
68         bool "Renesas R-Car PCIe host controller"
69         depends on ARCH_RENESAS || COMPILE_TEST
70         depends on PCI_MSI_IRQ_DOMAIN
71         select PCI_MSI_ARCH_FALLBACKS
72         help
73           Say Y here if you want PCIe controller support on R-Car SoCs in host
74           mode.
75
76 config PCIE_RCAR_EP
77         bool "Renesas R-Car PCIe endpoint controller"
78         depends on ARCH_RENESAS || COMPILE_TEST
79         depends on PCI_ENDPOINT
80         help
81           Say Y here if you want PCIe controller support on R-Car SoCs in
82           endpoint mode.
83
84 config PCI_HOST_COMMON
85         tristate
86         select PCI_ECAM
87
88 config PCI_HOST_GENERIC
89         tristate "Generic PCI host controller"
90         depends on OF
91         select PCI_HOST_COMMON
92         select IRQ_DOMAIN
93         help
94           Say Y here if you want to support a simple generic PCI host
95           controller, such as the one emulated by kvmtool.
96
97 config PCIE_XILINX
98         bool "Xilinx AXI PCIe host bridge support"
99         depends on OF || COMPILE_TEST
100         select PCI_MSI_ARCH_FALLBACKS
101         help
102           Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
103           Host Bridge driver.
104
105 config PCIE_XILINX_CPM
106         bool "Xilinx Versal CPM host bridge support"
107         depends on ARCH_ZYNQMP || COMPILE_TEST
108         select PCI_HOST_COMMON
109         help
110           Say 'Y' here if you want kernel support for the
111           Xilinx Versal CPM host bridge.
112
113 config PCI_XGENE
114         bool "X-Gene PCIe controller"
115         depends on ARM64 || COMPILE_TEST
116         depends on OF || (ACPI && PCI_QUIRKS)
117         help
118           Say Y here if you want internal PCI support on APM X-Gene SoC.
119           There are 5 internal PCIe ports available. Each port is GEN3 capable
120           and have varied lanes from x1 to x8.
121
122 config PCI_XGENE_MSI
123         bool "X-Gene v1 PCIe MSI feature"
124         depends on PCI_XGENE
125         depends on PCI_MSI_IRQ_DOMAIN
126         default y
127         help
128           Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
129           This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
130
131 config PCI_V3_SEMI
132         bool "V3 Semiconductor PCI controller"
133         depends on OF
134         depends on ARM || COMPILE_TEST
135         default ARCH_INTEGRATOR_AP
136
137 config PCI_VERSATILE
138         bool "ARM Versatile PB PCI controller"
139         depends on ARCH_VERSATILE || COMPILE_TEST
140
141 config PCIE_IPROC
142         tristate
143         help
144           This enables the iProc PCIe core controller support for Broadcom's
145           iProc family of SoCs. An appropriate bus interface driver needs
146           to be enabled to select this.
147
148 config PCIE_IPROC_PLATFORM
149         tristate "Broadcom iProc PCIe platform bus driver"
150         depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
151         depends on OF
152         select PCIE_IPROC
153         default ARCH_BCM_IPROC
154         help
155           Say Y here if you want to use the Broadcom iProc PCIe controller
156           through the generic platform bus interface
157
158 config PCIE_IPROC_BCMA
159         tristate "Broadcom iProc PCIe BCMA bus driver"
160         depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
161         select PCIE_IPROC
162         select BCMA
163         default ARCH_BCM_5301X
164         help
165           Say Y here if you want to use the Broadcom iProc PCIe controller
166           through the BCMA bus interface
167
168 config PCIE_IPROC_MSI
169         bool "Broadcom iProc PCIe MSI support"
170         depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
171         depends on PCI_MSI_IRQ_DOMAIN
172         default ARCH_BCM_IPROC
173         help
174           Say Y here if you want to enable MSI support for Broadcom's iProc
175           PCIe controller
176
177 config PCIE_ALTERA
178         tristate "Altera PCIe controller"
179         depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
180         help
181           Say Y here if you want to enable PCIe controller support on Altera
182           FPGA.
183
184 config PCIE_ALTERA_MSI
185         tristate "Altera PCIe MSI feature"
186         depends on PCIE_ALTERA
187         depends on PCI_MSI_IRQ_DOMAIN
188         help
189           Say Y here if you want PCIe MSI support for the Altera FPGA.
190           This MSI driver supports Altera MSI to GIC controller IP.
191
192 config PCI_HOST_THUNDER_PEM
193         bool "Cavium Thunder PCIe controller to off-chip devices"
194         depends on ARM64 || COMPILE_TEST
195         depends on OF || (ACPI && PCI_QUIRKS)
196         select PCI_HOST_COMMON
197         help
198           Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
199
200 config PCI_HOST_THUNDER_ECAM
201         bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
202         depends on ARM64 || COMPILE_TEST
203         depends on OF || (ACPI && PCI_QUIRKS)
204         select PCI_HOST_COMMON
205         help
206           Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
207
208 config PCIE_ROCKCHIP
209         bool
210         depends on PCI
211
212 config PCIE_ROCKCHIP_HOST
213         tristate "Rockchip PCIe host controller"
214         depends on ARCH_ROCKCHIP || COMPILE_TEST
215         depends on OF
216         depends on PCI_MSI_IRQ_DOMAIN
217         select MFD_SYSCON
218         select PCIE_ROCKCHIP
219         help
220           Say Y here if you want internal PCI support on Rockchip SoC.
221           There is 1 internal PCIe port available to support GEN2 with
222           4 slots.
223
224 config PCIE_ROCKCHIP_EP
225         bool "Rockchip PCIe endpoint controller"
226         depends on ARCH_ROCKCHIP || COMPILE_TEST
227         depends on OF
228         depends on PCI_ENDPOINT
229         select MFD_SYSCON
230         select PCIE_ROCKCHIP
231         help
232           Say Y here if you want to support Rockchip PCIe controller in
233           endpoint mode on Rockchip SoC. There is 1 internal PCIe port
234           available to support GEN2 with 4 slots.
235
236 config PCIE_MEDIATEK
237         tristate "MediaTek PCIe controller"
238         depends on ARCH_MEDIATEK || COMPILE_TEST
239         depends on OF
240         depends on PCI_MSI_IRQ_DOMAIN
241         help
242           Say Y here if you want to enable PCIe controller support on
243           MediaTek SoCs.
244
245 config PCIE_TANGO_SMP8759
246         bool "Tango SMP8759 PCIe controller (DANGEROUS)"
247         depends on ARCH_TANGO && PCI_MSI && OF
248         depends on BROKEN
249         select PCI_HOST_COMMON
250         help
251           Say Y here to enable PCIe controller support for Sigma Designs
252           Tango SMP8759-based systems.
253
254           Note: The SMP8759 controller multiplexes PCI config and MMIO
255           accesses, and Linux doesn't provide a way to serialize them.
256           This can lead to data corruption if drivers perform concurrent
257           config and MMIO accesses.
258
259 config VMD
260         depends on PCI_MSI && X86_64 && SRCU
261         tristate "Intel Volume Management Device Driver"
262         help
263           Adds support for the Intel Volume Management Device (VMD). VMD is a
264           secondary PCI host bridge that allows PCI Express root ports,
265           and devices attached to them, to be removed from the default
266           PCI domain and placed within the VMD domain. This provides
267           more bus resources than are otherwise possible with a
268           single domain. If you know your system provides one of these and
269           has devices attached to it, say Y; if you are not sure, say N.
270
271           To compile this driver as a module, choose M here: the
272           module will be called vmd.
273
274 config PCIE_BRCMSTB
275         tristate "Broadcom Brcmstb PCIe host controller"
276         depends on ARCH_BRCMSTB || ARCH_BCM2835 || COMPILE_TEST
277         depends on OF
278         depends on PCI_MSI_IRQ_DOMAIN
279         default ARCH_BRCMSTB
280         help
281           Say Y here to enable PCIe host controller support for
282           Broadcom STB based SoCs, like the Raspberry Pi 4.
283
284 config PCI_HYPERV_INTERFACE
285         tristate "Hyper-V PCI Interface"
286         depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
287         help
288           The Hyper-V PCI Interface is a helper driver allows other drivers to
289           have a common interface with the Hyper-V PCI frontend driver.
290
291 config PCI_LOONGSON
292         bool "LOONGSON PCI Controller"
293         depends on MACH_LOONGSON64 || COMPILE_TEST
294         depends on OF
295         depends on PCI_QUIRKS
296         default MACH_LOONGSON64
297         help
298           Say Y here if you want to enable PCI controller support on
299           Loongson systems.
300
301 config PCIE_HISI_ERR
302         depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
303         bool "HiSilicon HIP PCIe controller error handling driver"
304         help
305           Say Y here if you want error handling support
306           for the PCIe controller's errors on HiSilicon HIP SoCs
307
308 source "drivers/pci/controller/dwc/Kconfig"
309 source "drivers/pci/controller/mobiveil/Kconfig"
310 source "drivers/pci/controller/cadence/Kconfig"
311 endmenu