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