xref: /linux/drivers/pci/controller/dwc/Kconfig (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
16e0832faSShawn Lin# SPDX-License-Identifier: GPL-2.0
26e0832faSShawn Lin
380c170d7SBjorn Helgaasmenu "DesignWare-based PCIe controllers"
46e0832faSShawn Lin	depends on PCI
56e0832faSShawn Lin
66e0832faSShawn Linconfig PCIE_DW
76e0832faSShawn Lin	bool
86e0832faSShawn Lin
96e0832faSShawn Linconfig PCIE_DW_HOST
106e0832faSShawn Lin	bool
116e0832faSShawn Lin	select PCIE_DW
126e0832faSShawn Lin
136e0832faSShawn Linconfig PCIE_DW_EP
146e0832faSShawn Lin	bool
156e0832faSShawn Lin	select PCIE_DW
166e0832faSShawn Lin
17c39819c0SBjorn Helgaasconfig PCIE_AL
18c39819c0SBjorn Helgaas	bool "Amazon Annapurna Labs PCIe controller"
19c39819c0SBjorn Helgaas	depends on OF && (ARM64 || COMPILE_TEST)
20a474d3fbSThomas Gleixner	depends on PCI_MSI
216e0832faSShawn Lin	select PCIE_DW_HOST
22c39819c0SBjorn Helgaas	select PCI_ECAM
236e0832faSShawn Lin	help
24c39819c0SBjorn Helgaas	  Say Y here to enable support of the Amazon's Annapurna Labs PCIe
25c39819c0SBjorn Helgaas	  controller IP on Amazon SoCs. The PCIe controller uses the DesignWare
26c39819c0SBjorn Helgaas	  core plus Annapurna Labs proprietary hardware wrappers. This is
27c39819c0SBjorn Helgaas	  required only for DT-based platforms. ACPI platforms with the
28c39819c0SBjorn Helgaas	  Annapurna Labs PCIe controller don't need to enable this.
296e0832faSShawn Lin
30c39819c0SBjorn Helgaasconfig PCI_MESON
31c39819c0SBjorn Helgaas	tristate "Amlogic Meson PCIe controller"
32c39819c0SBjorn Helgaas	default m if ARCH_MESON
33c39819c0SBjorn Helgaas	depends on PCI_MSI
34c39819c0SBjorn Helgaas	select PCIE_DW_HOST
356e0832faSShawn Lin	help
36c39819c0SBjorn Helgaas	  Say Y here if you want to enable PCI controller support on Amlogic
37c39819c0SBjorn Helgaas	  SoCs. The PCI controller on Amlogic is based on DesignWare hardware
38c39819c0SBjorn Helgaas	  and therefore the driver re-uses the DesignWare core functions to
39c39819c0SBjorn Helgaas	  implement the driver.
406e0832faSShawn Lin
41c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6
426e0832faSShawn Lin	bool
436e0832faSShawn Lin
44c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6_HOST
45c39819c0SBjorn Helgaas	bool "Axis ARTPEC-6 PCIe controller (host mode)"
46c39819c0SBjorn Helgaas	depends on MACH_ARTPEC6 || COMPILE_TEST
47a474d3fbSThomas Gleixner	depends on PCI_MSI
486e0832faSShawn Lin	select PCIE_DW_HOST
49c39819c0SBjorn Helgaas	select PCIE_ARTPEC6
506e0832faSShawn Lin	help
51c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
52c39819c0SBjorn Helgaas	  host mode. This uses the DesignWare core.
536e0832faSShawn Lin
54c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6_EP
55c39819c0SBjorn Helgaas	bool "Axis ARTPEC-6 PCIe controller (endpoint mode)"
56c39819c0SBjorn Helgaas	depends on MACH_ARTPEC6 || COMPILE_TEST
576e0832faSShawn Lin	depends on PCI_ENDPOINT
586e0832faSShawn Lin	select PCIE_DW_EP
59c39819c0SBjorn Helgaas	select PCIE_ARTPEC6
606e0832faSShawn Lin	help
61c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
62c39819c0SBjorn Helgaas	  endpoint mode. This uses the DesignWare core.
636e0832faSShawn Lin
64c39819c0SBjorn Helgaasconfig PCIE_BT1
65c39819c0SBjorn Helgaas	tristate "Baikal-T1 PCIe controller"
66c39819c0SBjorn Helgaas	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
67a474d3fbSThomas Gleixner	depends on PCI_MSI
686e0832faSShawn Lin	select PCIE_DW_HOST
69778f7c19SJaehoon Chung	help
70c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Baikal-T1 SoC to work
71c39819c0SBjorn Helgaas	  in host mode. It's based on the Synopsys DWC PCIe v4.60a IP-core.
726e0832faSShawn Lin
736e0832faSShawn Linconfig PCI_IMX6
7475c2f26dSRichard Zhu	bool
7575c2f26dSRichard Zhu
7675c2f26dSRichard Zhuconfig PCI_IMX6_HOST
7780c170d7SBjorn Helgaas	bool "Freescale i.MX6/7/8 PCIe controller (host mode)"
787e8ab1b2SLeonard Crestez	depends on ARCH_MXC || COMPILE_TEST
79a474d3fbSThomas Gleixner	depends on PCI_MSI
806e0832faSShawn Lin	select PCIE_DW_HOST
8175c2f26dSRichard Zhu	select PCI_IMX6
8275c2f26dSRichard Zhu	help
8375c2f26dSRichard Zhu	  Enables support for the PCIe controller in the i.MX SoCs to
8475c2f26dSRichard Zhu	  work in Root Complex mode. The PCI controller on i.MX is based
8575c2f26dSRichard Zhu	  on DesignWare hardware and therefore the driver re-uses the
8675c2f26dSRichard Zhu	  DesignWare core functions to implement the driver.
8775c2f26dSRichard Zhu
8875c2f26dSRichard Zhuconfig PCI_IMX6_EP
8980c170d7SBjorn Helgaas	bool "Freescale i.MX6/7/8 PCIe controller (endpoint mode)"
9075c2f26dSRichard Zhu	depends on ARCH_MXC || COMPILE_TEST
9175c2f26dSRichard Zhu	depends on PCI_ENDPOINT
9275c2f26dSRichard Zhu	select PCIE_DW_EP
9375c2f26dSRichard Zhu	select PCI_IMX6
9475c2f26dSRichard Zhu	help
9575c2f26dSRichard Zhu	  Enables support for the PCIe controller in the i.MX SoCs to
9675c2f26dSRichard Zhu	  work in endpoint mode. The PCI controller on i.MX is based
9775c2f26dSRichard Zhu	  on DesignWare hardware and therefore the driver re-uses the
9875c2f26dSRichard Zhu	  DesignWare core functions to implement the driver.
996e0832faSShawn Lin
1006e0832faSShawn Linconfig PCI_LAYERSCAPE
10180c170d7SBjorn Helgaas	bool "Freescale Layerscape PCIe controller (host mode)"
1026e0832faSShawn Lin	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
103a474d3fbSThomas Gleixner	depends on PCI_MSI
1046e0832faSShawn Lin	select PCIE_DW_HOST
1052908a0d8SAndy Shevchenko	select MFD_SYSCON
1066e0832faSShawn Lin	help
107b5b24617SXiaowei Bao	  Say Y here if you want to enable PCIe controller support on Layerscape
108b5b24617SXiaowei Bao	  SoCs to work in Host mode.
109b5b24617SXiaowei Bao	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
110b5b24617SXiaowei Bao	  determines which PCIe controller works in EP mode and which PCIe
111b5b24617SXiaowei Bao	  controller works in RC mode.
112b5b24617SXiaowei Bao
113b5b24617SXiaowei Baoconfig PCI_LAYERSCAPE_EP
11480c170d7SBjorn Helgaas	bool "Freescale Layerscape PCIe controller (endpoint mode)"
115b5b24617SXiaowei Bao	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
116b5b24617SXiaowei Bao	depends on PCI_ENDPOINT
117b5b24617SXiaowei Bao	select PCIE_DW_EP
118b5b24617SXiaowei Bao	help
119b5b24617SXiaowei Bao	  Say Y here if you want to enable PCIe controller support on Layerscape
120b5b24617SXiaowei Bao	  SoCs to work in Endpoint mode.
121b5b24617SXiaowei Bao	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
122b5b24617SXiaowei Bao	  determines which PCIe controller works in EP mode and which PCIe
123b5b24617SXiaowei Bao	  controller works in RC mode.
1246e0832faSShawn Lin
1256e0832faSShawn Linconfig PCI_HISI
1266e0832faSShawn Lin	depends on OF && (ARM64 || COMPILE_TEST)
12780c170d7SBjorn Helgaas	bool "HiSilicon Hip05 and Hip06 SoCs PCIe controller"
128a474d3fbSThomas Gleixner	depends on PCI_MSI
1296e0832faSShawn Lin	select PCIE_DW_HOST
1306e0832faSShawn Lin	select PCI_HOST_COMMON
1316e0832faSShawn Lin	help
1326e0832faSShawn Lin	  Say Y here if you want PCIe controller support on HiSilicon
1336e0832faSShawn Lin	  Hip05 and Hip06 SoCs
1346e0832faSShawn Lin
135c39819c0SBjorn Helgaasconfig PCIE_KIRIN
136c39819c0SBjorn Helgaas	depends on OF && (ARM64 || COMPILE_TEST)
137c39819c0SBjorn Helgaas	tristate "HiSilicon Kirin PCIe controller"
138a474d3fbSThomas Gleixner	depends on PCI_MSI
1396e0832faSShawn Lin	select PCIE_DW_HOST
140c39819c0SBjorn Helgaas	select REGMAP_MMIO
1416e0832faSShawn Lin	help
142c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support
143c39819c0SBjorn Helgaas	  on HiSilicon Kirin series SoCs.
1446e0832faSShawn Lin
145c39819c0SBjorn Helgaasconfig PCIE_HISI_STB
146c39819c0SBjorn Helgaas	bool "HiSilicon STB PCIe controller"
147c39819c0SBjorn Helgaas	depends on ARCH_HISI || COMPILE_TEST
148a474d3fbSThomas Gleixner	depends on PCI_MSI
1496e0832faSShawn Lin	select PCIE_DW_HOST
1506e0832faSShawn Lin	help
151c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support on HiSilicon STB SoCs
1520e898eb8SSimon Xue
153ed22aaaeSDilip Kotaconfig PCIE_INTEL_GW
15480c170d7SBjorn Helgaas	bool "Intel Gateway PCIe controller "
155ed22aaaeSDilip Kota	depends on OF && (X86 || COMPILE_TEST)
156a474d3fbSThomas Gleixner	depends on PCI_MSI
157ed22aaaeSDilip Kota	select PCIE_DW_HOST
158ed22aaaeSDilip Kota	help
159ed22aaaeSDilip Kota	  Say 'Y' here to enable PCIe Host controller support on Intel
160ed22aaaeSDilip Kota	  Gateway SoCs.
161ed22aaaeSDilip Kota	  The PCIe controller uses the DesignWare core plus Intel-specific
162ed22aaaeSDilip Kota	  hardware wrappers.
163ed22aaaeSDilip Kota
1640c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY
1650c87f90bSSrikanth Thokala	bool
1660c87f90bSSrikanth Thokala
1670c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_HOST
16880c170d7SBjorn Helgaas	bool "Intel Keem Bay PCIe controller (host mode)"
1690c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
170a474d3fbSThomas Gleixner	depends on PCI_MSI
1710c87f90bSSrikanth Thokala	select PCIE_DW_HOST
1720c87f90bSSrikanth Thokala	select PCIE_KEEMBAY
1730c87f90bSSrikanth Thokala	help
1740c87f90bSSrikanth Thokala	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
1750c87f90bSSrikanth Thokala	  to work in host mode.
1760c87f90bSSrikanth Thokala	  The PCIe controller is based on DesignWare Hardware and uses
1770c87f90bSSrikanth Thokala	  DesignWare core functions.
1780c87f90bSSrikanth Thokala
1790c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_EP
18080c170d7SBjorn Helgaas	bool "Intel Keem Bay PCIe controller (endpoint mode)"
1810c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
182a474d3fbSThomas Gleixner	depends on PCI_MSI
1830c87f90bSSrikanth Thokala	depends on PCI_ENDPOINT
1840c87f90bSSrikanth Thokala	select PCIE_DW_EP
1850c87f90bSSrikanth Thokala	select PCIE_KEEMBAY
1860c87f90bSSrikanth Thokala	help
1870c87f90bSSrikanth Thokala	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
1880c87f90bSSrikanth Thokala	  to work in endpoint mode.
1890c87f90bSSrikanth Thokala	  The PCIe controller is based on DesignWare Hardware and uses
1900c87f90bSSrikanth Thokala	  DesignWare core functions.
1910c87f90bSSrikanth Thokala
192c39819c0SBjorn Helgaasconfig PCIE_ARMADA_8K
193c39819c0SBjorn Helgaas	bool "Marvell Armada-8K PCIe controller"
194c39819c0SBjorn Helgaas	depends on ARCH_MVEBU || COMPILE_TEST
195a474d3fbSThomas Gleixner	depends on PCI_MSI
1966e0832faSShawn Lin	select PCIE_DW_HOST
1976e0832faSShawn Lin	help
198c39819c0SBjorn Helgaas	  Say Y here if you want to enable PCIe controller support on
199c39819c0SBjorn Helgaas	  Armada-8K SoCs. The PCIe controller on Armada-8K is based on
200c39819c0SBjorn Helgaas	  DesignWare hardware and therefore the driver re-uses the
201c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
2029c0ef6d3SYue Wang
20356e15a23SVidya Sagarconfig PCIE_TEGRA194
204c57247f9SVidya Sagar	tristate
205c57247f9SVidya Sagar
206c57247f9SVidya Sagarconfig PCIE_TEGRA194_HOST
20780c170d7SBjorn Helgaas	tristate "NVIDIA Tegra194 (and later) PCIe controller (host mode)"
20856e15a23SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
209a474d3fbSThomas Gleixner	depends on PCI_MSI
21056e15a23SVidya Sagar	select PCIE_DW_HOST
21156e15a23SVidya Sagar	select PHY_TEGRA194_P2U
212c57247f9SVidya Sagar	select PCIE_TEGRA194
21356e15a23SVidya Sagar	help
214c57247f9SVidya Sagar	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
215c57247f9SVidya Sagar	  work in host mode. There are two instances of PCIe controllers in
216c57247f9SVidya Sagar	  Tegra194. This controller can work either as EP or RC. In order to
217c57247f9SVidya Sagar	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
218c57247f9SVidya Sagar	  in order to enable device-specific features PCIE_TEGRA194_EP must be
219c57247f9SVidya Sagar	  selected. This uses the DesignWare core.
220c57247f9SVidya Sagar
221c57247f9SVidya Sagarconfig PCIE_TEGRA194_EP
22280c170d7SBjorn Helgaas	tristate "NVIDIA Tegra194 (and later) PCIe controller (endpoint mode)"
223c57247f9SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
224c57247f9SVidya Sagar	depends on PCI_ENDPOINT
225c57247f9SVidya Sagar	select PCIE_DW_EP
226c57247f9SVidya Sagar	select PHY_TEGRA194_P2U
227c57247f9SVidya Sagar	select PCIE_TEGRA194
228c57247f9SVidya Sagar	help
229c57247f9SVidya Sagar	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
23010739e2aSWesley Sheng	  work in endpoint mode. There are two instances of PCIe controllers in
231c57247f9SVidya Sagar	  Tegra194. This controller can work either as EP or RC. In order to
232c57247f9SVidya Sagar	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
233c57247f9SVidya Sagar	  in order to enable device-specific features PCIE_TEGRA194_EP must be
234c57247f9SVidya Sagar	  selected. This uses the DesignWare core.
23556e15a23SVidya Sagar
236c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT
237c39819c0SBjorn Helgaas	bool
238c39819c0SBjorn Helgaas
239c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT_HOST
240c39819c0SBjorn Helgaas	bool "Platform bus based DesignWare PCIe controller (host mode)"
241c39819c0SBjorn Helgaas	depends on PCI_MSI
242c39819c0SBjorn Helgaas	select PCIE_DW_HOST
243c39819c0SBjorn Helgaas	select PCIE_DW_PLAT
244c39819c0SBjorn Helgaas	help
245c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Designware IP to
246c39819c0SBjorn Helgaas	  work in host mode. There are two instances of PCIe controller in
247c39819c0SBjorn Helgaas	  Designware IP.
248c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
249c39819c0SBjorn Helgaas	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
250c39819c0SBjorn Helgaas	  order to enable device-specific features PCI_DW_PLAT_EP must be
251c39819c0SBjorn Helgaas	  selected.
252c39819c0SBjorn Helgaas
253c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT_EP
254c39819c0SBjorn Helgaas	bool "Platform bus based DesignWare PCIe controller (endpoint mode)"
255c39819c0SBjorn Helgaas	depends on PCI && PCI_MSI
256c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
257c39819c0SBjorn Helgaas	select PCIE_DW_EP
258c39819c0SBjorn Helgaas	select PCIE_DW_PLAT
259c39819c0SBjorn Helgaas	help
260c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Designware IP to
261c39819c0SBjorn Helgaas	  work in endpoint mode. There are two instances of PCIe controller
262c39819c0SBjorn Helgaas	  in Designware IP.
263c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
264c39819c0SBjorn Helgaas	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
265c39819c0SBjorn Helgaas	  order to enable device-specific features PCI_DW_PLAT_EP must be
266c39819c0SBjorn Helgaas	  selected.
267c39819c0SBjorn Helgaas
268*d45736b5SShashank Babu Chinta Venkataconfig PCIE_QCOM_COMMON
269*d45736b5SShashank Babu Chinta Venkata	bool
270*d45736b5SShashank Babu Chinta Venkata
271c39819c0SBjorn Helgaasconfig PCIE_QCOM
272c39819c0SBjorn Helgaas	bool "Qualcomm PCIe controller (host mode)"
273c39819c0SBjorn Helgaas	depends on OF && (ARCH_QCOM || COMPILE_TEST)
274c39819c0SBjorn Helgaas	depends on PCI_MSI
275c39819c0SBjorn Helgaas	select PCIE_DW_HOST
276c39819c0SBjorn Helgaas	select CRC8
277*d45736b5SShashank Babu Chinta Venkata	select PCIE_QCOM_COMMON
278c39819c0SBjorn Helgaas	help
279c39819c0SBjorn Helgaas	  Say Y here to enable PCIe controller support on Qualcomm SoCs. The
280c39819c0SBjorn Helgaas	  PCIe controller uses the DesignWare core plus Qualcomm-specific
281c39819c0SBjorn Helgaas	  hardware wrappers.
282c39819c0SBjorn Helgaas
283c39819c0SBjorn Helgaasconfig PCIE_QCOM_EP
284c39819c0SBjorn Helgaas	tristate "Qualcomm PCIe controller (endpoint mode)"
285c39819c0SBjorn Helgaas	depends on OF && (ARCH_QCOM || COMPILE_TEST)
286c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
287c39819c0SBjorn Helgaas	select PCIE_DW_EP
288*d45736b5SShashank Babu Chinta Venkata	select PCIE_QCOM_COMMON
289c39819c0SBjorn Helgaas	help
290c39819c0SBjorn Helgaas	  Say Y here to enable support for the PCIe controllers on Qualcomm SoCs
291c39819c0SBjorn Helgaas	  to work in endpoint mode. The PCIe controller uses the DesignWare core
292c39819c0SBjorn Helgaas	  plus Qualcomm-specific hardware wrappers.
293c39819c0SBjorn Helgaas
2940d0c5510SYoshihiro Shimodaconfig PCIE_RCAR_GEN4
2950d0c5510SYoshihiro Shimoda	tristate
2960d0c5510SYoshihiro Shimoda
2970d0c5510SYoshihiro Shimodaconfig PCIE_RCAR_GEN4_HOST
2980d0c5510SYoshihiro Shimoda	tristate "Renesas R-Car Gen4 PCIe controller (host mode)"
2990d0c5510SYoshihiro Shimoda	depends on ARCH_RENESAS || COMPILE_TEST
3000d0c5510SYoshihiro Shimoda	depends on PCI_MSI
3010d0c5510SYoshihiro Shimoda	select PCIE_DW_HOST
3020d0c5510SYoshihiro Shimoda	select PCIE_RCAR_GEN4
3030d0c5510SYoshihiro Shimoda	help
3040d0c5510SYoshihiro Shimoda	  Say Y here if you want PCIe controller (host mode) on R-Car Gen4 SoCs.
3050d0c5510SYoshihiro Shimoda	  To compile this driver as a module, choose M here: the module will be
3060d0c5510SYoshihiro Shimoda	  called pcie-rcar-gen4.ko. This uses the DesignWare core.
3070d0c5510SYoshihiro Shimoda
308e311b383SYoshihiro Shimodaconfig PCIE_RCAR_GEN4_EP
309e311b383SYoshihiro Shimoda	tristate "Renesas R-Car Gen4 PCIe controller (endpoint mode)"
310e311b383SYoshihiro Shimoda	depends on ARCH_RENESAS || COMPILE_TEST
311e311b383SYoshihiro Shimoda	depends on PCI_ENDPOINT
312e311b383SYoshihiro Shimoda	select PCIE_DW_EP
313e311b383SYoshihiro Shimoda	select PCIE_RCAR_GEN4
314e311b383SYoshihiro Shimoda	help
315e311b383SYoshihiro Shimoda	  Say Y here if you want PCIe controller (endpoint mode) on R-Car Gen4
316e311b383SYoshihiro Shimoda	  SoCs. To compile this driver as a module, choose M here: the module
317e311b383SYoshihiro Shimoda	  will be called pcie-rcar-gen4.ko. This uses the DesignWare core.
318e311b383SYoshihiro Shimoda
319e242f26fSNiklas Casselconfig PCIE_ROCKCHIP_DW
320e242f26fSNiklas Cassel	bool
321e242f26fSNiklas Cassel
322c39819c0SBjorn Helgaasconfig PCIE_ROCKCHIP_DW_HOST
323e242f26fSNiklas Cassel	bool "Rockchip DesignWare PCIe controller (host mode)"
324c39819c0SBjorn Helgaas	depends on PCI_MSI
325c39819c0SBjorn Helgaas	depends on ARCH_ROCKCHIP || COMPILE_TEST
326c39819c0SBjorn Helgaas	depends on OF
327e242f26fSNiklas Cassel	select PCIE_DW_HOST
328e242f26fSNiklas Cassel	select PCIE_ROCKCHIP_DW
329c39819c0SBjorn Helgaas	help
330c39819c0SBjorn Helgaas	  Enables support for the DesignWare PCIe controller in the
331e242f26fSNiklas Cassel	  Rockchip SoC (except RK3399) to work in host mode.
332e242f26fSNiklas Cassel
333e242f26fSNiklas Casselconfig PCIE_ROCKCHIP_DW_EP
334e242f26fSNiklas Cassel	bool "Rockchip DesignWare PCIe controller (endpoint mode)"
335e242f26fSNiklas Cassel	depends on ARCH_ROCKCHIP || COMPILE_TEST
336e242f26fSNiklas Cassel	depends on OF
337e242f26fSNiklas Cassel	depends on PCI_ENDPOINT
338e242f26fSNiklas Cassel	select PCIE_DW_EP
339e242f26fSNiklas Cassel	select PCIE_ROCKCHIP_DW
340e242f26fSNiklas Cassel	help
341e242f26fSNiklas Cassel	  Enables support for the DesignWare PCIe controller in the
342e242f26fSNiklas Cassel	  Rockchip SoC (except RK3399) to work in endpoint mode.
343c39819c0SBjorn Helgaas
344c39819c0SBjorn Helgaasconfig PCI_EXYNOS
345c39819c0SBjorn Helgaas	tristate "Samsung Exynos PCIe controller"
346c39819c0SBjorn Helgaas	depends on ARCH_EXYNOS || COMPILE_TEST
347a474d3fbSThomas Gleixner	depends on PCI_MSI
348da36024aSNobuhiro Iwamatsu	select PCIE_DW_HOST
349da36024aSNobuhiro Iwamatsu	help
350c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Samsung Exynos SoCs
351c39819c0SBjorn Helgaas	  to work in host mode. The PCI controller is based on the DesignWare
352c39819c0SBjorn Helgaas	  hardware and therefore the driver re-uses the DesignWare core
353c39819c0SBjorn Helgaas	  functions to implement the driver.
354c39819c0SBjorn Helgaas
355c39819c0SBjorn Helgaasconfig PCIE_FU740
356c39819c0SBjorn Helgaas	bool "SiFive FU740 PCIe controller"
357c39819c0SBjorn Helgaas	depends on PCI_MSI
358edd6ae10SConor Dooley	depends on ARCH_SIFIVE || COMPILE_TEST
359c39819c0SBjorn Helgaas	select PCIE_DW_HOST
360c39819c0SBjorn Helgaas	help
361c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support for the SiFive
362c39819c0SBjorn Helgaas	  FU740.
363da36024aSNobuhiro Iwamatsu
3647e6d5cd8SKunihiko Hayashiconfig PCIE_UNIPHIER
36580c170d7SBjorn Helgaas	bool "Socionext UniPhier PCIe controller (host mode)"
3667e6d5cd8SKunihiko Hayashi	depends on ARCH_UNIPHIER || COMPILE_TEST
3677e6d5cd8SKunihiko Hayashi	depends on OF && HAS_IOMEM
368a474d3fbSThomas Gleixner	depends on PCI_MSI
3697e6d5cd8SKunihiko Hayashi	select PCIE_DW_HOST
3707e6d5cd8SKunihiko Hayashi	help
3718d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe host controller support on UniPhier SoCs.
3727e6d5cd8SKunihiko Hayashi	  This driver supports LD20 and PXs3 SoCs.
3737e6d5cd8SKunihiko Hayashi
3748d7e33d6SKunihiko Hayashiconfig PCIE_UNIPHIER_EP
37580c170d7SBjorn Helgaas	bool "Socionext UniPhier PCIe controller (endpoint mode)"
3768d7e33d6SKunihiko Hayashi	depends on ARCH_UNIPHIER || COMPILE_TEST
3778d7e33d6SKunihiko Hayashi	depends on OF && HAS_IOMEM
3788d7e33d6SKunihiko Hayashi	depends on PCI_ENDPOINT
3798d7e33d6SKunihiko Hayashi	select PCIE_DW_EP
3808d7e33d6SKunihiko Hayashi	help
3818d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe endpoint controller support on
3828d7e33d6SKunihiko Hayashi	  UniPhier SoCs. This driver supports Pro5 SoC.
3838d7e33d6SKunihiko Hayashi
384c39819c0SBjorn Helgaasconfig PCIE_SPEAR13XX
385c39819c0SBjorn Helgaas	bool "STMicroelectronics SPEAr PCIe controller"
386c39819c0SBjorn Helgaas	depends on ARCH_SPEAR13XX || COMPILE_TEST
387a474d3fbSThomas Gleixner	depends on PCI_MSI
388a8daea94SJonathan Chocron	select PCIE_DW_HOST
389a8daea94SJonathan Chocron	help
390c39819c0SBjorn Helgaas	  Say Y here if you want PCIe support on SPEAr13XX SoCs.
391a8daea94SJonathan Chocron
392c39819c0SBjorn Helgaasconfig PCI_DRA7XX
393c39819c0SBjorn Helgaas	tristate
394c39819c0SBjorn Helgaas
395c39819c0SBjorn Helgaasconfig PCI_DRA7XX_HOST
396c39819c0SBjorn Helgaas	tristate "TI DRA7xx PCIe controller (host mode)"
397c39819c0SBjorn Helgaas	depends on SOC_DRA7XX || COMPILE_TEST
398c39819c0SBjorn Helgaas	depends on OF && HAS_IOMEM && TI_PIPE3
399a474d3fbSThomas Gleixner	depends on PCI_MSI
400c39819c0SBjorn Helgaas	select PCIE_DW_HOST
401c39819c0SBjorn Helgaas	select PCI_DRA7XX
402c39819c0SBjorn Helgaas	default y if SOC_DRA7XX
403c39819c0SBjorn Helgaas	help
404c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the DRA7xx SoC to work in
405c39819c0SBjorn Helgaas	  host mode. There are two instances of PCIe controller in DRA7xx.
406c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
407c39819c0SBjorn Helgaas	  host-specific features PCI_DRA7XX_HOST must be selected and in order
408c39819c0SBjorn Helgaas	  to enable device-specific features PCI_DRA7XX_EP must be selected.
409c39819c0SBjorn Helgaas	  This uses the DesignWare core.
410c39819c0SBjorn Helgaas
411c39819c0SBjorn Helgaasconfig PCI_DRA7XX_EP
412c39819c0SBjorn Helgaas	tristate "TI DRA7xx PCIe controller (endpoint mode)"
413c39819c0SBjorn Helgaas	depends on SOC_DRA7XX || COMPILE_TEST
414c39819c0SBjorn Helgaas	depends on OF && HAS_IOMEM && TI_PIPE3
415c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
416c39819c0SBjorn Helgaas	select PCIE_DW_EP
417c39819c0SBjorn Helgaas	select PCI_DRA7XX
418c39819c0SBjorn Helgaas	help
419c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the DRA7xx SoC to work in
420c39819c0SBjorn Helgaas	  endpoint mode. There are two instances of PCIe controller in DRA7xx.
421c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
422c39819c0SBjorn Helgaas	  host-specific features PCI_DRA7XX_HOST must be selected and in order
423c39819c0SBjorn Helgaas	  to enable device-specific features PCI_DRA7XX_EP must be selected.
424c39819c0SBjorn Helgaas	  This uses the DesignWare core.
425c39819c0SBjorn Helgaas
426c39819c0SBjorn Helgaasconfig PCI_KEYSTONE
427c39819c0SBjorn Helgaas	bool
428c39819c0SBjorn Helgaas
429c39819c0SBjorn Helgaasconfig PCI_KEYSTONE_HOST
430c39819c0SBjorn Helgaas	bool "TI Keystone PCIe controller (host mode)"
431c39819c0SBjorn Helgaas	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
432c39819c0SBjorn Helgaas	depends on PCI_MSI
433c39819c0SBjorn Helgaas	select PCIE_DW_HOST
434c39819c0SBjorn Helgaas	select PCI_KEYSTONE
435c39819c0SBjorn Helgaas	help
436c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Keystone SoC to
437c39819c0SBjorn Helgaas	  work in host mode. The PCI controller on Keystone is based on
438c39819c0SBjorn Helgaas	  DesignWare hardware and therefore the driver re-uses the
439c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
440c39819c0SBjorn Helgaas
441c39819c0SBjorn Helgaasconfig PCI_KEYSTONE_EP
442c39819c0SBjorn Helgaas	bool "TI Keystone PCIe controller (endpoint mode)"
443c39819c0SBjorn Helgaas	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
444c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
445c39819c0SBjorn Helgaas	select PCIE_DW_EP
446c39819c0SBjorn Helgaas	select PCI_KEYSTONE
447c39819c0SBjorn Helgaas	help
448c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Keystone SoC to
449c39819c0SBjorn Helgaas	  work in endpoint mode. The PCI controller on Keystone is based
450c39819c0SBjorn Helgaas	  on DesignWare hardware and therefore the driver re-uses the
451c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
452c39819c0SBjorn Helgaas
453c39819c0SBjorn Helgaasconfig PCIE_VISCONTI_HOST
454c39819c0SBjorn Helgaas	bool "Toshiba Visconti PCIe controller"
455c39819c0SBjorn Helgaas	depends on ARCH_VISCONTI || COMPILE_TEST
456c39819c0SBjorn Helgaas	depends on PCI_MSI
457e7e21b3aSPaul Walmsley	select PCIE_DW_HOST
458e7e21b3aSPaul Walmsley	help
459c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support on Toshiba Visconti SoC.
460c39819c0SBjorn Helgaas	  This driver supports TMPV7708 SoC.
461e7e21b3aSPaul Walmsley
4626e0832faSShawn Linendmenu
463