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