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