xref: /openbmc/linux/drivers/pci/controller/Kconfig (revision 31e67366)
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_TEGRA
41	bool "NVIDIA Tegra PCIe controller"
42	depends on ARCH_TEGRA || COMPILE_TEST
43	depends on PCI_MSI_IRQ_DOMAIN
44	select PCI_MSI_ARCH_FALLBACKS
45	help
46	  Say Y here if you want support for the PCIe host controller found
47	  on NVIDIA Tegra SoCs.
48
49config PCI_RCAR_GEN2
50	bool "Renesas R-Car Gen2 Internal PCI controller"
51	depends on ARCH_RENESAS || COMPILE_TEST
52	depends on ARM
53	help
54	  Say Y here if you want internal PCI support on R-Car Gen2 SoC.
55	  There are 3 internal PCI controllers available with a single
56	  built-in EHCI/OHCI host controller present on each one.
57
58config PCIE_RCAR_HOST
59	bool "Renesas R-Car PCIe host controller"
60	depends on ARCH_RENESAS || COMPILE_TEST
61	depends on PCI_MSI_IRQ_DOMAIN
62	select PCI_MSI_ARCH_FALLBACKS
63	help
64	  Say Y here if you want PCIe controller support on R-Car SoCs in host
65	  mode.
66
67config PCIE_RCAR_EP
68	bool "Renesas R-Car PCIe endpoint controller"
69	depends on ARCH_RENESAS || COMPILE_TEST
70	depends on PCI_ENDPOINT
71	help
72	  Say Y here if you want PCIe controller support on R-Car SoCs in
73	  endpoint mode.
74
75config PCI_HOST_COMMON
76	tristate
77	select PCI_ECAM
78
79config PCI_HOST_GENERIC
80	tristate "Generic PCI host controller"
81	depends on OF
82	select PCI_HOST_COMMON
83	select IRQ_DOMAIN
84	help
85	  Say Y here if you want to support a simple generic PCI host
86	  controller, such as the one emulated by kvmtool.
87
88config PCIE_XILINX
89	bool "Xilinx AXI PCIe host bridge support"
90	depends on OF || COMPILE_TEST
91	select PCI_MSI_ARCH_FALLBACKS
92	help
93	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
94	  Host Bridge driver.
95
96config PCIE_XILINX_CPM
97	bool "Xilinx Versal CPM host bridge support"
98	depends on ARCH_ZYNQMP || COMPILE_TEST
99	select PCI_HOST_COMMON
100	help
101	  Say 'Y' here if you want kernel support for the
102	  Xilinx Versal CPM host bridge.
103
104config PCI_XGENE
105	bool "X-Gene PCIe controller"
106	depends on ARM64 || COMPILE_TEST
107	depends on OF || (ACPI && PCI_QUIRKS)
108	help
109	  Say Y here if you want internal PCI support on APM X-Gene SoC.
110	  There are 5 internal PCIe ports available. Each port is GEN3 capable
111	  and have varied lanes from x1 to x8.
112
113config PCI_XGENE_MSI
114	bool "X-Gene v1 PCIe MSI feature"
115	depends on PCI_XGENE
116	depends on PCI_MSI_IRQ_DOMAIN
117	default y
118	help
119	  Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
120	  This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
121
122config PCI_V3_SEMI
123	bool "V3 Semiconductor PCI controller"
124	depends on OF
125	depends on ARM || COMPILE_TEST
126	default ARCH_INTEGRATOR_AP
127
128config PCI_VERSATILE
129	bool "ARM Versatile PB PCI controller"
130	depends on ARCH_VERSATILE || COMPILE_TEST
131
132config PCIE_IPROC
133	tristate
134	help
135	  This enables the iProc PCIe core controller support for Broadcom's
136	  iProc family of SoCs. An appropriate bus interface driver needs
137	  to be enabled to select this.
138
139config PCIE_IPROC_PLATFORM
140	tristate "Broadcom iProc PCIe platform bus driver"
141	depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
142	depends on OF
143	select PCIE_IPROC
144	default ARCH_BCM_IPROC
145	help
146	  Say Y here if you want to use the Broadcom iProc PCIe controller
147	  through the generic platform bus interface
148
149config PCIE_IPROC_BCMA
150	tristate "Broadcom iProc PCIe BCMA bus driver"
151	depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
152	select PCIE_IPROC
153	select BCMA
154	default ARCH_BCM_5301X
155	help
156	  Say Y here if you want to use the Broadcom iProc PCIe controller
157	  through the BCMA bus interface
158
159config PCIE_IPROC_MSI
160	bool "Broadcom iProc PCIe MSI support"
161	depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
162	depends on PCI_MSI_IRQ_DOMAIN
163	default ARCH_BCM_IPROC
164	help
165	  Say Y here if you want to enable MSI support for Broadcom's iProc
166	  PCIe controller
167
168config PCIE_ALTERA
169	tristate "Altera PCIe controller"
170	depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
171	help
172	  Say Y here if you want to enable PCIe controller support on Altera
173	  FPGA.
174
175config PCIE_ALTERA_MSI
176	tristate "Altera PCIe MSI feature"
177	depends on PCIE_ALTERA
178	depends on PCI_MSI_IRQ_DOMAIN
179	help
180	  Say Y here if you want PCIe MSI support for the Altera FPGA.
181	  This MSI driver supports Altera MSI to GIC controller IP.
182
183config PCI_HOST_THUNDER_PEM
184	bool "Cavium Thunder PCIe controller to off-chip devices"
185	depends on ARM64 || COMPILE_TEST
186	depends on OF || (ACPI && PCI_QUIRKS)
187	select PCI_HOST_COMMON
188	help
189	  Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
190
191config PCI_HOST_THUNDER_ECAM
192	bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
193	depends on ARM64 || COMPILE_TEST
194	depends on OF || (ACPI && PCI_QUIRKS)
195	select PCI_HOST_COMMON
196	help
197	  Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
198
199config PCIE_ROCKCHIP
200	bool
201	depends on PCI
202
203config PCIE_ROCKCHIP_HOST
204	tristate "Rockchip PCIe host controller"
205	depends on ARCH_ROCKCHIP || COMPILE_TEST
206	depends on OF
207	depends on PCI_MSI_IRQ_DOMAIN
208	select MFD_SYSCON
209	select PCIE_ROCKCHIP
210	help
211	  Say Y here if you want internal PCI support on Rockchip SoC.
212	  There is 1 internal PCIe port available to support GEN2 with
213	  4 slots.
214
215config PCIE_ROCKCHIP_EP
216	bool "Rockchip PCIe endpoint controller"
217	depends on ARCH_ROCKCHIP || COMPILE_TEST
218	depends on OF
219	depends on PCI_ENDPOINT
220	select MFD_SYSCON
221	select PCIE_ROCKCHIP
222	help
223	  Say Y here if you want to support Rockchip PCIe controller in
224	  endpoint mode on Rockchip SoC. There is 1 internal PCIe port
225	  available to support GEN2 with 4 slots.
226
227config PCIE_MEDIATEK
228	tristate "MediaTek PCIe controller"
229	depends on ARCH_MEDIATEK || COMPILE_TEST
230	depends on OF
231	depends on PCI_MSI_IRQ_DOMAIN
232	help
233	  Say Y here if you want to enable PCIe controller support on
234	  MediaTek SoCs.
235
236config VMD
237	depends on PCI_MSI && X86_64 && SRCU
238	tristate "Intel Volume Management Device Driver"
239	help
240	  Adds support for the Intel Volume Management Device (VMD). VMD is a
241	  secondary PCI host bridge that allows PCI Express root ports,
242	  and devices attached to them, to be removed from the default
243	  PCI domain and placed within the VMD domain. This provides
244	  more bus resources than are otherwise possible with a
245	  single domain. If you know your system provides one of these and
246	  has devices attached to it, say Y; if you are not sure, say N.
247
248	  To compile this driver as a module, choose M here: the
249	  module will be called vmd.
250
251config PCIE_BRCMSTB
252	tristate "Broadcom Brcmstb PCIe host controller"
253	depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || COMPILE_TEST
254	depends on OF
255	depends on PCI_MSI_IRQ_DOMAIN
256	default ARCH_BRCMSTB
257	help
258	  Say Y here to enable PCIe host controller support for
259	  Broadcom STB based SoCs, like the Raspberry Pi 4.
260
261config PCI_HYPERV_INTERFACE
262	tristate "Hyper-V PCI Interface"
263	depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
264	help
265	  The Hyper-V PCI Interface is a helper driver allows other drivers to
266	  have a common interface with the Hyper-V PCI frontend driver.
267
268config PCI_LOONGSON
269	bool "LOONGSON PCI Controller"
270	depends on MACH_LOONGSON64 || COMPILE_TEST
271	depends on OF
272	depends on PCI_QUIRKS
273	default MACH_LOONGSON64
274	help
275	  Say Y here if you want to enable PCI controller support on
276	  Loongson systems.
277
278config PCIE_MICROCHIP_HOST
279	bool "Microchip AXI PCIe host bridge support"
280	depends on PCI_MSI && OF
281	select PCI_MSI_IRQ_DOMAIN
282	select GENERIC_MSI_IRQ_DOMAIN
283	select PCI_HOST_COMMON
284	help
285	  Say Y here if you want kernel to support the Microchip AXI PCIe
286	  Host Bridge driver.
287
288config PCIE_HISI_ERR
289	depends on ACPI_APEI_GHES && (ARM64 || COMPILE_TEST)
290	bool "HiSilicon HIP PCIe controller error handling driver"
291	help
292	  Say Y here if you want error handling support
293	  for the PCIe controller's errors on HiSilicon HIP SoCs
294
295source "drivers/pci/controller/dwc/Kconfig"
296source "drivers/pci/controller/mobiveil/Kconfig"
297source "drivers/pci/controller/cadence/Kconfig"
298endmenu
299