nds32: fix build error "relocation truncated to fit: R_NDS32_25_PCREL_RELA" when
[linux-2.6-microblaze.git] / drivers / pci / controller / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 menu "PCI controller drivers"
4         depends on PCI
5
6 config 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
13 config 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
23 menu "Cadence PCIe controllers support"
24
25 config PCIE_CADENCE
26         bool
27
28 config 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
39 config 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
49 endmenu
50
51 config 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
61 config PCI_FTPCI100
62         bool "Faraday Technology FTPCI100 PCI controller"
63         depends on OF
64         default ARCH_GEMINI
65
66 config 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
74 config 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
83 config 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
90 config PCI_HOST_COMMON
91         bool
92         select PCI_ECAM
93
94 config 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
104 config 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
111 config 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
120 config 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
129 config 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
135 config PCI_VERSATILE
136         bool "ARM Versatile PB PCI controller"
137         depends on ARCH_VERSATILE
138
139 config 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
147 config 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
157 config 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
167 config 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
176 config 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
184 config 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
192 config 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
200 config 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
208 config PCIE_ROCKCHIP
209         bool
210         depends on PCI
211
212 config 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
224 config 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
236 config 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
245 config 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
259 config 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
274 source "drivers/pci/controller/dwc/Kconfig"
275 endmenu