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