blob: 963300dffcba58c687279215c9aa559194369db2 [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"
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
Thomas Petazzoni45361a42013-05-16 17:55:22 +020013config PCI_MVEBU
14 bool "Marvell EBU PCIe controller"
Andrew Lunnc2760202014-07-10 23:36:29 +020015 depends on ARCH_MVEBU || ARCH_DOVE
Thierry Reding61d9e852016-02-18 14:32:10 +010016 depends on ARM
Thomas Petazzoni5477a332013-08-09 12:35:50 +020017 depends on OF
Thomas Petazzoni45361a42013-05-16 17:55:22 +020018
Bjorn Helgaas562df5c2016-03-15 08:55:52 -050019
Bharat Kumar Gogadaab597d32016-03-06 22:02:14 +053020config 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
Joao Pinto5a3aa2a2016-03-10 14:44:52 -060030config 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
Jingoo Han340cba62013-06-21 16:24:54 +090041config PCIE_DW
42 bool
43
44config PCI_EXYNOS
45 bool "Samsung Exynos PCIe controller"
46 depends on SOC_EXYNOS5440
47 select PCIEPORTBUS
48 select PCIE_DW
49
Sean Crossbb389192013-09-26 11:24:47 +080050config PCI_IMX6
51 bool "Freescale i.MX6 PCIe controller"
52 depends on SOC_IMX6Q
53 select PCIEPORTBUS
54 select PCIE_DW
55
Thierry Redingd1523b52013-08-09 16:49:19 +020056config PCI_TEGRA
57 bool "NVIDIA Tegra PCIe controller"
Thierry Reding44073082014-11-12 14:53:37 +010058 depends on ARCH_TEGRA && !ARM64
Thierry Reding6b1c4d72014-11-12 14:53:38 +010059 help
60 Say Y here if you want support for the PCIe host controller found
61 on NVIDIA Tegra SoCs.
Thierry Redingd1523b52013-08-09 16:49:19 +020062
Valentine Barshakba3eb9f2013-10-29 20:12:51 +040063config PCI_RCAR_GEN2
64 bool "Renesas R-Car Gen2 Internal PCI controller"
Geert Uytterhoeven6cbfeae2015-10-30 08:08:17 -050065 depends on ARM
Simon Horman304e6d572016-02-25 09:45:56 +090066 depends on ARCH_RENESAS || COMPILE_TEST
Valentine Barshakba3eb9f2013-10-29 20:12:51 +040067 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
Phil Edworthyc25da472014-05-12 11:57:48 +010072config PCI_RCAR_GEN2_PCIE
73 bool "Renesas R-Car PCIe controller"
Simon Horman304e6d572016-02-25 09:45:56 +090074 depends on ARCH_RENESAS || (ARM && COMPILE_TEST)
Phil Edworthyc25da472014-05-12 11:57:48 +010075 help
76 Say Y here if you want PCIe controller support on R-Car Gen2 SoCs.
77
David Daney4e64dbe2016-03-11 15:35:55 -060078config PCI_HOST_COMMON
79 bool
Jayachandran C1958e712016-05-11 17:34:46 -050080 select PCI_ECAM
David Daney4e64dbe2016-03-11 15:35:55 -060081
Will Deaconce292992013-11-22 16:14:41 +000082config PCI_HOST_GENERIC
83 bool "Generic PCI host controller"
Jayachandran Caa4a5c02015-08-05 02:23:40 +053084 depends on (ARM || ARM64) && OF
David Daney4e64dbe2016-03-11 15:35:55 -060085 select PCI_HOST_COMMON
Will Deaconce292992013-11-22 16:14:41 +000086 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
Pratyush Anand51b66a62014-02-11 11:39:26 +053090config PCIE_SPEAR13XX
Sachin Kamat8d7004a2014-08-17 22:09:16 -060091 bool "STMicroelectronics SPEAr PCIe controller"
Pratyush Anand51b66a62014-02-11 11:39:26 +053092 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
Murali Karicheri0c4ffcf2014-09-02 17:26:19 -060098config 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.
Bjorn Helgaasa2351efe2014-09-05 10:57:20 -0600108
Srikanth Thokala8961def2014-08-20 21:56:02 +0530109config PCIE_XILINX
110 bool "Xilinx AXI PCIe host bridge support"
Bharat Kumar Gogada01cf9d52016-02-11 21:58:11 +0530111 depends on ARCH_ZYNQ || MICROBLAZE
Srikanth Thokala8961def2014-08-20 21:56:02 +0530112 help
113 Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
114 Host Bridge driver.
115
Tanmay Inamdar5f6b6cc2014-10-01 13:01:35 -0600116config PCI_XGENE
117 bool "X-Gene PCIe controller"
118 depends on ARCH_XGENE
119 depends on OF
120 select PCIEPORTBUS
Duc Dangdcd19de2015-06-05 15:56:34 -0500121 select PCI_MSI_IRQ_DOMAIN if PCI_MSI
Tanmay Inamdar5f6b6cc2014-10-01 13:01:35 -0600122 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
Duc Dangdcd19de2015-06-05 15:56:34 -0500127config 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
Minghuan Lian62d0ff832014-11-05 16:45:11 +0800135config PCI_LAYERSCAPE
136 bool "Freescale Layerscape PCIe controller"
Minghuan Lian5192ec72015-10-16 15:19:19 +0800137 depends on OF && (ARM || ARCH_LAYERSCAPE)
Minghuan Lian62d0ff832014-11-05 16:45:11 +0800138 select PCIE_DW
139 select MFD_SYSCON
140 help
141 Say Y here if you want PCIe controller support on Layerscape SoCs.
142
Rob Herringb7e78172015-01-28 10:16:18 -0600143config PCI_VERSATILE
144 bool "ARM Versatile PB PCI controller"
145 depends on ARCH_VERSATILE
146
Ray Jui1fb37a82015-04-08 11:21:35 -0700147config PCIE_IPROC
Arnd Bergmannc1b98e42015-11-24 15:28:48 -0600148 tristate
Ray Jui1fb37a82015-04-08 11:21:35 -0700149 help
150 This enables the iProc PCIe core controller support for Broadcom's
Arnd Bergmannc1b98e42015-11-24 15:28:48 -0600151 iProc family of SoCs. An appropriate bus interface driver needs
152 to be enabled to select this.
Ray Jui1fb37a82015-04-08 11:21:35 -0700153
154config 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
Hauke Mehrtens4785ffb2015-05-12 23:23:01 +0200164config PCIE_IPROC_BCMA
Hauke Mehrtens05aa7d62015-07-25 21:15:24 +0200165 tristate "Broadcom iProc PCIe BCMA bus driver"
Ray Jui70d334c2015-07-29 10:12:53 -0700166 depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
Hauke Mehrtens4785ffb2015-05-12 23:23:01 +0200167 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
Ray Jui3bc2b232016-01-06 18:04:35 -0600175config 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
Ley Foon Taneaa61112015-10-23 18:27:12 +0800185config 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
Ley Foon Tanaf1169b2015-10-23 18:27:13 +0800194config 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
Zhou Wang500a1d92015-10-29 20:02:51 -0500202config PCI_HISI
203 depends on OF && ARM64
Gabriele Paoloni5930fe42015-11-27 01:17:05 +0800204 bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
Zhou Wang500a1d92015-10-29 20:02:51 -0500205 select PCIEPORTBUS
206 select PCIE_DW
207 help
Gabriele Paoloni5930fe42015-11-27 01:17:05 +0800208 Say Y here if you want PCIe controller support on HiSilicon
209 Hip05 and Hip06 SoCs
Zhou Wang500a1d92015-10-29 20:02:51 -0500210
Stanimir Varbanov82a82382015-12-18 14:38:57 +0200211config 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.
Thomas Petazzoni45361a42013-05-16 17:55:22 +0200220
David Daneyf12b76e2016-03-04 14:31:47 -0800221config 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
David Daney7b6e7ba2016-03-04 14:31:48 -0800228config 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
Thomas Petazzoni45361a42013-05-16 17:55:22 +0200235endmenu