Merge branch 'misc.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[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_IXP4XX
41         bool "Intel IXP4xx PCI controller"
42         depends on ARM && OF
43         depends on ARCH_IXP4XX || COMPILE_TEST
44         default ARCH_IXP4XX
45         help
46           Say Y here if you want support for the PCI host controller found
47           in the Intel IXP4xx XScale-based network processor SoC.
48
49 config PCI_TEGRA
50         bool "NVIDIA Tegra PCIe controller"
51         depends on ARCH_TEGRA || COMPILE_TEST
52         depends on PCI_MSI_IRQ_DOMAIN
53         help
54           Say Y here if you want support for the PCIe host controller found
55           on NVIDIA Tegra SoCs.
56
57 config PCI_RCAR_GEN2
58         bool "Renesas R-Car Gen2 Internal PCI controller"
59         depends on ARCH_RENESAS || COMPILE_TEST
60         depends on ARM
61         help
62           Say Y here if you want internal PCI support on R-Car Gen2 SoC.
63           There are 3 internal PCI controllers available with a single
64           built-in EHCI/OHCI host controller present on each one.
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         depends on PCI_MSI_IRQ_DOMAIN
99         help
100           Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
101           Host Bridge driver.
102
103 config PCIE_XILINX_CPM
104         bool "Xilinx Versal CPM host bridge support"
105         depends on ARCH_ZYNQMP || COMPILE_TEST
106         select PCI_HOST_COMMON
107         help
108           Say 'Y' here if you want kernel support for the
109           Xilinx Versal CPM host bridge.
110
111 config PCI_XGENE
112         bool "X-Gene PCIe controller"
113         depends on ARM64 || COMPILE_TEST
114         depends on OF || (ACPI && PCI_QUIRKS)
115         help
116           Say Y here if you want internal PCI support on APM X-Gene SoC.
117           There are 5 internal PCIe ports available. Each port is GEN3 capable
118           and have varied lanes from x1 to x8.
119
120 config PCI_XGENE_MSI
121         bool "X-Gene v1 PCIe MSI feature"
122         depends on PCI_XGENE
123         depends on PCI_MSI_IRQ_DOMAIN
124         default y
125         help
126           Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
127           This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
128
129 config PCI_V3_SEMI
130         bool "V3 Semiconductor PCI controller"
131         depends on OF
132         depends on ARM || COMPILE_TEST
133         default ARCH_INTEGRATOR_AP
134
135 config PCI_VERSATILE
136         bool "ARM Versatile PB PCI controller"
137         depends on ARCH_VERSATILE || COMPILE_TEST
138
139 config PCIE_IPROC
140         tristate
141         help
142           This enables the iProc PCIe core controller support for Broadcom's
143           iProc family of SoCs. An appropriate bus interface driver needs
144           to be enabled to select this.
145
146 config PCIE_IPROC_PLATFORM
147         tristate "Broadcom iProc PCIe platform bus driver"
148         depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
149         depends on OF
150         select PCIE_IPROC
151         default ARCH_BCM_IPROC
152         help
153           Say Y here if you want to use the Broadcom iProc PCIe controller
154           through the generic platform bus interface
155
156 config PCIE_IPROC_BCMA
157         tristate "Broadcom iProc PCIe BCMA bus driver"
158         depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
159         select PCIE_IPROC
160         select BCMA
161         default ARCH_BCM_5301X
162         help
163           Say Y here if you want to use the Broadcom iProc PCIe controller
164           through the BCMA bus interface
165
166 config PCIE_IPROC_MSI
167         bool "Broadcom iProc PCIe MSI support"
168         depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
169         depends on PCI_MSI_IRQ_DOMAIN
170         default ARCH_BCM_IPROC
171         help
172           Say Y here if you want to enable MSI support for Broadcom's iProc
173           PCIe controller
174
175 config PCIE_ALTERA
176         tristate "Altera PCIe controller"
177         depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
178         help
179           Say Y here if you want to enable PCIe controller support on Altera
180           FPGA.
181
182 config PCIE_ALTERA_MSI
183         tristate "Altera PCIe MSI feature"
184         depends on PCIE_ALTERA
185         depends on PCI_MSI_IRQ_DOMAIN
186         help
187           Say Y here if you want PCIe MSI support for the Altera FPGA.
188           This MSI driver supports Altera MSI to GIC controller IP.
189
190 config PCI_HOST_THUNDER_PEM
191         bool "Cavium Thunder PCIe controller to off-chip devices"
192         depends on ARM64 || COMPILE_TEST
193         depends on OF || (ACPI && PCI_QUIRKS)
194         select PCI_HOST_COMMON
195         help
196           Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
197
198 config PCI_HOST_THUNDER_ECAM
199         bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
200         depends on ARM64 || COMPILE_TEST
201         depends on OF || (ACPI && PCI_QUIRKS)
202         select PCI_HOST_COMMON
203         help
204           Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
205
206 config PCIE_ROCKCHIP
207         bool
208         depends on PCI
209
210 config PCIE_ROCKCHIP_HOST
211         tristate "Rockchip PCIe host controller"
212         depends on ARCH_ROCKCHIP || COMPILE_TEST
213         depends on OF
214         depends on PCI_MSI_IRQ_DOMAIN
215         select MFD_SYSCON
216         select PCIE_ROCKCHIP
217         help
218           Say Y here if you want internal PCI support on Rockchip SoC.
219           There is 1 internal PCIe port available to support GEN2 with
220           4 slots.
221
222 config PCIE_ROCKCHIP_EP
223         bool "Rockchip PCIe endpoint controller"
224         depends on ARCH_ROCKCHIP || COMPILE_TEST
225         depends on OF
226         depends on PCI_ENDPOINT
227         select MFD_SYSCON
228         select PCIE_ROCKCHIP
229         help
230           Say Y here if you want to support Rockchip PCIe controller in
231           endpoint mode on Rockchip SoC. There is 1 internal PCIe port
232           available to support GEN2 with 4 slots.
233
234 config PCIE_MEDIATEK
235         tristate "MediaTek PCIe controller"
236         depends on ARCH_MEDIATEK || COMPILE_TEST
237         depends on OF
238         depends on PCI_MSI_IRQ_DOMAIN
239         help
240           Say Y here if you want to enable PCIe controller support on
241           MediaTek SoCs.
242
243 config PCIE_MEDIATEK_GEN3
244         tristate "MediaTek Gen3 PCIe controller"
245         depends on ARCH_MEDIATEK || COMPILE_TEST
246         depends on PCI_MSI_IRQ_DOMAIN
247         help
248           Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
249           This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
250           and support up to 256 MSI interrupt numbers for
251           multi-function devices.
252
253           Say Y here if you want to enable Gen3 PCIe controller support on
254           MediaTek SoCs.
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 || ARCH_BCM4908 || 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_MICROCHIP_HOST
299         bool "Microchip AXI PCIe host bridge support"
300         depends on PCI_MSI && OF
301         select PCI_MSI_IRQ_DOMAIN
302         select GENERIC_MSI_IRQ_DOMAIN
303         select PCI_HOST_COMMON
304         help
305           Say Y here if you want kernel to support the Microchip AXI PCIe
306           Host Bridge driver.
307
308 config PCIE_HISI_ERR
309         depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
310         bool "HiSilicon HIP PCIe controller error handling driver"
311         help
312           Say Y here if you want error handling support
313           for the PCIe controller's errors on HiSilicon HIP SoCs
314
315 source "drivers/pci/controller/dwc/Kconfig"
316 source "drivers/pci/controller/mobiveil/Kconfig"
317 source "drivers/pci/controller/cadence/Kconfig"
318 endmenu