blob: d7e7c0a827c3526dec77709298fc56a40ee5954e [file] [log] [blame]
Thomas Petazzoni45361a42013-05-16 17:55:22 +02001menu "PCI host controller drivers"
2 depends on PCI
3
Kishon Vijay Abraham I47ff3de2014-07-22 15:23:45 -06004config PCI_DRA7XX
5 bool "TI DRA7xx PCIe controller"
Kishon Vijay Abraham I47ff3de2014-07-22 15:23:45 -06006 depends on OF && HAS_IOMEM && TI_PIPE3
Arnd Bergmann3ee80362016-06-15 15:47:33 -05007 depends on PCI_MSI_IRQ_DOMAIN
8 select PCIE_DW
Kishon Vijay Abraham I47ff3de2014-07-22 15:23:45 -06009 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
Thomas Petazzoni45361a42013-05-16 17:55:22 +020014config PCI_MVEBU
15 bool "Marvell EBU PCIe controller"
Andrew Lunnc2760202014-07-10 23:36:29 +020016 depends on ARCH_MVEBU || ARCH_DOVE
Thierry Reding61d9e852016-02-18 14:32:10 +010017 depends on ARM
Thomas Petazzoni5477a332013-08-09 12:35:50 +020018 depends on OF
Thomas Petazzoni45361a42013-05-16 17:55:22 +020019
Thomas Petazzoni8c39d712016-06-30 11:32:31 +020020config PCI_AARDVARK
21 bool "Aardvark PCIe controller"
22 depends on ARCH_MVEBU && ARM64
23 depends on OF
24 depends on PCI_MSI_IRQ_DOMAIN
25 help
26 Add support for Aardvark 64bit PCIe Host Controller. This
27 controller is part of the South Bridge of the Marvel Armada
28 3700 SoC.
Bjorn Helgaas562df5c2016-03-15 08:55:52 -050029
Bharat Kumar Gogadaab597d32016-03-06 22:02:14 +053030config PCIE_XILINX_NWL
31 bool "NWL PCIe Core"
32 depends on ARCH_ZYNQMP
Arnd Bergmann3ee80362016-06-15 15:47:33 -050033 depends on PCI_MSI_IRQ_DOMAIN
Bharat Kumar Gogadaab597d32016-03-06 22:02:14 +053034 help
35 Say 'Y' here if you want kernel support for Xilinx
36 NWL PCIe controller. The controller can act as Root Port
37 or End Point. The current option selection will only
38 support root port enabling.
39
Joao Pinto5a3aa2a2016-03-10 14:44:52 -060040config PCIE_DW_PLAT
41 bool "Platform bus based DesignWare PCIe Controller"
Arnd Bergmann3ee80362016-06-15 15:47:33 -050042 depends on PCI_MSI_IRQ_DOMAIN
Joao Pinto5a3aa2a2016-03-10 14:44:52 -060043 select PCIE_DW
44 ---help---
45 This selects the DesignWare PCIe controller support. Select this if
46 you have a PCIe controller on Platform bus.
47
48 If you have a controller with this interface, say Y or M here.
49
50 If unsure, say N.
51
Jingoo Han340cba62013-06-21 16:24:54 +090052config PCIE_DW
53 bool
Arnd Bergmann3ee80362016-06-15 15:47:33 -050054 depends on PCI_MSI_IRQ_DOMAIN
Jingoo Han340cba62013-06-21 16:24:54 +090055
56config PCI_EXYNOS
57 bool "Samsung Exynos PCIe controller"
58 depends on SOC_EXYNOS5440
Arnd Bergmann3ee80362016-06-15 15:47:33 -050059 depends on PCI_MSI_IRQ_DOMAIN
Jingoo Han340cba62013-06-21 16:24:54 +090060 select PCIEPORTBUS
61 select PCIE_DW
62
Sean Crossbb389192013-09-26 11:24:47 +080063config PCI_IMX6
64 bool "Freescale i.MX6 PCIe controller"
65 depends on SOC_IMX6Q
Arnd Bergmann3ee80362016-06-15 15:47:33 -050066 depends on PCI_MSI_IRQ_DOMAIN
Sean Crossbb389192013-09-26 11:24:47 +080067 select PCIEPORTBUS
68 select PCIE_DW
69
Thierry Redingd1523b52013-08-09 16:49:19 +020070config PCI_TEGRA
71 bool "NVIDIA Tegra PCIe controller"
Thierry Reding44073082014-11-12 14:53:37 +010072 depends on ARCH_TEGRA && !ARM64
Thierry Reding6b1c4d72014-11-12 14:53:38 +010073 help
74 Say Y here if you want support for the PCIe host controller found
75 on NVIDIA Tegra SoCs.
Thierry Redingd1523b52013-08-09 16:49:19 +020076
Valentine Barshakba3eb9f2013-10-29 20:12:51 +040077config PCI_RCAR_GEN2
78 bool "Renesas R-Car Gen2 Internal PCI controller"
Geert Uytterhoeven6cbfeae2015-10-30 08:08:17 -050079 depends on ARM
Simon Horman304e6d572016-02-25 09:45:56 +090080 depends on ARCH_RENESAS || COMPILE_TEST
Valentine Barshakba3eb9f2013-10-29 20:12:51 +040081 help
82 Say Y here if you want internal PCI support on R-Car Gen2 SoC.
83 There are 3 internal PCI controllers available with a single
84 built-in EHCI/OHCI host controller present on each one.
85
Simon Horman350a73b2016-04-21 13:51:55 +100086config PCIE_RCAR
Phil Edworthyc25da472014-05-12 11:57:48 +010087 bool "Renesas R-Car PCIe controller"
Simon Horman304e6d572016-02-25 09:45:56 +090088 depends on ARCH_RENESAS || (ARM && COMPILE_TEST)
Arnd Bergmann3ee80362016-06-15 15:47:33 -050089 depends on PCI_MSI_IRQ_DOMAIN
Phil Edworthyc25da472014-05-12 11:57:48 +010090 help
Simon Horman350a73b2016-04-21 13:51:55 +100091 Say Y here if you want PCIe controller support on R-Car SoCs.
Phil Edworthyc25da472014-05-12 11:57:48 +010092
David Daney4e64dbe2016-03-11 15:35:55 -060093config PCI_HOST_COMMON
94 bool
Jayachandran C1958e712016-05-11 17:34:46 -050095 select PCI_ECAM
David Daney4e64dbe2016-03-11 15:35:55 -060096
Will Deaconce292992013-11-22 16:14:41 +000097config PCI_HOST_GENERIC
98 bool "Generic PCI host controller"
Jayachandran Caa4a5c02015-08-05 02:23:40 +053099 depends on (ARM || ARM64) && OF
David Daney4e64dbe2016-03-11 15:35:55 -0600100 select PCI_HOST_COMMON
Arnd Bergmannd7d56772016-05-18 16:15:53 +0200101 select IRQ_DOMAIN
Will Deaconce292992013-11-22 16:14:41 +0000102 help
103 Say Y here if you want to support a simple generic PCI host
104 controller, such as the one emulated by kvmtool.
105
Pratyush Anand51b66a62014-02-11 11:39:26 +0530106config PCIE_SPEAR13XX
Sachin Kamat8d7004a2014-08-17 22:09:16 -0600107 bool "STMicroelectronics SPEAr PCIe controller"
Pratyush Anand51b66a62014-02-11 11:39:26 +0530108 depends on ARCH_SPEAR13XX
Arnd Bergmann3ee80362016-06-15 15:47:33 -0500109 depends on PCI_MSI_IRQ_DOMAIN
Pratyush Anand51b66a62014-02-11 11:39:26 +0530110 select PCIEPORTBUS
111 select PCIE_DW
112 help
113 Say Y here if you want PCIe support on SPEAr13XX SoCs.
114
Murali Karicheri0c4ffcf2014-09-02 17:26:19 -0600115config PCI_KEYSTONE
116 bool "TI Keystone PCIe controller"
117 depends on ARCH_KEYSTONE
Arnd Bergmann3ee80362016-06-15 15:47:33 -0500118 depends on PCI_MSI_IRQ_DOMAIN
Murali Karicheri0c4ffcf2014-09-02 17:26:19 -0600119 select PCIE_DW
120 select PCIEPORTBUS
121 help
122 Say Y here if you want to enable PCI controller support on Keystone
123 SoCs. The PCI controller on Keystone is based on Designware hardware
124 and therefore the driver re-uses the Designware core functions to
125 implement the driver.
Bjorn Helgaasa2351ef2014-09-05 10:57:20 -0600126
Srikanth Thokala8961def2014-08-20 21:56:02 +0530127config PCIE_XILINX
128 bool "Xilinx AXI PCIe host bridge support"
Bharat Kumar Gogada01cf9d52016-02-11 21:58:11 +0530129 depends on ARCH_ZYNQ || MICROBLAZE
Srikanth Thokala8961def2014-08-20 21:56:02 +0530130 help
131 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
132 Host Bridge driver.
133
Tanmay Inamdar5f6b6cc2014-10-01 13:01:35 -0600134config PCI_XGENE
135 bool "X-Gene PCIe controller"
136 depends on ARCH_XGENE
137 depends on OF
138 select PCIEPORTBUS
139 help
140 Say Y here if you want internal PCI support on APM X-Gene SoC.
141 There are 5 internal PCIe ports available. Each port is GEN3 capable
142 and have varied lanes from x1 to x8.
143
Duc Dangdcd19de2015-06-05 15:56:34 -0500144config PCI_XGENE_MSI
145 bool "X-Gene v1 PCIe MSI feature"
Arnd Bergmann3ee80362016-06-15 15:47:33 -0500146 depends on PCI_XGENE
147 depends on PCI_MSI_IRQ_DOMAIN
Duc Dangdcd19de2015-06-05 15:56:34 -0500148 default y
149 help
150 Say Y here if you want PCIe MSI support for the APM X-Gene v1 SoC.
151 This MSI driver supports 5 PCIe ports on the APM X-Gene v1 SoC.
152
Minghuan Lian62d0ff832014-11-05 16:45:11 +0800153config PCI_LAYERSCAPE
154 bool "Freescale Layerscape PCIe controller"
Minghuan Lian5192ec72015-10-16 15:19:19 +0800155 depends on OF && (ARM || ARCH_LAYERSCAPE)
Arnd Bergmann3ee80362016-06-15 15:47:33 -0500156 depends on PCI_MSI_IRQ_DOMAIN
Minghuan Lian62d0ff832014-11-05 16:45:11 +0800157 select PCIE_DW
158 select MFD_SYSCON
159 help
160 Say Y here if you want PCIe controller support on Layerscape SoCs.
161
Rob Herringb7e78172015-01-28 10:16:18 -0600162config PCI_VERSATILE
163 bool "ARM Versatile PB PCI controller"
164 depends on ARCH_VERSATILE
165
Ray Jui1fb37a82015-04-08 11:21:35 -0700166config PCIE_IPROC
Arnd Bergmannc1b98e42015-11-24 15:28:48 -0600167 tristate
Ray Jui1fb37a82015-04-08 11:21:35 -0700168 help
169 This enables the iProc PCIe core controller support for Broadcom's
Arnd Bergmannc1b98e42015-11-24 15:28:48 -0600170 iProc family of SoCs. An appropriate bus interface driver needs
171 to be enabled to select this.
Ray Jui1fb37a82015-04-08 11:21:35 -0700172
173config PCIE_IPROC_PLATFORM
174 tristate "Broadcom iProc PCIe platform bus driver"
175 depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
176 depends on OF
177 select PCIE_IPROC
178 default ARCH_BCM_IPROC
179 help
180 Say Y here if you want to use the Broadcom iProc PCIe controller
181 through the generic platform bus interface
182
Hauke Mehrtens4785ffb2015-05-12 23:23:01 +0200183config PCIE_IPROC_BCMA
Hauke Mehrtens05aa7d62015-07-25 21:15:24 +0200184 tristate "Broadcom iProc PCIe BCMA bus driver"
Ray Jui70d334c2015-07-29 10:12:53 -0700185 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
Hauke Mehrtens4785ffb2015-05-12 23:23:01 +0200186 select PCIE_IPROC
187 select BCMA
188 select PCI_DOMAINS
189 default ARCH_BCM_5301X
190 help
191 Say Y here if you want to use the Broadcom iProc PCIe controller
192 through the BCMA bus interface
193
Ray Jui3bc2b232016-01-06 18:04:35 -0600194config PCIE_IPROC_MSI
195 bool "Broadcom iProc PCIe MSI support"
196 depends on PCIE_IPROC_PLATFORM || PCIE_IPROC_BCMA
Arnd Bergmann3ee80362016-06-15 15:47:33 -0500197 depends on PCI_MSI_IRQ_DOMAIN
Ray Jui3bc2b232016-01-06 18:04:35 -0600198 default ARCH_BCM_IPROC
199 help
200 Say Y here if you want to enable MSI support for Broadcom's iProc
201 PCIe controller
202
Ley Foon Taneaa61112015-10-23 18:27:12 +0800203config PCIE_ALTERA
204 bool "Altera PCIe controller"
205 depends on ARM || NIOS2
206 depends on OF_PCI
207 select PCI_DOMAINS
208 help
209 Say Y here if you want to enable PCIe controller support on Altera
210 FPGA.
211
Ley Foon Tanaf1169b2015-10-23 18:27:13 +0800212config PCIE_ALTERA_MSI
213 bool "Altera PCIe MSI feature"
Arnd Bergmann3ee80362016-06-15 15:47:33 -0500214 depends on PCIE_ALTERA
215 depends on PCI_MSI_IRQ_DOMAIN
Ley Foon Tanaf1169b2015-10-23 18:27:13 +0800216 help
217 Say Y here if you want PCIe MSI support for the Altera FPGA.
218 This MSI driver supports Altera MSI to GIC controller IP.
219
Zhou Wang500a1d92015-10-29 20:02:51 -0500220config PCI_HISI
221 depends on OF && ARM64
Gabriele Paoloni5930fe42015-11-27 01:17:05 +0800222 bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
Arnd Bergmann3ee80362016-06-15 15:47:33 -0500223 depends on PCI_MSI_IRQ_DOMAIN
Zhou Wang500a1d92015-10-29 20:02:51 -0500224 select PCIEPORTBUS
225 select PCIE_DW
226 help
Gabriele Paoloni5930fe42015-11-27 01:17:05 +0800227 Say Y here if you want PCIe controller support on HiSilicon
228 Hip05 and Hip06 SoCs
Zhou Wang500a1d92015-10-29 20:02:51 -0500229
Stanimir Varbanov82a82382015-12-18 14:38:57 +0200230config PCIE_QCOM
231 bool "Qualcomm PCIe controller"
232 depends on ARCH_QCOM && OF
Arnd Bergmann3ee80362016-06-15 15:47:33 -0500233 depends on PCI_MSI_IRQ_DOMAIN
Stanimir Varbanov82a82382015-12-18 14:38:57 +0200234 select PCIE_DW
235 select PCIEPORTBUS
236 help
237 Say Y here to enable PCIe controller support on Qualcomm SoCs. The
238 PCIe controller uses the Designware core plus Qualcomm-specific
239 hardware wrappers.
Thomas Petazzoni45361a42013-05-16 17:55:22 +0200240
David Daneyf12b76e2016-03-04 14:31:47 -0800241config PCI_HOST_THUNDER_PEM
242 bool "Cavium Thunder PCIe controller to off-chip devices"
243 depends on OF && ARM64
244 select PCI_HOST_COMMON
245 help
246 Say Y here if you want PCIe support for CN88XX Cavium Thunder SoCs.
247
David Daney7b6e7ba2016-03-04 14:31:48 -0800248config PCI_HOST_THUNDER_ECAM
249 bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
250 depends on OF && ARM64
251 select PCI_HOST_COMMON
252 help
253 Say Y here if you want ECAM support for CN88XX-Pass-1.x Cavium Thunder SoCs.
254
Thomas Petazzoni1c52a512016-04-26 10:31:46 +0200255config PCIE_ARMADA_8K
256 bool "Marvell Armada-8K PCIe controller"
257 depends on ARCH_MVEBU
Arnd Bergmann3ee80362016-06-15 15:47:33 -0500258 depends on PCI_MSI_IRQ_DOMAIN
Thomas Petazzoni1c52a512016-04-26 10:31:46 +0200259 select PCIE_DW
260 select PCIEPORTBUS
261 help
262 Say Y here if you want to enable PCIe controller support on
263 Armada-8K SoCs. The PCIe controller on Armada-8K is based on
264 Designware hardware and therefore the driver re-uses the
265 Designware core functions to implement the driver.
266
Niklas Cassela3cbfae2016-05-09 13:49:03 +0200267config PCIE_ARTPEC6
268 bool "Axis ARTPEC-6 PCIe controller"
269 depends on MACH_ARTPEC6
Arnd Bergmann09e3cde2016-07-06 14:46:04 +0200270 depends on PCI_MSI_IRQ_DOMAIN
Niklas Cassela3cbfae2016-05-09 13:49:03 +0200271 select PCIE_DW
272 select PCIEPORTBUS
273 help
274 Say Y here to enable PCIe controller support on Axis ARTPEC-6
275 SoCs. This PCIe controller uses the DesignWare core.
276
Shawn Line77f8472016-09-03 11:41:09 -0500277config PCIE_ROCKCHIP
278 bool "Rockchip PCIe controller"
279 depends on ARCH_ROCKCHIP
280 depends on OF
281 depends on PCI_MSI_IRQ_DOMAIN
282 select MFD_SYSCON
283 help
284 Say Y here if you want internal PCI support on Rockchip SoC.
285 There is 1 internal PCIe port available to support GEN2 with
286 4 slots.
287
Keith Busch181ffd12016-10-04 12:26:37 -0500288config VMD
289 depends on PCI_MSI && X86_64
290 tristate "Intel Volume Management Device Driver"
291 default N
292 ---help---
293 Adds support for the Intel Volume Management Device (VMD). VMD is a
294 secondary PCI host bridge that allows PCI Express root ports,
295 and devices attached to them, to be removed from the default
296 PCI domain and placed within the VMD domain. This provides
297 more bus resources than are otherwise possible with a
298 single domain. If you know your system provides one of these and
299 has devices attached to it, say Y; if you are not sure, say N.
300
301 To compile this driver as a module, choose M here: the
302 module will be called vmd.
303
Thomas Petazzoni45361a42013-05-16 17:55:22 +0200304endmenu