xref: /openbmc/linux/drivers/pci/controller/Kconfig (revision ffcdf473)
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	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
189config 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
198config 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
211config 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
219config 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
227config 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
235config 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
243config 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
251config 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
259config 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
268config PCIE_ROCKCHIP
269	bool
270	depends on PCI
271
272config 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
284config 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
296config 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
302config 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
311config 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
320config 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
328config 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
338config 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
346source "drivers/pci/controller/cadence/Kconfig"
347source "drivers/pci/controller/dwc/Kconfig"
348source "drivers/pci/controller/mobiveil/Kconfig"
349endmenu
350