Merge tag 'drm-intel-fixes-2023-08-17' of git://anongit.freedesktop.org/drm/drm-intel...
[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         select PCI_BRIDGE_EMUL
183         help
184          Add support for Marvell EBU PCIe controller. This PCIe controller
185          is used on 32-bit Marvell ARM SoCs: Dove, Kirkwood, Armada 370,
186          Armada XP, Armada 375, Armada 38x and Armada 39x.
187
188 config PCIE_MEDIATEK
189         tristate "MediaTek PCIe controller"
190         depends on ARCH_AIROHA || ARCH_MEDIATEK || COMPILE_TEST
191         depends on OF
192         depends on PCI_MSI
193         help
194           Say Y here if you want to enable PCIe controller support on
195           MediaTek SoCs.
196
197 config PCIE_MEDIATEK_GEN3
198         tristate "MediaTek Gen3 PCIe controller"
199         depends on ARCH_MEDIATEK || COMPILE_TEST
200         depends on PCI_MSI
201         help
202           Adds support for PCIe Gen3 MAC controller for MediaTek SoCs.
203           This PCIe controller is compatible with Gen3, Gen2 and Gen1 speed,
204           and support up to 256 MSI interrupt numbers for
205           multi-function devices.
206
207           Say Y here if you want to enable Gen3 PCIe controller support on
208           MediaTek SoCs.
209
210 config PCIE_MT7621
211         tristate "MediaTek MT7621 PCIe controller"
212         depends on SOC_MT7621 || COMPILE_TEST
213         select PHY_MT7621_PCI
214         default SOC_MT7621
215         help
216           This selects a driver for the MediaTek MT7621 PCIe Controller.
217
218 config PCIE_MICROCHIP_HOST
219         bool "Microchip AXI PCIe controller"
220         depends on PCI_MSI && OF
221         select PCI_HOST_COMMON
222         help
223           Say Y here if you want kernel to support the Microchip AXI PCIe
224           Host Bridge driver.
225
226 config PCI_HYPERV_INTERFACE
227         tristate "Microsoft Hyper-V PCI Interface"
228         depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI
229         help
230           The Hyper-V PCI Interface is a helper driver that allows other
231           drivers to have a common interface with the Hyper-V PCI frontend
232           driver.
233
234 config PCI_TEGRA
235         bool "NVIDIA Tegra PCIe controller"
236         depends on ARCH_TEGRA || COMPILE_TEST
237         depends on PCI_MSI
238         help
239           Say Y here if you want support for the PCIe host controller found
240           on NVIDIA Tegra SoCs.
241
242 config PCIE_RCAR_HOST
243         bool "Renesas R-Car PCIe controller (host mode)"
244         depends on ARCH_RENESAS || COMPILE_TEST
245         depends on PCI_MSI
246         help
247           Say Y here if you want PCIe controller support on R-Car SoCs in host
248           mode.
249
250 config PCIE_RCAR_EP
251         bool "Renesas R-Car PCIe controller (endpoint mode)"
252         depends on ARCH_RENESAS || COMPILE_TEST
253         depends on PCI_ENDPOINT
254         help
255           Say Y here if you want PCIe controller support on R-Car SoCs in
256           endpoint mode.
257
258 config PCI_RCAR_GEN2
259         bool "Renesas R-Car Gen2 Internal PCI controller"
260         depends on ARCH_RENESAS || COMPILE_TEST
261         depends on ARM
262         help
263           Say Y here if you want internal PCI support on R-Car Gen2 SoC.
264           There are 3 internal PCI controllers available with a single
265           built-in EHCI/OHCI host controller present on each one.
266
267 config PCIE_ROCKCHIP
268         bool
269         depends on PCI
270
271 config PCIE_ROCKCHIP_HOST
272         tristate "Rockchip PCIe controller (host mode)"
273         depends on ARCH_ROCKCHIP || COMPILE_TEST
274         depends on OF
275         depends on PCI_MSI
276         select MFD_SYSCON
277         select PCIE_ROCKCHIP
278         help
279           Say Y here if you want internal PCI support on Rockchip SoC.
280           There is 1 internal PCIe port available to support GEN2 with
281           4 slots.
282
283 config PCIE_ROCKCHIP_EP
284         bool "Rockchip PCIe controller (endpoint mode)"
285         depends on ARCH_ROCKCHIP || COMPILE_TEST
286         depends on OF
287         depends on PCI_ENDPOINT
288         select MFD_SYSCON
289         select PCIE_ROCKCHIP
290         help
291           Say Y here if you want to support Rockchip PCIe controller in
292           endpoint mode on Rockchip SoC. There is 1 internal PCIe port
293           available to support GEN2 with 4 slots.
294
295 config PCI_V3_SEMI
296         bool "V3 Semiconductor PCI controller"
297         depends on OF
298         depends on ARM || COMPILE_TEST
299         default ARCH_INTEGRATOR_AP
300
301 config PCI_XGENE
302         bool "X-Gene PCIe controller"
303         depends on ARM64 || COMPILE_TEST
304         depends on OF || (ACPI && PCI_QUIRKS)
305         help
306           Say Y here if you want internal PCI support on APM X-Gene SoC.
307           There are 5 internal PCIe ports available. Each port is GEN3 capable
308           and have varied lanes from x1 to x8.
309
310 config PCI_XGENE_MSI
311         bool "X-Gene v1 PCIe MSI feature"
312         depends on PCI_XGENE
313         depends on PCI_MSI
314         default y
315         help
316           Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
317           This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
318
319 config PCIE_XILINX
320         bool "Xilinx AXI PCIe controller"
321         depends on OF
322         depends on PCI_MSI
323         help
324           Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
325           Host Bridge driver.
326
327 config PCIE_XILINX_NWL
328         bool "Xilinx NWL PCIe controller"
329         depends on ARCH_ZYNQMP || COMPILE_TEST
330         depends on PCI_MSI
331         help
332          Say 'Y' here if you want kernel support for Xilinx
333          NWL PCIe controller. The controller can act as Root Port
334          or End Point. The current option selection will only
335          support root port enabling.
336
337 config PCIE_XILINX_CPM
338         bool "Xilinx Versal CPM PCI controller"
339         depends on ARCH_ZYNQMP || COMPILE_TEST
340         select PCI_HOST_COMMON
341         help
342           Say 'Y' here if you want kernel support for the
343           Xilinx Versal CPM host bridge.
344
345 source "drivers/pci/controller/cadence/Kconfig"
346 source "drivers/pci/controller/dwc/Kconfig"
347 source "drivers/pci/controller/mobiveil/Kconfig"
348 endmenu