xref: /openbmc/linux/drivers/pci/controller/Kconfig (revision 8dda2eac)
1# SPDX-License-Identifier: GPL-2.0
2
3menu "PCI controller drivers"
4	depends on PCI
5
6config 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
14config 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
25config 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
35config PCI_FTPCI100
36	bool "Faraday Technology FTPCI100 PCI controller"
37	depends on OF
38	default ARCH_GEMINI
39
40config 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
48config 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
56config 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
65config 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
73config 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
81config PCI_HOST_COMMON
82	tristate
83	select PCI_ECAM
84
85config 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
94config 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
102config 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
110config 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
119config 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
128config 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
134config PCI_VERSATILE
135	bool "ARM Versatile PB PCI controller"
136	depends on ARCH_VERSATILE || COMPILE_TEST
137
138config 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
145config 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
155config 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
165config 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
174config 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
181config 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
189config 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
197config 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
205config PCIE_ROCKCHIP
206	bool
207	depends on PCI
208
209config 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
221config 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
233config 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
242config 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
255config 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
270config 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
280config 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
287config 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
297config 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
307config 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
314source "drivers/pci/controller/dwc/Kconfig"
315source "drivers/pci/controller/mobiveil/Kconfig"
316source "drivers/pci/controller/cadence/Kconfig"
317endmenu
318