Loading...
Note: File does not exist in v3.5.6.
1# SPDX-License-Identifier: GPL-2.0
2
3menu "PCI controller drivers"
4 depends on PCI
5
6config 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
17config 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
24config 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
32config PCIE_APPLE_MSI_DOORBELL_ADDR
33 hex
34 default 0xfffff000
35 depends on PCIE_APPLE
36
37config 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
50config PCI_VERSATILE
51 bool "ARM Versatile PB PCI controller"
52 depends on ARCH_VERSATILE || COMPILE_TEST
53
54config 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
65config 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
72config 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
82config 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
92config 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
101config 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
109config 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
117config PCI_FTPCI100
118 bool "Faraday Technology FTPCI100 PCI controller"
119 depends on OF
120 default ARCH_GEMINI
121
122config PCI_HOST_COMMON
123 tristate
124 select PCI_ECAM
125
126config 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
135config 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
142config 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
151config 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
166config 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
176config 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
188config 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
197config PCIE_MEDIATEK_GEN3
198 tristate "MediaTek Gen3 PCIe controller"
199 depends on ARCH_AIROHA || 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
210config 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
218config PCI_HYPERV_INTERFACE
219 tristate "Microsoft Hyper-V PCI Interface"
220 depends on ((X86 && X86_64) || ARM64) && HYPERV && PCI_MSI
221 help
222 The Hyper-V PCI Interface is a helper driver that allows other
223 drivers to have a common interface with the Hyper-V PCI frontend
224 driver.
225
226config PCI_TEGRA
227 bool "NVIDIA Tegra PCIe controller"
228 depends on ARCH_TEGRA || COMPILE_TEST
229 depends on PCI_MSI
230 help
231 Say Y here if you want support for the PCIe host controller found
232 on NVIDIA Tegra SoCs.
233
234config PCIE_RCAR_HOST
235 bool "Renesas R-Car PCIe controller (host mode)"
236 depends on ARCH_RENESAS || COMPILE_TEST
237 depends on PCI_MSI
238 help
239 Say Y here if you want PCIe controller support on R-Car SoCs in host
240 mode.
241
242config PCIE_RCAR_EP
243 bool "Renesas R-Car PCIe controller (endpoint mode)"
244 depends on ARCH_RENESAS || COMPILE_TEST
245 depends on PCI_ENDPOINT
246 help
247 Say Y here if you want PCIe controller support on R-Car SoCs in
248 endpoint mode.
249
250config PCI_RCAR_GEN2
251 bool "Renesas R-Car Gen2 Internal PCI controller"
252 depends on ARCH_RENESAS || COMPILE_TEST
253 depends on ARM
254 help
255 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
256 There are 3 internal PCI controllers available with a single
257 built-in EHCI/OHCI host controller present on each one.
258
259config PCIE_ROCKCHIP
260 bool
261 depends on PCI
262
263config PCIE_ROCKCHIP_HOST
264 tristate "Rockchip PCIe controller (host mode)"
265 depends on ARCH_ROCKCHIP || COMPILE_TEST
266 depends on OF
267 depends on PCI_MSI
268 select MFD_SYSCON
269 select PCIE_ROCKCHIP
270 help
271 Say Y here if you want internal PCI support on Rockchip SoC.
272 There is 1 internal PCIe port available to support GEN2 with
273 4 slots.
274
275config PCIE_ROCKCHIP_EP
276 bool "Rockchip PCIe controller (endpoint mode)"
277 depends on ARCH_ROCKCHIP || COMPILE_TEST
278 depends on OF
279 depends on PCI_ENDPOINT
280 select MFD_SYSCON
281 select PCIE_ROCKCHIP
282 help
283 Say Y here if you want to support Rockchip PCIe controller in
284 endpoint mode on Rockchip SoC. There is 1 internal PCIe port
285 available to support GEN2 with 4 slots.
286
287config PCI_V3_SEMI
288 bool "V3 Semiconductor PCI controller"
289 depends on OF
290 depends on ARM || COMPILE_TEST
291 default ARCH_INTEGRATOR_AP
292
293config PCI_XGENE
294 bool "X-Gene PCIe controller"
295 depends on ARM64 || COMPILE_TEST
296 depends on OF || (ACPI && PCI_QUIRKS)
297 help
298 Say Y here if you want internal PCI support on APM X-Gene SoC.
299 There are 5 internal PCIe ports available. Each port is GEN3 capable
300 and have varied lanes from x1 to x8.
301
302config PCI_XGENE_MSI
303 bool "X-Gene v1 PCIe MSI feature"
304 depends on PCI_XGENE
305 depends on PCI_MSI
306 default y
307 help
308 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
309 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
310
311config PCIE_XILINX
312 bool "Xilinx AXI PCIe controller"
313 depends on OF
314 depends on PCI_MSI
315 help
316 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
317 Host Bridge driver.
318
319config PCIE_XILINX_DMA_PL
320 bool "Xilinx DMA PL PCIe host bridge support"
321 depends on ARCH_ZYNQMP || COMPILE_TEST
322 depends on PCI_MSI
323 select PCI_HOST_COMMON
324 help
325 Say 'Y' here if you want kernel support for the Xilinx PL DMA
326 PCIe host bridge. The controller is a Soft IP which can act as
327 Root Port. If your system provides Xilinx PCIe host controller
328 bridge DMA as Soft IP say 'Y'; if you are not sure, say 'N'.
329
330config PCIE_XILINX_NWL
331 bool "Xilinx NWL PCIe controller"
332 depends on ARCH_ZYNQMP || COMPILE_TEST
333 depends on PCI_MSI
334 help
335 Say 'Y' here if you want kernel support for Xilinx
336 NWL PCIe controller. The controller can act as Root Port
337 or End Point. The current option selection will only
338 support root port enabling.
339
340config PCIE_XILINX_CPM
341 bool "Xilinx Versal CPM PCI controller"
342 depends on ARCH_ZYNQMP || COMPILE_TEST
343 select PCI_HOST_COMMON
344 help
345 Say 'Y' here if you want kernel support for the
346 Xilinx Versal CPM host bridge.
347
348source "drivers/pci/controller/cadence/Kconfig"
349source "drivers/pci/controller/dwc/Kconfig"
350source "drivers/pci/controller/mobiveil/Kconfig"
351source "drivers/pci/controller/plda/Kconfig"
352endmenu