Merge branch 'acpica-fixes'
[cascardo/linux.git] / drivers / pci / host / Kconfig
1 menu "PCI host controller drivers"
2         depends on PCI
3
4 config PCI_DRA7XX
5         bool "TI DRA7xx PCIe controller"
6         select PCIE_DW
7         depends on OF && HAS_IOMEM && TI_PIPE3
8         help
9          Enables support for the PCIe controller in the DRA7xx SoC.  There
10          are two instances of PCIe controller in DRA7xx.  This controller can
11          act both as EP and RC.  This reuses the Designware core.
12
13 config PCI_MVEBU
14         bool "Marvell EBU PCIe controller"
15         depends on ARCH_MVEBU || ARCH_DOVE
16         depends on ARM
17         depends on OF
18
19
20 config PCIE_XILINX_NWL
21         bool "NWL PCIe Core"
22         depends on ARCH_ZYNQMP
23         select PCI_MSI_IRQ_DOMAIN if PCI_MSI
24         help
25          Say 'Y' here if you want kernel support for Xilinx
26          NWL PCIe controller. The controller can act as Root Port
27          or End Point. The current option selection will only
28          support root port enabling.
29
30 config PCIE_DW_PLAT
31         bool "Platform bus based DesignWare PCIe Controller"
32         select PCIE_DW
33         ---help---
34          This selects the DesignWare PCIe controller support. Select this if
35          you have a PCIe controller on Platform bus.
36
37          If you have a controller with this interface, say Y or M here.
38
39          If unsure, say N.
40
41 config PCIE_DW
42         bool
43
44 config PCI_EXYNOS
45         bool "Samsung Exynos PCIe controller"
46         depends on SOC_EXYNOS5440
47         select PCIEPORTBUS
48         select PCIE_DW
49
50 config PCI_IMX6
51         bool "Freescale i.MX6 PCIe controller"
52         depends on SOC_IMX6Q
53         select PCIEPORTBUS
54         select PCIE_DW
55
56 config PCI_TEGRA
57         bool "NVIDIA Tegra PCIe controller"
58         depends on ARCH_TEGRA && !ARM64
59         help
60           Say Y here if you want support for the PCIe host controller found
61           on NVIDIA Tegra SoCs.
62
63 config PCI_RCAR_GEN2
64         bool "Renesas R-Car Gen2 Internal PCI controller"
65         depends on ARM
66         depends on ARCH_RENESAS || COMPILE_TEST
67         help
68           Say Y here if you want internal PCI support on R-Car Gen2 SoC.
69           There are 3 internal PCI controllers available with a single
70           built-in EHCI/OHCI host controller present on each one.
71
72 config PCIE_RCAR
73         bool "Renesas R-Car PCIe controller"
74         depends on ARCH_RENESAS || (ARM && COMPILE_TEST)
75         select PCI_MSI
76         select PCI_MSI_IRQ_DOMAIN
77         help
78           Say Y here if you want PCIe controller support on R-Car SoCs.
79
80 config PCI_HOST_COMMON
81         bool
82         select PCI_ECAM
83
84 config PCI_HOST_GENERIC
85         bool "Generic PCI host controller"
86         depends on (ARM || ARM64) && OF
87         select PCI_HOST_COMMON
88         help
89           Say Y here if you want to support a simple generic PCI host
90           controller, such as the one emulated by kvmtool.
91
92 config PCIE_SPEAR13XX
93         bool "STMicroelectronics SPEAr PCIe controller"
94         depends on ARCH_SPEAR13XX
95         select PCIEPORTBUS
96         select PCIE_DW
97         help
98           Say Y here if you want PCIe support on SPEAr13XX SoCs.
99
100 config PCI_KEYSTONE
101         bool "TI Keystone PCIe controller"
102         depends on ARCH_KEYSTONE
103         select PCIE_DW
104         select PCIEPORTBUS
105         help
106           Say Y here if you want to enable PCI controller support on Keystone
107           SoCs. The PCI controller on Keystone is based on Designware hardware
108           and therefore the driver re-uses the Designware core functions to
109           implement the driver.
110
111 config PCIE_XILINX
112         bool "Xilinx AXI PCIe host bridge support"
113         depends on ARCH_ZYNQ || MICROBLAZE
114         help
115           Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
116           Host Bridge driver.
117
118 config PCI_XGENE
119         bool "X-Gene PCIe controller"
120         depends on ARCH_XGENE
121         depends on OF
122         select PCIEPORTBUS
123         select PCI_MSI_IRQ_DOMAIN if PCI_MSI
124         help
125           Say Y here if you want internal PCI support on APM X-Gene SoC.
126           There are 5 internal PCIe ports available. Each port is GEN3 capable
127           and have varied lanes from x1 to x8.
128
129 config PCI_XGENE_MSI
130         bool "X-Gene v1 PCIe MSI feature"
131         depends on PCI_XGENE && PCI_MSI
132         default y
133         help
134           Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
135           This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
136
137 config PCI_LAYERSCAPE
138         bool "Freescale Layerscape PCIe controller"
139         depends on OF && (ARM || ARCH_LAYERSCAPE)
140         select PCIE_DW
141         select MFD_SYSCON
142         help
143           Say Y here if you want PCIe controller support on Layerscape SoCs.
144
145 config PCI_VERSATILE
146         bool "ARM Versatile PB PCI controller"
147         depends on ARCH_VERSATILE
148
149 config PCIE_IPROC
150         tristate
151         help
152           This enables the iProc PCIe core controller support for Broadcom's
153           iProc family of SoCs. An appropriate bus interface driver needs
154           to be enabled to select this.
155
156 config PCIE_IPROC_PLATFORM
157         tristate "Broadcom iProc PCIe platform bus driver"
158         depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
159         depends on OF
160         select PCIE_IPROC
161         default ARCH_BCM_IPROC
162         help
163           Say Y here if you want to use the Broadcom iProc PCIe controller
164           through the generic platform bus interface
165
166 config PCIE_IPROC_BCMA
167         tristate "Broadcom iProc PCIe BCMA bus driver"
168         depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
169         select PCIE_IPROC
170         select BCMA
171         select PCI_DOMAINS
172         default ARCH_BCM_5301X
173         help
174           Say Y here if you want to use the Broadcom iProc PCIe controller
175           through the BCMA bus interface
176
177 config PCIE_IPROC_MSI
178         bool "Broadcom iProc PCIe MSI support"
179         depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
180         depends on PCI_MSI
181         select PCI_MSI_IRQ_DOMAIN
182         default ARCH_BCM_IPROC
183         help
184           Say Y here if you want to enable MSI support for Broadcom's iProc
185           PCIe controller
186
187 config PCIE_ALTERA
188         bool "Altera PCIe controller"
189         depends on ARM || NIOS2
190         depends on OF_PCI
191         select PCI_DOMAINS
192         help
193           Say Y here if you want to enable PCIe controller support on Altera
194           FPGA.
195
196 config PCIE_ALTERA_MSI
197         bool "Altera PCIe MSI feature"
198         depends on PCIE_ALTERA && PCI_MSI
199         select PCI_MSI_IRQ_DOMAIN
200         help
201           Say Y here if you want PCIe MSI support for the Altera FPGA.
202           This MSI driver supports Altera MSI to GIC controller IP.
203
204 config PCI_HISI
205         depends on OF && ARM64
206         bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
207         select PCIEPORTBUS
208         select PCIE_DW
209         help
210           Say Y here if you want PCIe controller support on HiSilicon
211           Hip05 and Hip06 SoCs
212
213 config PCIE_QCOM
214         bool "Qualcomm PCIe controller"
215         depends on ARCH_QCOM && OF
216         select PCIE_DW
217         select PCIEPORTBUS
218         help
219           Say Y here to enable PCIe controller support on Qualcomm SoCs. The
220           PCIe controller uses the Designware core plus Qualcomm-specific
221           hardware wrappers.
222
223 config PCI_HOST_THUNDER_PEM
224         bool "Cavium Thunder PCIe controller to off-chip devices"
225         depends on OF && ARM64
226         select PCI_HOST_COMMON
227         help
228           Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
229
230 config PCI_HOST_THUNDER_ECAM
231         bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
232         depends on OF && ARM64
233         select PCI_HOST_COMMON
234         help
235           Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
236
237 config PCIE_ARMADA_8K
238         bool "Marvell Armada-8K PCIe controller"
239         depends on ARCH_MVEBU
240         select PCIE_DW
241         select PCIEPORTBUS
242         help
243           Say Y here if you want to enable PCIe controller support on
244           Armada-8K SoCs. The PCIe controller on Armada-8K is based on
245           Designware hardware and therefore the driver re-uses the
246           Designware core functions to implement the driver.
247
248 endmenu