]> asedeno.scripts.mit.edu Git - linux.git/blob - drivers/pci/host/Kconfig
PCI: qcom: Include gpio/consumer.h
[linux.git] / drivers / pci / host / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2
3 menu "PCI host controller drivers"
4         depends on PCI
5
6 config PCI_MVEBU
7         bool "Marvell EBU PCIe controller"
8         depends on ARCH_MVEBU || ARCH_DOVE
9         depends on ARM
10         depends on OF
11
12 config PCI_AARDVARK
13         bool "Aardvark PCIe controller"
14         depends on ARCH_MVEBU && ARM64
15         depends on OF
16         depends on PCI_MSI_IRQ_DOMAIN
17         help
18          Add support for Aardvark 64bit PCIe Host Controller. This
19          controller is part of the South Bridge of the Marvel Armada
20          3700 SoC.
21
22 config PCIE_XILINX_NWL
23         bool "NWL PCIe Core"
24         depends on ARCH_ZYNQMP
25         depends on PCI_MSI_IRQ_DOMAIN
26         help
27          Say 'Y' here if you want kernel support for Xilinx
28          NWL PCIe controller. The controller can act as Root Port
29          or End Point. The current option selection will only
30          support root port enabling.
31
32 config PCI_FTPCI100
33         bool "Faraday Technology FTPCI100 PCI controller"
34         depends on OF
35         depends on ARM
36         default ARCH_GEMINI
37
38 config PCI_TEGRA
39         bool "NVIDIA Tegra PCIe controller"
40         depends on ARCH_TEGRA
41         depends on PCI_MSI_IRQ_DOMAIN
42         help
43           Say Y here if you want support for the PCIe host controller found
44           on NVIDIA Tegra SoCs.
45
46 config PCI_RCAR_GEN2
47         bool "Renesas R-Car Gen2 Internal PCI controller"
48         depends on ARM
49         depends on ARCH_RENESAS || COMPILE_TEST
50         help
51           Say Y here if you want internal PCI support on R-Car Gen2 SoC.
52           There are 3 internal PCI controllers available with a single
53           built-in EHCI/OHCI host controller present on each one.
54
55 config PCIE_RCAR
56         bool "Renesas R-Car PCIe controller"
57         depends on ARCH_RENESAS || (ARM && COMPILE_TEST)
58         depends on PCI_MSI_IRQ_DOMAIN
59         help
60           Say Y here if you want PCIe controller support on R-Car SoCs.
61
62 config PCI_HOST_COMMON
63         bool
64         select PCI_ECAM
65
66 config PCI_HOST_GENERIC
67         bool "Generic PCI host controller"
68         depends on (ARM || ARM64) && OF
69         select PCI_HOST_COMMON
70         select IRQ_DOMAIN
71         help
72           Say Y here if you want to support a simple generic PCI host
73           controller, such as the one emulated by kvmtool.
74
75 config PCIE_XILINX
76         bool "Xilinx AXI PCIe host bridge support"
77         depends on ARCH_ZYNQ || MICROBLAZE || (MIPS && PCI_DRIVERS_GENERIC)
78         help
79           Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
80           Host Bridge driver.
81
82 config PCI_XGENE
83         bool "X-Gene PCIe controller"
84         depends on ARM64
85         depends on OF || (ACPI && PCI_QUIRKS)
86         select PCIEPORTBUS
87         help
88           Say Y here if you want internal PCI support on APM X-Gene SoC.
89           There are 5 internal PCIe ports available. Each port is GEN3 capable
90           and have varied lanes from x1 to x8.
91
92 config PCI_XGENE_MSI
93         bool "X-Gene v1 PCIe MSI feature"
94         depends on PCI_XGENE
95         depends on PCI_MSI_IRQ_DOMAIN
96         default y
97         help
98           Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
99           This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
100
101 config PCI_V3_SEMI
102         bool "V3 Semiconductor PCI controller"
103         depends on OF
104         depends on ARM
105         default ARCH_INTEGRATOR_AP
106
107 config PCI_VERSATILE
108         bool "ARM Versatile PB PCI controller"
109         depends on ARCH_VERSATILE
110
111 config PCIE_IPROC
112         tristate
113         select PCI_DOMAINS
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
119 config 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
129 config 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
139 config 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
148 config PCIE_ALTERA
149         bool "Altera PCIe controller"
150         depends on ARM || NIOS2
151         depends on OF_PCI
152         select PCI_DOMAINS
153         help
154           Say Y here if you want to enable PCIe controller support on Altera
155           FPGA.
156
157 config PCIE_ALTERA_MSI
158         bool "Altera PCIe MSI feature"
159         depends on PCIE_ALTERA
160         depends on PCI_MSI_IRQ_DOMAIN
161         help
162           Say Y here if you want PCIe MSI support for the Altera FPGA.
163           This MSI driver supports Altera MSI to GIC controller IP.
164
165 config PCI_HOST_THUNDER_PEM
166         bool "Cavium Thunder PCIe controller to off-chip devices"
167         depends on ARM64
168         depends on OF || (ACPI && PCI_QUIRKS)
169         select PCI_HOST_COMMON
170         help
171           Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
172
173 config PCI_HOST_THUNDER_ECAM
174         bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
175         depends on ARM64
176         depends on OF || (ACPI && PCI_QUIRKS)
177         select PCI_HOST_COMMON
178         help
179           Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
180
181 config PCIE_ROCKCHIP
182         tristate "Rockchip PCIe controller"
183         depends on ARCH_ROCKCHIP || COMPILE_TEST
184         depends on OF
185         depends on PCI_MSI_IRQ_DOMAIN
186         select MFD_SYSCON
187         help
188           Say Y here if you want internal PCI support on Rockchip SoC.
189           There is 1 internal PCIe port available to support GEN2 with
190           4 slots.
191
192 config PCIE_MEDIATEK
193         bool "MediaTek PCIe controller"
194         depends on (ARM || ARM64) && (ARCH_MEDIATEK || COMPILE_TEST)
195         depends on OF
196         depends on PCI
197         select PCIEPORTBUS
198         help
199           Say Y here if you want to enable PCIe controller support on
200           MediaTek SoCs.
201
202 config PCIE_TANGO_SMP8759
203         bool "Tango SMP8759 PCIe controller (DANGEROUS)"
204         depends on ARCH_TANGO && PCI_MSI && OF
205         depends on BROKEN
206         select PCI_HOST_COMMON
207         help
208           Say Y here to enable PCIe controller support for Sigma Designs
209           Tango SMP8759-based systems.
210
211           Note: The SMP8759 controller multiplexes PCI config and MMIO
212           accesses, and Linux doesn't provide a way to serialize them.
213           This can lead to data corruption if drivers perform concurrent
214           config and MMIO accesses.
215
216 config VMD
217         depends on PCI_MSI && X86_64 && SRCU
218         tristate "Intel Volume Management Device Driver"
219         ---help---
220           Adds support for the Intel Volume Management Device (VMD). VMD is a
221           secondary PCI host bridge that allows PCI Express root ports,
222           and devices attached to them, to be removed from the default
223           PCI domain and placed within the VMD domain. This provides
224           more bus resources than are otherwise possible with a
225           single domain. If you know your system provides one of these and
226           has devices attached to it, say Y; if you are not sure, say N.
227
228           To compile this driver as a module, choose M here: the
229           module will be called vmd.
230
231 endmenu