xref: /openbmc/linux/drivers/pci/controller/Kconfig (revision 337cbeb2)
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	bool "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
58	bool "Renesas R-Car PCIe 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.
63
64config PCI_HOST_COMMON
65	bool
66	select PCI_ECAM
67
68config PCI_HOST_GENERIC
69	bool "Generic PCI host controller"
70	depends on OF
71	select PCI_HOST_COMMON
72	select IRQ_DOMAIN
73	help
74	  Say Y here if you want to support a simple generic PCI host
75	  controller, such as the one emulated by kvmtool.
76
77config PCIE_XILINX
78	bool "Xilinx AXI PCIe host bridge support"
79	depends on OF || COMPILE_TEST
80	help
81	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
82	  Host Bridge driver.
83
84config PCI_XGENE
85	bool "X-Gene PCIe controller"
86	depends on ARM64 || COMPILE_TEST
87	depends on OF || (ACPI && PCI_QUIRKS)
88	help
89	  Say Y here if you want internal PCI support on APM X-Gene SoC.
90	  There are 5 internal PCIe ports available. Each port is GEN3 capable
91	  and have varied lanes from x1 to x8.
92
93config PCI_XGENE_MSI
94	bool "X-Gene v1 PCIe MSI feature"
95	depends on PCI_XGENE
96	depends on PCI_MSI_IRQ_DOMAIN
97	default y
98	help
99	  Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
100	  This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
101
102config PCI_V3_SEMI
103	bool "V3 Semiconductor PCI controller"
104	depends on OF
105	depends on ARM || COMPILE_TEST
106	default ARCH_INTEGRATOR_AP
107
108config PCI_VERSATILE
109	bool "ARM Versatile PB PCI controller"
110	depends on ARCH_VERSATILE || COMPILE_TEST
111
112config PCIE_IPROC
113	tristate
114	help
115	  This enables the iProc PCIe core controller support for Broadcom's
116	  iProc family of SoCs. An appropriate bus interface driver needs
117	  to be enabled to select this.
118
119config PCIE_IPROC_PLATFORM
120	tristate "Broadcom iProc PCIe platform bus driver"
121	depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
122	depends on OF
123	select PCIE_IPROC
124	default ARCH_BCM_IPROC
125	help
126	  Say Y here if you want to use the Broadcom iProc PCIe controller
127	  through the generic platform bus interface
128
129config PCIE_IPROC_BCMA
130	tristate "Broadcom iProc PCIe BCMA bus driver"
131	depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
132	select PCIE_IPROC
133	select BCMA
134	default ARCH_BCM_5301X
135	help
136	  Say Y here if you want to use the Broadcom iProc PCIe controller
137	  through the BCMA bus interface
138
139config PCIE_IPROC_MSI
140	bool "Broadcom iProc PCIe MSI support"
141	depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
142	depends on PCI_MSI_IRQ_DOMAIN
143	default ARCH_BCM_IPROC
144	help
145	  Say Y here if you want to enable MSI support for Broadcom's iProc
146	  PCIe controller
147
148config PCIE_ALTERA
149	tristate "Altera PCIe controller"
150	depends on ARM || NIOS2 || ARM64 || COMPILE_TEST
151	help
152	  Say Y here if you want to enable PCIe controller support on Altera
153	  FPGA.
154
155config PCIE_ALTERA_MSI
156	tristate "Altera PCIe MSI feature"
157	depends on PCIE_ALTERA
158	depends on PCI_MSI_IRQ_DOMAIN
159	help
160	  Say Y here if you want PCIe MSI support for the Altera FPGA.
161	  This MSI driver supports Altera MSI to GIC controller IP.
162
163config PCI_HOST_THUNDER_PEM
164	bool "Cavium Thunder PCIe controller to off-chip devices"
165	depends on ARM64 || COMPILE_TEST
166	depends on OF || (ACPI && PCI_QUIRKS)
167	select PCI_HOST_COMMON
168	help
169	  Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
170
171config PCI_HOST_THUNDER_ECAM
172	bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
173	depends on ARM64 || COMPILE_TEST
174	depends on OF || (ACPI && PCI_QUIRKS)
175	select PCI_HOST_COMMON
176	help
177	  Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
178
179config PCIE_ROCKCHIP
180	bool
181	depends on PCI
182
183config PCIE_ROCKCHIP_HOST
184	tristate "Rockchip PCIe host controller"
185	depends on ARCH_ROCKCHIP || COMPILE_TEST
186	depends on OF
187	depends on PCI_MSI_IRQ_DOMAIN
188	select MFD_SYSCON
189	select PCIE_ROCKCHIP
190	help
191	  Say Y here if you want internal PCI support on Rockchip SoC.
192	  There is 1 internal PCIe port available to support GEN2 with
193	  4 slots.
194
195config PCIE_ROCKCHIP_EP
196	bool "Rockchip PCIe endpoint controller"
197	depends on ARCH_ROCKCHIP || COMPILE_TEST
198	depends on OF
199	depends on PCI_ENDPOINT
200	select MFD_SYSCON
201	select PCIE_ROCKCHIP
202	help
203	  Say Y here if you want to support Rockchip PCIe controller in
204	  endpoint mode on Rockchip SoC. There is 1 internal PCIe port
205	  available to support GEN2 with 4 slots.
206
207config PCIE_MEDIATEK
208	tristate "MediaTek PCIe controller"
209	depends on ARCH_MEDIATEK || COMPILE_TEST
210	depends on OF
211	depends on PCI_MSI_IRQ_DOMAIN
212	help
213	  Say Y here if you want to enable PCIe controller support on
214	  MediaTek SoCs.
215
216config PCIE_TANGO_SMP8759
217	bool "Tango SMP8759 PCIe controller (DANGEROUS)"
218	depends on ARCH_TANGO && PCI_MSI && OF
219	depends on BROKEN
220	select PCI_HOST_COMMON
221	help
222	  Say Y here to enable PCIe controller support for Sigma Designs
223	  Tango SMP8759-based systems.
224
225	  Note: The SMP8759 controller multiplexes PCI config and MMIO
226	  accesses, and Linux doesn't provide a way to serialize them.
227	  This can lead to data corruption if drivers perform concurrent
228	  config and MMIO accesses.
229
230config VMD
231	depends on PCI_MSI && X86_64 && SRCU
232	tristate "Intel Volume Management Device Driver"
233	---help---
234	  Adds support for the Intel Volume Management Device (VMD). VMD is a
235	  secondary PCI host bridge that allows PCI Express root ports,
236	  and devices attached to them, to be removed from the default
237	  PCI domain and placed within the VMD domain. This provides
238	  more bus resources than are otherwise possible with a
239	  single domain. If you know your system provides one of these and
240	  has devices attached to it, say Y; if you are not sure, say N.
241
242	  To compile this driver as a module, choose M here: the
243	  module will be called vmd.
244
245config PCIE_BRCMSTB
246	tristate "Broadcom Brcmstb PCIe host controller"
247	depends on ARCH_BCM2835 || COMPILE_TEST
248	depends on OF
249	depends on PCI_MSI_IRQ_DOMAIN
250	help
251	  Say Y here to enable PCIe host controller support for
252	  Broadcom STB based SoCs, like the Raspberry Pi 4.
253
254config PCI_HYPERV_INTERFACE
255	tristate "Hyper-V PCI Interface"
256	depends on X86 && HYPERV && PCI_MSI && PCI_MSI_IRQ_DOMAIN && X86_64
257	help
258	  The Hyper-V PCI Interface is a helper driver allows other drivers to
259	  have a common interface with the Hyper-V PCI frontend driver.
260
261source "drivers/pci/controller/dwc/Kconfig"
262source "drivers/pci/controller/mobiveil/Kconfig"
263source "drivers/pci/controller/cadence/Kconfig"
264endmenu
265