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