Merge tag 'ipsec-2023-05-16' of git://git.kernel.org/pub/scm/linux/kernel/git/klasser...
[linux-block.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_AARDVARK
7         tristate "Aardvark PCIe controller"
8         depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
9         depends on OF
10         depends on PCI_MSI
11         select PCI_BRIDGE_EMUL
12         help
13          Add support for Aardvark 64bit PCIe Host Controller. This
14          controller is part of the South Bridge of the Marvel Armada
15          3700 SoC.
16
17 config PCIE_ALTERA
18         tristate "Altera PCIe controller"
19         depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
20         help
21           Say Y here if you want to enable PCIe controller support on Altera
22           FPGA.
23
24 config PCIE_ALTERA_MSI
25         tristate "Altera PCIe MSI feature"
26         depends on PCIE_ALTERA
27         depends on PCI_MSI
28         help
29           Say Y here if you want PCIe MSI support for the Altera FPGA.
30           This MSI driver supports Altera MSI to GIC controller IP.
31
32 config PCIE_APPLE_MSI_DOORBELL_ADDR
33         hex
34         default 0xfffff000
35         depends on PCIE_APPLE
36
37 config PCIE_APPLE
38         tristate "Apple PCIe controller"
39         depends on ARCH_APPLE || COMPILE_TEST
40         depends on OF
41         depends on PCI_MSI
42         select PCI_HOST_COMMON
43         help
44           Say Y here if you want to enable PCIe controller support on Apple
45           system-on-chips, like the Apple M1. This is required for the USB
46           type-A ports, Ethernet, Wi-Fi, and Bluetooth.
47
48           If unsure, say Y if you have an Apple Silicon system.
49
50 config PCI_VERSATILE
51         bool "ARM Versatile PB PCI controller"
52         depends on ARCH_VERSATILE || COMPILE_TEST
53
54 config PCIE_BRCMSTB
55         tristate "Broadcom Brcmstb PCIe controller"
56         depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
57                    BMIPS_GENERIC || COMPILE_TEST
58         depends on OF
59         depends on PCI_MSI
60         default ARCH_BRCMSTB || BMIPS_GENERIC
61         help
62           Say Y here to enable PCIe host controller support for
63           Broadcom STB based SoCs, like the Raspberry Pi 4.
64
65 config PCIE_IPROC
66         tristate
67         help
68           This enables the iProc PCIe core controller support for Broadcom's
69           iProc family of SoCs. An appropriate bus interface driver needs
70           to be enabled to select this.
71
72 config PCIE_IPROC_PLATFORM
73         tristate "Broadcom iProc PCIe platform bus driver"
74         depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
75         depends on OF
76         select PCIE_IPROC
77         default ARCH_BCM_IPROC
78         help
79           Say Y here if you want to use the Broadcom iProc PCIe controller
80           through the generic platform bus interface
81
82 config PCIE_IPROC_BCMA
83         tristate "Broadcom iProc BCMA PCIe controller"
84         depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
85         select PCIE_IPROC
86         select BCMA
87         default ARCH_BCM_5301X
88         help
89           Say Y here if you want to use the Broadcom iProc PCIe controller
90           through the BCMA bus interface
91
92 config PCIE_IPROC_MSI
93         bool "Broadcom iProc PCIe MSI support"
94         depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
95         depends on PCI_MSI
96         default ARCH_BCM_IPROC
97         help
98           Say Y here if you want to enable MSI support for Broadcom's iProc
99           PCIe controller
100
101 config PCI_HOST_THUNDER_PEM
102         bool "Cavium Thunder PCIe controller to off-chip devices"
103         depends on ARM64 || COMPILE_TEST
104         depends on OF || (ACPI && PCI_QUIRKS)
105         select PCI_HOST_COMMON
106         help
107           Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
108
109 config PCI_HOST_THUNDER_ECAM
110         bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
111         depends on ARM64 || COMPILE_TEST
112         depends on OF || (ACPI && PCI_QUIRKS)
113         select PCI_HOST_COMMON
114         help
115           Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
116
117 config PCI_FTPCI100
118         bool "Faraday Technology FTPCI100 PCI controller"
119         depends on OF
120         default ARCH_GEMINI
121
122 config PCI_HOST_COMMON
123         tristate
124         select PCI_ECAM
125
126 config PCI_HOST_GENERIC
127         tristate "Generic PCI host controller"
128         depends on OF
129         select PCI_HOST_COMMON
130         select IRQ_DOMAIN
131         help
132           Say Y here if you want to support a simple generic PCI host
133           controller, such as the one emulated by kvmtool.
134
135 config PCIE_HISI_ERR
136         depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
137         bool "HiSilicon HIP PCIe controller error handling driver"
138         help
139           Say Y here if you want error handling support
140           for the PCIe controller's errors on HiSilicon HIP SoCs
141
142 config PCI_IXP4XX
143         bool "Intel IXP4xx PCI controller"
144         depends on ARM && OF
145         depends on ARCH_IXP4XX || COMPILE_TEST
146         default ARCH_IXP4XX
147         help
148           Say Y here if you want support for the PCI host controller found
149           in the Intel IXP4xx XScale-based network processor SoC.
150
151 config VMD
152         depends on PCI_MSI && X86_64 && !UML
153         tristate "Intel Volume Management Device Driver"
154         help
155           Adds support for the Intel Volume Management Device (VMD). VMD is a
156           secondary PCI host bridge that allows PCI Express root ports,
157           and devices attached to them, to be removed from the default
158           PCI domain and placed within the VMD domain. This provides
159           more bus resources than are otherwise possible with a
160           single domain. If you know your system provides one of these and
161           has devices attached to it, say Y; if you are not sure, say N.
162
163           To compile this driver as a module, choose M here: the
164           module will be called vmd.
165
166 config PCI_LOONGSON
167         bool "LOONGSON PCIe controller"
168         depends on MACH_LOONGSON64 || COMPILE_TEST
169         depends on OF || ACPI
170         depends on PCI_QUIRKS
171         default MACH_LOONGSON64
172         help
173           Say Y here if you want to enable PCI controller support on
174           Loongson systems.
175
176 config PCI_MVEBU
177         tristate "Marvell EBU PCIe controller"
178         depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
179         depends on MVEBU_MBUS
180         depends on ARM
181         depends on OF
182         depends on BROKEN
183         select PCI_BRIDGE_EMUL
184         help
185          Add support for Marvell EBU PCIe controller. This PCIe controller
186          is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
187          Armada XP, Armada 375, Armada 38x and Armada 39x.
188
189 config PCIE_MEDIATEK
190         tristate "MediaTek PCIe controller"
191         depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
192         depends on OF
193         depends on PCI_MSI
194         help
195           Say Y here if you want to enable PCIe controller support on
196           MediaTek SoCs.
197
198 config PCIE_MEDIATEK_GEN3
199         tristate "MediaTek Gen3 PCIe controller"
200         depends on ARCH_MEDIATEK || COMPILE_TEST
201         depends on PCI_MSI
202         help
203           Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
204           This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
205           and support up to 256 MSI interrupt numbers for
206           multi-function devices.
207
208           Say Y here if you want to enable Gen3 PCIe controller support on
209           MediaTek SoCs.
210
211 config PCIE_MT7621
212         tristate "MediaTek MT7621 PCIe controller"
213         depends on SOC_MT7621 || COMPILE_TEST
214         select PHY_MT7621_PCI
215         default SOC_MT7621
216         help
217           This selects a driver for the MediaTek MT7621 PCIe Controller.
218
219 config PCIE_MICROCHIP_HOST
220         bool "Microchip AXI PCIe controller"
221         depends on PCI_MSI && OF
222         select PCI_HOST_COMMON
223         help
224           Say Y here if you want kernel to support the Microchip AXI PCIe
225           Host Bridge driver.
226
227 config PCI_HYPERV_INTERFACE
228         tristate "Microsoft Hyper-V PCI Interface"
229         depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI
230         help
231           The Hyper-V PCI Interface is a helper driver that allows other
232           drivers to have a common interface with the Hyper-V PCI frontend
233           driver.
234
235 config PCI_TEGRA
236         bool "NVIDIA Tegra PCIe controller"
237         depends on ARCH_TEGRA || COMPILE_TEST
238         depends on PCI_MSI
239         help
240           Say Y here if you want support for the PCIe host controller found
241           on NVIDIA Tegra SoCs.
242
243 config PCIE_RCAR_HOST
244         bool "Renesas R-Car PCIe controller (host mode)"
245         depends on ARCH_RENESAS || COMPILE_TEST
246         depends on PCI_MSI
247         help
248           Say Y here if you want PCIe controller support on R-Car SoCs in host
249           mode.
250
251 config PCIE_RCAR_EP
252         bool "Renesas R-Car PCIe controller (endpoint mode)"
253         depends on ARCH_RENESAS || COMPILE_TEST
254         depends on PCI_ENDPOINT
255         help
256           Say Y here if you want PCIe controller support on R-Car SoCs in
257           endpoint mode.
258
259 config PCI_RCAR_GEN2
260         bool "Renesas R-Car Gen2 Internal PCI controller"
261         depends on ARCH_RENESAS || COMPILE_TEST
262         depends on ARM
263         help
264           Say Y here if you want internal PCI support on R-Car Gen2 SoC.
265           There are 3 internal PCI controllers available with a single
266           built-in EHCI/OHCI host controller present on each one.
267
268 config PCIE_ROCKCHIP
269         bool
270         depends on PCI
271
272 config PCIE_ROCKCHIP_HOST
273         tristate "Rockchip PCIe controller (host mode)"
274         depends on ARCH_ROCKCHIP || COMPILE_TEST
275         depends on OF
276         depends on PCI_MSI
277         select MFD_SYSCON
278         select PCIE_ROCKCHIP
279         help
280           Say Y here if you want internal PCI support on Rockchip SoC.
281           There is 1 internal PCIe port available to support GEN2 with
282           4 slots.
283
284 config PCIE_ROCKCHIP_EP
285         bool "Rockchip PCIe controller (endpoint mode)"
286         depends on ARCH_ROCKCHIP || COMPILE_TEST
287         depends on OF
288         depends on PCI_ENDPOINT
289         select MFD_SYSCON
290         select PCIE_ROCKCHIP
291         help
292           Say Y here if you want to support Rockchip PCIe controller in
293           endpoint mode on Rockchip SoC. There is 1 internal PCIe port
294           available to support GEN2 with 4 slots.
295
296 config PCI_V3_SEMI
297         bool "V3 Semiconductor PCI controller"
298         depends on OF
299         depends on ARM || COMPILE_TEST
300         default ARCH_INTEGRATOR_AP
301
302 config PCI_XGENE
303         bool "X-Gene PCIe controller"
304         depends on ARM64 || COMPILE_TEST
305         depends on OF || (ACPI && PCI_QUIRKS)
306         help
307           Say Y here if you want internal PCI support on APM X-Gene SoC.
308           There are 5 internal PCIe ports available. Each port is GEN3 capable
309           and have varied lanes from x1 to x8.
310
311 config PCI_XGENE_MSI
312         bool "X-Gene v1 PCIe MSI feature"
313         depends on PCI_XGENE
314         depends on PCI_MSI
315         default y
316         help
317           Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
318           This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
319
320 config PCIE_XILINX
321         bool "Xilinx AXI PCIe controller"
322         depends on OF
323         depends on PCI_MSI
324         help
325           Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
326           Host Bridge driver.
327
328 config PCIE_XILINX_NWL
329         bool "Xilinx NWL PCIe controller"
330         depends on ARCH_ZYNQMP || COMPILE_TEST
331         depends on PCI_MSI
332         help
333          Say 'Y' here if you want kernel support for Xilinx
334          NWL PCIe controller. The controller can act as Root Port
335          or End Point. The current option selection will only
336          support root port enabling.
337
338 config PCIE_XILINX_CPM
339         bool "Xilinx Versal CPM PCI controller"
340         depends on ARCH_ZYNQMP || COMPILE_TEST
341         select PCI_HOST_COMMON
342         help
343           Say 'Y' here if you want kernel support for the
344           Xilinx Versal CPM host bridge.
345
346 source "drivers/pci/controller/cadence/Kconfig"
347 source "drivers/pci/controller/dwc/Kconfig"
348 source "drivers/pci/controller/mobiveil/Kconfig"
349 endmenu