xref: /openbmc/linux/drivers/pci/controller/Kconfig (revision 98ddec80)
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
13config PCI_AARDVARK
14	bool "Aardvark PCIe controller"
15	depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
16	depends on OF
17	depends on PCI_MSI_IRQ_DOMAIN
18	help
19	 Add support for Aardvark 64bit PCIe Host Controller. This
20	 controller is part of the South Bridge of the Marvel Armada
21	 3700 SoC.
22
23menu "Cadence PCIe controllers support"
24
25config PCIE_CADENCE
26	bool
27
28config PCIE_CADENCE_HOST
29	bool "Cadence PCIe host controller"
30	depends on OF
31	depends on PCI
32	select IRQ_DOMAIN
33	select PCIE_CADENCE
34	help
35	  Say Y here if you want to support the Cadence PCIe controller in host
36	  mode. This PCIe controller may be embedded into many different vendors
37	  SoCs.
38
39config PCIE_CADENCE_EP
40	bool "Cadence PCIe endpoint controller"
41	depends on OF
42	depends on PCI_ENDPOINT
43	select PCIE_CADENCE
44	help
45	  Say Y here if you want to support the Cadence PCIe  controller in
46	  endpoint mode. This PCIe controller may be embedded into many
47	  different vendors SoCs.
48
49endmenu
50
51config PCIE_XILINX_NWL
52	bool "NWL PCIe Core"
53	depends on ARCH_ZYNQMP || COMPILE_TEST
54	depends on PCI_MSI_IRQ_DOMAIN
55	help
56	 Say 'Y' here if you want kernel support for Xilinx
57	 NWL PCIe controller. The controller can act as Root Port
58	 or End Point. The current option selection will only
59	 support root port enabling.
60
61config PCI_FTPCI100
62	bool "Faraday Technology FTPCI100 PCI controller"
63	depends on OF
64	default ARCH_GEMINI
65
66config PCI_TEGRA
67	bool "NVIDIA Tegra PCIe controller"
68	depends on ARCH_TEGRA || COMPILE_TEST
69	depends on PCI_MSI_IRQ_DOMAIN
70	help
71	  Say Y here if you want support for the PCIe host controller found
72	  on NVIDIA Tegra SoCs.
73
74config PCI_RCAR_GEN2
75	bool "Renesas R-Car Gen2 Internal PCI controller"
76	depends on ARCH_RENESAS || COMPILE_TEST
77	depends on ARM
78	help
79	  Say Y here if you want internal PCI support on R-Car Gen2 SoC.
80	  There are 3 internal PCI controllers available with a single
81	  built-in EHCI/OHCI host controller present on each one.
82
83config PCIE_RCAR
84	bool "Renesas R-Car PCIe controller"
85	depends on ARCH_RENESAS || COMPILE_TEST
86	depends on PCI_MSI_IRQ_DOMAIN
87	help
88	  Say Y here if you want PCIe controller support on R-Car SoCs.
89
90config PCI_HOST_COMMON
91	bool
92	select PCI_ECAM
93
94config PCI_HOST_GENERIC
95	bool "Generic PCI host controller"
96	depends on OF
97	select PCI_HOST_COMMON
98	select IRQ_DOMAIN
99	select PCI_DOMAINS
100	help
101	  Say Y here if you want to support a simple generic PCI host
102	  controller, such as the one emulated by kvmtool.
103
104config PCIE_XILINX
105	bool "Xilinx AXI PCIe host bridge support"
106	depends on ARCH_ZYNQ || MICROBLAZE || (MIPS && PCI_DRIVERS_GENERIC) || COMPILE_TEST
107	help
108	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
109	  Host Bridge driver.
110
111config PCI_XGENE
112	bool "X-Gene PCIe controller"
113	depends on ARM64 || COMPILE_TEST
114	depends on OF || (ACPI && PCI_QUIRKS)
115	help
116	  Say Y here if you want internal PCI support on APM X-Gene SoC.
117	  There are 5 internal PCIe ports available. Each port is GEN3 capable
118	  and have varied lanes from x1 to x8.
119
120config PCI_XGENE_MSI
121	bool "X-Gene v1 PCIe MSI feature"
122	depends on PCI_XGENE
123	depends on PCI_MSI_IRQ_DOMAIN
124	default y
125	help
126	  Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
127	  This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
128
129config PCI_V3_SEMI
130	bool "V3 Semiconductor PCI controller"
131	depends on OF
132	depends on ARM || COMPILE_TEST
133	default ARCH_INTEGRATOR_AP
134
135config PCI_VERSATILE
136	bool "ARM Versatile PB PCI controller"
137	depends on ARCH_VERSATILE
138
139config PCIE_IPROC
140	tristate
141	select PCI_DOMAINS
142	help
143	  This enables the iProc PCIe core controller support for Broadcom's
144	  iProc family of SoCs. An appropriate bus interface driver needs
145	  to be enabled to select this.
146
147config PCIE_IPROC_PLATFORM
148	tristate "Broadcom iProc PCIe platform bus driver"
149	depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
150	depends on OF
151	select PCIE_IPROC
152	default ARCH_BCM_IPROC
153	help
154	  Say Y here if you want to use the Broadcom iProc PCIe controller
155	  through the generic platform bus interface
156
157config PCIE_IPROC_BCMA
158	tristate "Broadcom iProc PCIe BCMA bus driver"
159	depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
160	select PCIE_IPROC
161	select BCMA
162	default ARCH_BCM_5301X
163	help
164	  Say Y here if you want to use the Broadcom iProc PCIe controller
165	  through the BCMA bus interface
166
167config PCIE_IPROC_MSI
168	bool "Broadcom iProc PCIe MSI support"
169	depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
170	depends on PCI_MSI_IRQ_DOMAIN
171	default ARCH_BCM_IPROC
172	help
173	  Say Y here if you want to enable MSI support for Broadcom's iProc
174	  PCIe controller
175
176config PCIE_ALTERA
177	bool "Altera PCIe controller"
178	depends on ARM || NIOS2 || COMPILE_TEST
179	select PCI_DOMAINS
180	help
181	  Say Y here if you want to enable PCIe controller support on Altera
182	  FPGA.
183
184config PCIE_ALTERA_MSI
185	bool "Altera PCIe MSI feature"
186	depends on PCIE_ALTERA
187	depends on PCI_MSI_IRQ_DOMAIN
188	help
189	  Say Y here if you want PCIe MSI support for the Altera FPGA.
190	  This MSI driver supports Altera MSI to GIC controller IP.
191
192config PCI_HOST_THUNDER_PEM
193	bool "Cavium Thunder PCIe controller to off-chip devices"
194	depends on ARM64 || COMPILE_TEST
195	depends on OF || (ACPI && PCI_QUIRKS)
196	select PCI_HOST_COMMON
197	help
198	  Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
199
200config PCI_HOST_THUNDER_ECAM
201	bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
202	depends on ARM64 || COMPILE_TEST
203	depends on OF || (ACPI && PCI_QUIRKS)
204	select PCI_HOST_COMMON
205	help
206	  Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
207
208config PCIE_ROCKCHIP
209	bool
210	depends on PCI
211
212config PCIE_ROCKCHIP_HOST
213	tristate "Rockchip PCIe host controller"
214	depends on ARCH_ROCKCHIP || COMPILE_TEST
215	depends on OF
216	depends on PCI_MSI_IRQ_DOMAIN
217	select MFD_SYSCON
218	select PCIE_ROCKCHIP
219	help
220	  Say Y here if you want internal PCI support on Rockchip SoC.
221	  There is 1 internal PCIe port available to support GEN2 with
222	  4 slots.
223
224config PCIE_ROCKCHIP_EP
225	bool "Rockchip PCIe endpoint controller"
226	depends on ARCH_ROCKCHIP || COMPILE_TEST
227	depends on OF
228	depends on PCI_ENDPOINT
229	select MFD_SYSCON
230	select PCIE_ROCKCHIP
231	help
232	  Say Y here if you want to support Rockchip PCIe controller in
233	  endpoint mode on Rockchip SoC. There is 1 internal PCIe port
234	  available to support GEN2 with 4 slots.
235
236config PCIE_MEDIATEK
237	bool "MediaTek PCIe controller"
238	depends on ARCH_MEDIATEK || COMPILE_TEST
239	depends on OF
240	depends on PCI_MSI_IRQ_DOMAIN
241	help
242	  Say Y here if you want to enable PCIe controller support on
243	  MediaTek SoCs.
244
245config PCIE_TANGO_SMP8759
246	bool "Tango SMP8759 PCIe controller (DANGEROUS)"
247	depends on ARCH_TANGO && PCI_MSI && OF
248	depends on BROKEN
249	select PCI_HOST_COMMON
250	help
251	  Say Y here to enable PCIe controller support for Sigma Designs
252	  Tango SMP8759-based systems.
253
254	  Note: The SMP8759 controller multiplexes PCI config and MMIO
255	  accesses, and Linux doesn't provide a way to serialize them.
256	  This can lead to data corruption if drivers perform concurrent
257	  config and MMIO accesses.
258
259config VMD
260	depends on PCI_MSI && X86_64 && SRCU
261	tristate "Intel Volume Management Device Driver"
262	---help---
263	  Adds support for the Intel Volume Management Device (VMD). VMD is a
264	  secondary PCI host bridge that allows PCI Express root ports,
265	  and devices attached to them, to be removed from the default
266	  PCI domain and placed within the VMD domain. This provides
267	  more bus resources than are otherwise possible with a
268	  single domain. If you know your system provides one of these and
269	  has devices attached to it, say Y; if you are not sure, say N.
270
271	  To compile this driver as a module, choose M here: the
272	  module will be called vmd.
273
274source "drivers/pci/controller/dwc/Kconfig"
275endmenu
276