Merge tag 'libata-5.14-2021-07-30' of git://git.kernel.dk/linux-block
[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         default ARCH_IXP4XX
44         help
45           Say Y here if you want support for the PCI host controller found
46           in the Intel IXP4xx XScale-based network processor SoC.
47
48 config PCI_TEGRA
49         bool "NVIDIA Tegra PCIe controller"
50         depends on ARCH_TEGRA || COMPILE_TEST
51         depends on PCI_MSI_IRQ_DOMAIN
52         help
53           Say Y here if you want support for the PCIe host controller found
54           on NVIDIA Tegra SoCs.
55
56 config PCI_RCAR_GEN2
57         bool "Renesas R-Car Gen2 Internal PCI controller"
58         depends on ARCH_RENESAS || COMPILE_TEST
59         depends on ARM
60         help
61           Say Y here if you want internal PCI support on R-Car Gen2 SoC.
62           There are 3 internal PCI controllers available with a single
63           built-in EHCI/OHCI host controller present on each one.
64
65 config PCIE_RCAR_HOST
66         bool "Renesas R-Car PCIe host controller"
67         depends on ARCH_RENESAS || COMPILE_TEST
68         depends on PCI_MSI_IRQ_DOMAIN
69         help
70           Say Y here if you want PCIe controller support on R-Car SoCs in host
71           mode.
72
73 config PCIE_RCAR_EP
74         bool "Renesas R-Car PCIe endpoint controller"
75         depends on ARCH_RENESAS || COMPILE_TEST
76         depends on PCI_ENDPOINT
77         help
78           Say Y here if you want PCIe controller support on R-Car SoCs in
79           endpoint mode.
80
81 config PCI_HOST_COMMON
82         tristate
83         select PCI_ECAM
84
85 config PCI_HOST_GENERIC
86         tristate "Generic PCI host controller"
87         depends on OF
88         select PCI_HOST_COMMON
89         select IRQ_DOMAIN
90         help
91           Say Y here if you want to support a simple generic PCI host
92           controller, such as the one emulated by kvmtool.
93
94 config PCIE_XILINX
95         bool "Xilinx AXI PCIe host bridge support"
96         depends on OF || COMPILE_TEST
97         depends on PCI_MSI_IRQ_DOMAIN
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_MEDIATEK_GEN3
243         tristate "MediaTek Gen3 PCIe controller"
244         depends on ARCH_MEDIATEK || COMPILE_TEST
245         depends on PCI_MSI_IRQ_DOMAIN
246         help
247           Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
248           This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
249           and support up to 256 MSI interrupt numbers for
250           multi-function devices.
251
252           Say Y here if you want to enable Gen3 PCIe controller support on
253           MediaTek SoCs.
254
255 config VMD
256         depends on PCI_MSI && X86_64 && SRCU
257         tristate "Intel Volume Management Device Driver"
258         help
259           Adds support for the Intel Volume Management Device (VMD). VMD is a
260           secondary PCI host bridge that allows PCI Express root ports,
261           and devices attached to them, to be removed from the default
262           PCI domain and placed within the VMD domain. This provides
263           more bus resources than are otherwise possible with a
264           single domain. If you know your system provides one of these and
265           has devices attached to it, say Y; if you are not sure, say N.
266
267           To compile this driver as a module, choose M here: the
268           module will be called vmd.
269
270 config PCIE_BRCMSTB
271         tristate "Broadcom Brcmstb PCIe host controller"
272         depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || COMPILE_TEST
273         depends on OF
274         depends on PCI_MSI_IRQ_DOMAIN
275         default ARCH_BRCMSTB
276         help
277           Say Y here to enable PCIe host controller support for
278           Broadcom STB based SoCs, like the Raspberry Pi 4.
279
280 config PCI_HYPERV_INTERFACE
281         tristate "Hyper-V PCI Interface"
282         depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
283         help
284           The Hyper-V PCI Interface is a helper driver allows other drivers to
285           have a common interface with the Hyper-V PCI frontend driver.
286
287 config PCI_LOONGSON
288         bool "LOONGSON PCI Controller"
289         depends on MACH_LOONGSON64 || COMPILE_TEST
290         depends on OF
291         depends on PCI_QUIRKS
292         default MACH_LOONGSON64
293         help
294           Say Y here if you want to enable PCI controller support on
295           Loongson systems.
296
297 config PCIE_MICROCHIP_HOST
298         bool "Microchip AXI PCIe host bridge support"
299         depends on PCI_MSI && OF
300         select PCI_MSI_IRQ_DOMAIN
301         select GENERIC_MSI_IRQ_DOMAIN
302         select PCI_HOST_COMMON
303         help
304           Say Y here if you want kernel to support the Microchip AXI PCIe
305           Host Bridge driver.
306
307 config PCIE_HISI_ERR
308         depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
309         bool "HiSilicon HIP PCIe controller error handling driver"
310         help
311           Say Y here if you want error handling support
312           for the PCIe controller's errors on HiSilicon HIP SoCs
313
314 source "drivers/pci/controller/dwc/Kconfig"
315 source "drivers/pci/controller/mobiveil/Kconfig"
316 source "drivers/pci/controller/cadence/Kconfig"
317 endmenu