xref: /linux/drivers/pci/controller/dwc/Kconfig (revision 4fbfa17f9a075593281034f566ca79cbf4930c82)
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
9*4fbfa17fSShradha Todiconfig PCIE_DW_DEBUGFS
10*4fbfa17fSShradha Todi	bool "DesignWare PCIe debugfs entries"
11*4fbfa17fSShradha Todi	depends on DEBUG_FS
12*4fbfa17fSShradha Todi	depends on PCIE_DW_HOST || PCIE_DW_EP
13*4fbfa17fSShradha Todi	help
14*4fbfa17fSShradha Todi	  Say Y here to enable debugfs entries for the PCIe controller. These
15*4fbfa17fSShradha Todi	  entries provide various debug features related to the controller and
16*4fbfa17fSShradha Todi	  expose the RAS DES capabilities such as Silicon Debug, Error Injection
17*4fbfa17fSShradha Todi	  and Statistical Counters.
18*4fbfa17fSShradha Todi
196e0832faSShawn Linconfig PCIE_DW_HOST
206e0832faSShawn Lin	bool
216e0832faSShawn Lin	select PCIE_DW
226e0832faSShawn Lin
236e0832faSShawn Linconfig PCIE_DW_EP
246e0832faSShawn Lin	bool
256e0832faSShawn Lin	select PCIE_DW
266e0832faSShawn Lin
27c39819c0SBjorn Helgaasconfig PCIE_AL
28c39819c0SBjorn Helgaas	bool "Amazon Annapurna Labs PCIe controller"
29c39819c0SBjorn Helgaas	depends on OF && (ARM64 || COMPILE_TEST)
30a474d3fbSThomas Gleixner	depends on PCI_MSI
316e0832faSShawn Lin	select PCIE_DW_HOST
32c39819c0SBjorn Helgaas	select PCI_ECAM
336e0832faSShawn Lin	help
34c39819c0SBjorn Helgaas	  Say Y here to enable support of the Amazon's Annapurna Labs PCIe
35c39819c0SBjorn Helgaas	  controller IP on Amazon SoCs. The PCIe controller uses the DesignWare
36c39819c0SBjorn Helgaas	  core plus Annapurna Labs proprietary hardware wrappers. This is
37c39819c0SBjorn Helgaas	  required only for DT-based platforms. ACPI platforms with the
38c39819c0SBjorn Helgaas	  Annapurna Labs PCIe controller don't need to enable this.
396e0832faSShawn Lin
40c39819c0SBjorn Helgaasconfig PCI_MESON
41c39819c0SBjorn Helgaas	tristate "Amlogic Meson PCIe controller"
42c39819c0SBjorn Helgaas	default m if ARCH_MESON
43c39819c0SBjorn Helgaas	depends on PCI_MSI
44c39819c0SBjorn Helgaas	select PCIE_DW_HOST
456e0832faSShawn Lin	help
46c39819c0SBjorn Helgaas	  Say Y here if you want to enable PCI controller support on Amlogic
47c39819c0SBjorn Helgaas	  SoCs. The PCI controller on Amlogic is based on DesignWare hardware
48c39819c0SBjorn Helgaas	  and therefore the driver re-uses the DesignWare core functions to
49c39819c0SBjorn Helgaas	  implement the driver.
506e0832faSShawn Lin
51c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6
526e0832faSShawn Lin	bool
536e0832faSShawn Lin
54c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6_HOST
55c39819c0SBjorn Helgaas	bool "Axis ARTPEC-6 PCIe controller (host mode)"
56c39819c0SBjorn Helgaas	depends on MACH_ARTPEC6 || COMPILE_TEST
57a474d3fbSThomas Gleixner	depends on PCI_MSI
586e0832faSShawn Lin	select PCIE_DW_HOST
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	  host mode. This uses the DesignWare core.
636e0832faSShawn Lin
64c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6_EP
65c39819c0SBjorn Helgaas	bool "Axis ARTPEC-6 PCIe controller (endpoint mode)"
66c39819c0SBjorn Helgaas	depends on MACH_ARTPEC6 || COMPILE_TEST
676e0832faSShawn Lin	depends on PCI_ENDPOINT
686e0832faSShawn Lin	select PCIE_DW_EP
69c39819c0SBjorn Helgaas	select PCIE_ARTPEC6
706e0832faSShawn Lin	help
71c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
72c39819c0SBjorn Helgaas	  endpoint mode. This uses the DesignWare core.
736e0832faSShawn Lin
74c39819c0SBjorn Helgaasconfig PCIE_BT1
75c39819c0SBjorn Helgaas	tristate "Baikal-T1 PCIe controller"
76c39819c0SBjorn Helgaas	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
77a474d3fbSThomas Gleixner	depends on PCI_MSI
786e0832faSShawn Lin	select PCIE_DW_HOST
79778f7c19SJaehoon Chung	help
80c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Baikal-T1 SoC to work
81c39819c0SBjorn Helgaas	  in host mode. It's based on the Synopsys DWC PCIe v4.60a IP-core.
826e0832faSShawn Lin
836e0832faSShawn Linconfig PCI_IMX6
8475c2f26dSRichard Zhu	bool
8575c2f26dSRichard Zhu
8675c2f26dSRichard Zhuconfig PCI_IMX6_HOST
8780c170d7SBjorn Helgaas	bool "Freescale i.MX6/7/8 PCIe controller (host mode)"
887e8ab1b2SLeonard Crestez	depends on ARCH_MXC || COMPILE_TEST
89a474d3fbSThomas Gleixner	depends on PCI_MSI
906e0832faSShawn Lin	select PCIE_DW_HOST
9175c2f26dSRichard Zhu	select PCI_IMX6
9275c2f26dSRichard Zhu	help
9375c2f26dSRichard Zhu	  Enables support for the PCIe controller in the i.MX SoCs to
9475c2f26dSRichard Zhu	  work in Root Complex mode. The PCI controller on i.MX is based
9575c2f26dSRichard Zhu	  on DesignWare hardware and therefore the driver re-uses the
9675c2f26dSRichard Zhu	  DesignWare core functions to implement the driver.
9775c2f26dSRichard Zhu
9875c2f26dSRichard Zhuconfig PCI_IMX6_EP
9980c170d7SBjorn Helgaas	bool "Freescale i.MX6/7/8 PCIe controller (endpoint mode)"
10075c2f26dSRichard Zhu	depends on ARCH_MXC || COMPILE_TEST
10175c2f26dSRichard Zhu	depends on PCI_ENDPOINT
10275c2f26dSRichard Zhu	select PCIE_DW_EP
10375c2f26dSRichard Zhu	select PCI_IMX6
10475c2f26dSRichard Zhu	help
10575c2f26dSRichard Zhu	  Enables support for the PCIe controller in the i.MX SoCs to
10675c2f26dSRichard Zhu	  work in endpoint mode. The PCI controller on i.MX is based
10775c2f26dSRichard Zhu	  on DesignWare hardware and therefore the driver re-uses the
10875c2f26dSRichard Zhu	  DesignWare core functions to implement the driver.
1096e0832faSShawn Lin
1106e0832faSShawn Linconfig PCI_LAYERSCAPE
11180c170d7SBjorn Helgaas	bool "Freescale Layerscape PCIe controller (host mode)"
1126e0832faSShawn Lin	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
113a474d3fbSThomas Gleixner	depends on PCI_MSI
1146e0832faSShawn Lin	select PCIE_DW_HOST
1152908a0d8SAndy Shevchenko	select MFD_SYSCON
1166e0832faSShawn Lin	help
117b5b24617SXiaowei Bao	  Say Y here if you want to enable PCIe controller support on Layerscape
118b5b24617SXiaowei Bao	  SoCs to work in Host mode.
119b5b24617SXiaowei Bao	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
120b5b24617SXiaowei Bao	  determines which PCIe controller works in EP mode and which PCIe
121b5b24617SXiaowei Bao	  controller works in RC mode.
122b5b24617SXiaowei Bao
123b5b24617SXiaowei Baoconfig PCI_LAYERSCAPE_EP
12480c170d7SBjorn Helgaas	bool "Freescale Layerscape PCIe controller (endpoint mode)"
125b5b24617SXiaowei Bao	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
126b5b24617SXiaowei Bao	depends on PCI_ENDPOINT
127b5b24617SXiaowei Bao	select PCIE_DW_EP
128b5b24617SXiaowei Bao	help
129b5b24617SXiaowei Bao	  Say Y here if you want to enable PCIe controller support on Layerscape
130b5b24617SXiaowei Bao	  SoCs to work in Endpoint mode.
131b5b24617SXiaowei Bao	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
132b5b24617SXiaowei Bao	  determines which PCIe controller works in EP mode and which PCIe
133b5b24617SXiaowei Bao	  controller works in RC mode.
1346e0832faSShawn Lin
1356e0832faSShawn Linconfig PCI_HISI
1366e0832faSShawn Lin	depends on OF && (ARM64 || COMPILE_TEST)
13780c170d7SBjorn Helgaas	bool "HiSilicon Hip05 and Hip06 SoCs PCIe controller"
138a474d3fbSThomas Gleixner	depends on PCI_MSI
1396e0832faSShawn Lin	select PCIE_DW_HOST
1406e0832faSShawn Lin	select PCI_HOST_COMMON
1416e0832faSShawn Lin	help
1426e0832faSShawn Lin	  Say Y here if you want PCIe controller support on HiSilicon
1436e0832faSShawn Lin	  Hip05 and Hip06 SoCs
1446e0832faSShawn Lin
145c39819c0SBjorn Helgaasconfig PCIE_KIRIN
146c39819c0SBjorn Helgaas	depends on OF && (ARM64 || COMPILE_TEST)
147c39819c0SBjorn Helgaas	tristate "HiSilicon Kirin PCIe controller"
148a474d3fbSThomas Gleixner	depends on PCI_MSI
1496e0832faSShawn Lin	select PCIE_DW_HOST
150c39819c0SBjorn Helgaas	select REGMAP_MMIO
1516e0832faSShawn Lin	help
152c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support
153c39819c0SBjorn Helgaas	  on HiSilicon Kirin series SoCs.
1546e0832faSShawn Lin
155c39819c0SBjorn Helgaasconfig PCIE_HISI_STB
156c39819c0SBjorn Helgaas	bool "HiSilicon STB PCIe controller"
157c39819c0SBjorn Helgaas	depends on ARCH_HISI || COMPILE_TEST
158a474d3fbSThomas Gleixner	depends on PCI_MSI
1596e0832faSShawn Lin	select PCIE_DW_HOST
1606e0832faSShawn Lin	help
161c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support on HiSilicon STB SoCs
1620e898eb8SSimon Xue
163ed22aaaeSDilip Kotaconfig PCIE_INTEL_GW
16480c170d7SBjorn Helgaas	bool "Intel Gateway PCIe controller "
165ed22aaaeSDilip Kota	depends on OF && (X86 || COMPILE_TEST)
166a474d3fbSThomas Gleixner	depends on PCI_MSI
167ed22aaaeSDilip Kota	select PCIE_DW_HOST
168ed22aaaeSDilip Kota	help
169ed22aaaeSDilip Kota	  Say 'Y' here to enable PCIe Host controller support on Intel
170ed22aaaeSDilip Kota	  Gateway SoCs.
171ed22aaaeSDilip Kota	  The PCIe controller uses the DesignWare core plus Intel-specific
172ed22aaaeSDilip Kota	  hardware wrappers.
173ed22aaaeSDilip Kota
1740c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY
1750c87f90bSSrikanth Thokala	bool
1760c87f90bSSrikanth Thokala
1770c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_HOST
17880c170d7SBjorn Helgaas	bool "Intel Keem Bay PCIe controller (host mode)"
1790c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
180a474d3fbSThomas Gleixner	depends on PCI_MSI
1810c87f90bSSrikanth Thokala	select PCIE_DW_HOST
1820c87f90bSSrikanth Thokala	select PCIE_KEEMBAY
1830c87f90bSSrikanth Thokala	help
1840c87f90bSSrikanth Thokala	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
1850c87f90bSSrikanth Thokala	  to work in host mode.
1860c87f90bSSrikanth Thokala	  The PCIe controller is based on DesignWare Hardware and uses
1870c87f90bSSrikanth Thokala	  DesignWare core functions.
1880c87f90bSSrikanth Thokala
1890c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_EP
19080c170d7SBjorn Helgaas	bool "Intel Keem Bay PCIe controller (endpoint mode)"
1910c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
192a474d3fbSThomas Gleixner	depends on PCI_MSI
1930c87f90bSSrikanth Thokala	depends on PCI_ENDPOINT
1940c87f90bSSrikanth Thokala	select PCIE_DW_EP
1950c87f90bSSrikanth Thokala	select PCIE_KEEMBAY
1960c87f90bSSrikanth Thokala	help
1970c87f90bSSrikanth Thokala	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
1980c87f90bSSrikanth Thokala	  to work in endpoint mode.
1990c87f90bSSrikanth Thokala	  The PCIe controller is based on DesignWare Hardware and uses
2000c87f90bSSrikanth Thokala	  DesignWare core functions.
2010c87f90bSSrikanth Thokala
202c39819c0SBjorn Helgaasconfig PCIE_ARMADA_8K
203c39819c0SBjorn Helgaas	bool "Marvell Armada-8K PCIe controller"
204c39819c0SBjorn Helgaas	depends on ARCH_MVEBU || COMPILE_TEST
205a474d3fbSThomas Gleixner	depends on PCI_MSI
2066e0832faSShawn Lin	select PCIE_DW_HOST
2076e0832faSShawn Lin	help
208c39819c0SBjorn Helgaas	  Say Y here if you want to enable PCIe controller support on
209c39819c0SBjorn Helgaas	  Armada-8K SoCs. The PCIe controller on Armada-8K is based on
210c39819c0SBjorn Helgaas	  DesignWare hardware and therefore the driver re-uses the
211c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
2129c0ef6d3SYue Wang
21356e15a23SVidya Sagarconfig PCIE_TEGRA194
214c57247f9SVidya Sagar	tristate
215c57247f9SVidya Sagar
216c57247f9SVidya Sagarconfig PCIE_TEGRA194_HOST
21780c170d7SBjorn Helgaas	tristate "NVIDIA Tegra194 (and later) PCIe controller (host mode)"
21856e15a23SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
219a474d3fbSThomas Gleixner	depends on PCI_MSI
22056e15a23SVidya Sagar	select PCIE_DW_HOST
22156e15a23SVidya Sagar	select PHY_TEGRA194_P2U
222c57247f9SVidya Sagar	select PCIE_TEGRA194
22356e15a23SVidya Sagar	help
224c57247f9SVidya Sagar	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
225c57247f9SVidya Sagar	  work in host mode. There are two instances of PCIe controllers in
226c57247f9SVidya Sagar	  Tegra194. This controller can work either as EP or RC. In order to
227c57247f9SVidya Sagar	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
228c57247f9SVidya Sagar	  in order to enable device-specific features PCIE_TEGRA194_EP must be
229c57247f9SVidya Sagar	  selected. This uses the DesignWare core.
230c57247f9SVidya Sagar
231c57247f9SVidya Sagarconfig PCIE_TEGRA194_EP
23280c170d7SBjorn Helgaas	tristate "NVIDIA Tegra194 (and later) PCIe controller (endpoint mode)"
233c57247f9SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
234c57247f9SVidya Sagar	depends on PCI_ENDPOINT
235c57247f9SVidya Sagar	select PCIE_DW_EP
236c57247f9SVidya Sagar	select PHY_TEGRA194_P2U
237c57247f9SVidya Sagar	select PCIE_TEGRA194
238c57247f9SVidya Sagar	help
239c57247f9SVidya Sagar	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
24010739e2aSWesley Sheng	  work in endpoint mode. There are two instances of PCIe controllers in
241c57247f9SVidya Sagar	  Tegra194. This controller can work either as EP or RC. In order to
242c57247f9SVidya Sagar	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
243c57247f9SVidya Sagar	  in order to enable device-specific features PCIE_TEGRA194_EP must be
244c57247f9SVidya Sagar	  selected. This uses the DesignWare core.
24556e15a23SVidya Sagar
246c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT
247c39819c0SBjorn Helgaas	bool
248c39819c0SBjorn Helgaas
249c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT_HOST
250c39819c0SBjorn Helgaas	bool "Platform bus based DesignWare PCIe controller (host mode)"
251c39819c0SBjorn Helgaas	depends on PCI_MSI
252c39819c0SBjorn Helgaas	select PCIE_DW_HOST
253c39819c0SBjorn Helgaas	select PCIE_DW_PLAT
254c39819c0SBjorn Helgaas	help
255c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Designware IP to
256c39819c0SBjorn Helgaas	  work in host mode. There are two instances of PCIe controller in
257c39819c0SBjorn Helgaas	  Designware IP.
258c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
259c39819c0SBjorn Helgaas	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
260c39819c0SBjorn Helgaas	  order to enable device-specific features PCI_DW_PLAT_EP must be
261c39819c0SBjorn Helgaas	  selected.
262c39819c0SBjorn Helgaas
263c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT_EP
264c39819c0SBjorn Helgaas	bool "Platform bus based DesignWare PCIe controller (endpoint mode)"
265c39819c0SBjorn Helgaas	depends on PCI && PCI_MSI
266c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
267c39819c0SBjorn Helgaas	select PCIE_DW_EP
268c39819c0SBjorn Helgaas	select PCIE_DW_PLAT
269c39819c0SBjorn Helgaas	help
270c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Designware IP to
271c39819c0SBjorn Helgaas	  work in endpoint mode. There are two instances of PCIe controller
272c39819c0SBjorn Helgaas	  in Designware IP.
273c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
274c39819c0SBjorn Helgaas	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
275c39819c0SBjorn Helgaas	  order to enable device-specific features PCI_DW_PLAT_EP must be
276c39819c0SBjorn Helgaas	  selected.
277c39819c0SBjorn Helgaas
278d45736b5SShashank Babu Chinta Venkataconfig PCIE_QCOM_COMMON
279d45736b5SShashank Babu Chinta Venkata	bool
280d45736b5SShashank Babu Chinta Venkata
281c39819c0SBjorn Helgaasconfig PCIE_QCOM
282c39819c0SBjorn Helgaas	bool "Qualcomm PCIe controller (host mode)"
283c39819c0SBjorn Helgaas	depends on OF && (ARCH_QCOM || COMPILE_TEST)
284c39819c0SBjorn Helgaas	depends on PCI_MSI
285c39819c0SBjorn Helgaas	select PCIE_DW_HOST
286c39819c0SBjorn Helgaas	select CRC8
287d45736b5SShashank Babu Chinta Venkata	select PCIE_QCOM_COMMON
288c39819c0SBjorn Helgaas	help
289c39819c0SBjorn Helgaas	  Say Y here to enable PCIe controller support on Qualcomm SoCs. The
290c39819c0SBjorn Helgaas	  PCIe controller uses the DesignWare core plus Qualcomm-specific
291c39819c0SBjorn Helgaas	  hardware wrappers.
292c39819c0SBjorn Helgaas
293c39819c0SBjorn Helgaasconfig PCIE_QCOM_EP
294c39819c0SBjorn Helgaas	tristate "Qualcomm PCIe controller (endpoint mode)"
295c39819c0SBjorn Helgaas	depends on OF && (ARCH_QCOM || COMPILE_TEST)
296c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
297c39819c0SBjorn Helgaas	select PCIE_DW_EP
298d45736b5SShashank Babu Chinta Venkata	select PCIE_QCOM_COMMON
299c39819c0SBjorn Helgaas	help
300c39819c0SBjorn Helgaas	  Say Y here to enable support for the PCIe controllers on Qualcomm SoCs
301c39819c0SBjorn Helgaas	  to work in endpoint mode. The PCIe controller uses the DesignWare core
302c39819c0SBjorn Helgaas	  plus Qualcomm-specific hardware wrappers.
303c39819c0SBjorn Helgaas
3040d0c5510SYoshihiro Shimodaconfig PCIE_RCAR_GEN4
3050d0c5510SYoshihiro Shimoda	tristate
3060d0c5510SYoshihiro Shimoda
3070d0c5510SYoshihiro Shimodaconfig PCIE_RCAR_GEN4_HOST
3080d0c5510SYoshihiro Shimoda	tristate "Renesas R-Car Gen4 PCIe controller (host mode)"
3090d0c5510SYoshihiro Shimoda	depends on ARCH_RENESAS || COMPILE_TEST
3100d0c5510SYoshihiro Shimoda	depends on PCI_MSI
3110d0c5510SYoshihiro Shimoda	select PCIE_DW_HOST
3120d0c5510SYoshihiro Shimoda	select PCIE_RCAR_GEN4
3130d0c5510SYoshihiro Shimoda	help
3140d0c5510SYoshihiro Shimoda	  Say Y here if you want PCIe controller (host mode) on R-Car Gen4 SoCs.
3150d0c5510SYoshihiro Shimoda	  To compile this driver as a module, choose M here: the module will be
3160d0c5510SYoshihiro Shimoda	  called pcie-rcar-gen4.ko. This uses the DesignWare core.
3170d0c5510SYoshihiro Shimoda
318e311b383SYoshihiro Shimodaconfig PCIE_RCAR_GEN4_EP
319e311b383SYoshihiro Shimoda	tristate "Renesas R-Car Gen4 PCIe controller (endpoint mode)"
320e311b383SYoshihiro Shimoda	depends on ARCH_RENESAS || COMPILE_TEST
321e311b383SYoshihiro Shimoda	depends on PCI_ENDPOINT
322e311b383SYoshihiro Shimoda	select PCIE_DW_EP
323e311b383SYoshihiro Shimoda	select PCIE_RCAR_GEN4
324e311b383SYoshihiro Shimoda	help
325e311b383SYoshihiro Shimoda	  Say Y here if you want PCIe controller (endpoint mode) on R-Car Gen4
326e311b383SYoshihiro Shimoda	  SoCs. To compile this driver as a module, choose M here: the module
327e311b383SYoshihiro Shimoda	  will be called pcie-rcar-gen4.ko. This uses the DesignWare core.
328e311b383SYoshihiro Shimoda
329e242f26fSNiklas Casselconfig PCIE_ROCKCHIP_DW
330e242f26fSNiklas Cassel	bool
331e242f26fSNiklas Cassel
332c39819c0SBjorn Helgaasconfig PCIE_ROCKCHIP_DW_HOST
333e242f26fSNiklas Cassel	bool "Rockchip DesignWare PCIe controller (host mode)"
334c39819c0SBjorn Helgaas	depends on PCI_MSI
335c39819c0SBjorn Helgaas	depends on ARCH_ROCKCHIP || COMPILE_TEST
336c39819c0SBjorn Helgaas	depends on OF
337e242f26fSNiklas Cassel	select PCIE_DW_HOST
338e242f26fSNiklas Cassel	select PCIE_ROCKCHIP_DW
339c39819c0SBjorn Helgaas	help
340c39819c0SBjorn Helgaas	  Enables support for the DesignWare PCIe controller in the
341e242f26fSNiklas Cassel	  Rockchip SoC (except RK3399) to work in host mode.
342e242f26fSNiklas Cassel
343e242f26fSNiklas Casselconfig PCIE_ROCKCHIP_DW_EP
344e242f26fSNiklas Cassel	bool "Rockchip DesignWare PCIe controller (endpoint mode)"
345e242f26fSNiklas Cassel	depends on ARCH_ROCKCHIP || COMPILE_TEST
346e242f26fSNiklas Cassel	depends on OF
347e242f26fSNiklas Cassel	depends on PCI_ENDPOINT
348e242f26fSNiklas Cassel	select PCIE_DW_EP
349e242f26fSNiklas Cassel	select PCIE_ROCKCHIP_DW
350e242f26fSNiklas Cassel	help
351e242f26fSNiklas Cassel	  Enables support for the DesignWare PCIe controller in the
352e242f26fSNiklas Cassel	  Rockchip SoC (except RK3399) to work in endpoint mode.
353c39819c0SBjorn Helgaas
354c39819c0SBjorn Helgaasconfig PCI_EXYNOS
355c39819c0SBjorn Helgaas	tristate "Samsung Exynos PCIe controller"
356c39819c0SBjorn Helgaas	depends on ARCH_EXYNOS || COMPILE_TEST
357a474d3fbSThomas Gleixner	depends on PCI_MSI
358da36024aSNobuhiro Iwamatsu	select PCIE_DW_HOST
359da36024aSNobuhiro Iwamatsu	help
360c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Samsung Exynos SoCs
361c39819c0SBjorn Helgaas	  to work in host mode. The PCI controller is based on the DesignWare
362c39819c0SBjorn Helgaas	  hardware and therefore the driver re-uses the DesignWare core
363c39819c0SBjorn Helgaas	  functions to implement the driver.
364c39819c0SBjorn Helgaas
365c39819c0SBjorn Helgaasconfig PCIE_FU740
366c39819c0SBjorn Helgaas	bool "SiFive FU740 PCIe controller"
367c39819c0SBjorn Helgaas	depends on PCI_MSI
368edd6ae10SConor Dooley	depends on ARCH_SIFIVE || COMPILE_TEST
369c39819c0SBjorn Helgaas	select PCIE_DW_HOST
370c39819c0SBjorn Helgaas	help
371c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support for the SiFive
372c39819c0SBjorn Helgaas	  FU740.
373da36024aSNobuhiro Iwamatsu
3747e6d5cd8SKunihiko Hayashiconfig PCIE_UNIPHIER
37580c170d7SBjorn Helgaas	bool "Socionext UniPhier PCIe controller (host mode)"
3767e6d5cd8SKunihiko Hayashi	depends on ARCH_UNIPHIER || COMPILE_TEST
3777e6d5cd8SKunihiko Hayashi	depends on OF && HAS_IOMEM
378a474d3fbSThomas Gleixner	depends on PCI_MSI
3797e6d5cd8SKunihiko Hayashi	select PCIE_DW_HOST
3807e6d5cd8SKunihiko Hayashi	help
3818d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe host controller support on UniPhier SoCs.
3827e6d5cd8SKunihiko Hayashi	  This driver supports LD20 and PXs3 SoCs.
3837e6d5cd8SKunihiko Hayashi
3848d7e33d6SKunihiko Hayashiconfig PCIE_UNIPHIER_EP
38580c170d7SBjorn Helgaas	bool "Socionext UniPhier PCIe controller (endpoint mode)"
3868d7e33d6SKunihiko Hayashi	depends on ARCH_UNIPHIER || COMPILE_TEST
3878d7e33d6SKunihiko Hayashi	depends on OF && HAS_IOMEM
3888d7e33d6SKunihiko Hayashi	depends on PCI_ENDPOINT
3898d7e33d6SKunihiko Hayashi	select PCIE_DW_EP
3908d7e33d6SKunihiko Hayashi	help
3918d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe endpoint controller support on
3928d7e33d6SKunihiko Hayashi	  UniPhier SoCs. This driver supports Pro5 SoC.
3938d7e33d6SKunihiko Hayashi
394c39819c0SBjorn Helgaasconfig PCIE_SPEAR13XX
395c39819c0SBjorn Helgaas	bool "STMicroelectronics SPEAr PCIe controller"
396c39819c0SBjorn Helgaas	depends on ARCH_SPEAR13XX || COMPILE_TEST
397a474d3fbSThomas Gleixner	depends on PCI_MSI
398a8daea94SJonathan Chocron	select PCIE_DW_HOST
399a8daea94SJonathan Chocron	help
400c39819c0SBjorn Helgaas	  Say Y here if you want PCIe support on SPEAr13XX SoCs.
401a8daea94SJonathan Chocron
402c39819c0SBjorn Helgaasconfig PCI_DRA7XX
403c39819c0SBjorn Helgaas	tristate
404c39819c0SBjorn Helgaas
405c39819c0SBjorn Helgaasconfig PCI_DRA7XX_HOST
406c39819c0SBjorn Helgaas	tristate "TI DRA7xx PCIe controller (host mode)"
407c39819c0SBjorn Helgaas	depends on SOC_DRA7XX || COMPILE_TEST
408c39819c0SBjorn Helgaas	depends on OF && HAS_IOMEM && TI_PIPE3
409a474d3fbSThomas Gleixner	depends on PCI_MSI
410c39819c0SBjorn Helgaas	select PCIE_DW_HOST
411c39819c0SBjorn Helgaas	select PCI_DRA7XX
412c39819c0SBjorn Helgaas	default y if SOC_DRA7XX
413c39819c0SBjorn Helgaas	help
414c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the DRA7xx SoC to work in
415c39819c0SBjorn Helgaas	  host mode. There are two instances of PCIe controller in DRA7xx.
416c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
417c39819c0SBjorn Helgaas	  host-specific features PCI_DRA7XX_HOST must be selected and in order
418c39819c0SBjorn Helgaas	  to enable device-specific features PCI_DRA7XX_EP must be selected.
419c39819c0SBjorn Helgaas	  This uses the DesignWare core.
420c39819c0SBjorn Helgaas
421c39819c0SBjorn Helgaasconfig PCI_DRA7XX_EP
422c39819c0SBjorn Helgaas	tristate "TI DRA7xx PCIe controller (endpoint mode)"
423c39819c0SBjorn Helgaas	depends on SOC_DRA7XX || COMPILE_TEST
424c39819c0SBjorn Helgaas	depends on OF && HAS_IOMEM && TI_PIPE3
425c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
426c39819c0SBjorn Helgaas	select PCIE_DW_EP
427c39819c0SBjorn Helgaas	select PCI_DRA7XX
428c39819c0SBjorn Helgaas	help
429c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the DRA7xx SoC to work in
430c39819c0SBjorn Helgaas	  endpoint mode. There are two instances of PCIe controller in DRA7xx.
431c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
432c39819c0SBjorn Helgaas	  host-specific features PCI_DRA7XX_HOST must be selected and in order
433c39819c0SBjorn Helgaas	  to enable device-specific features PCI_DRA7XX_EP must be selected.
434c39819c0SBjorn Helgaas	  This uses the DesignWare core.
435c39819c0SBjorn Helgaas
436c39819c0SBjorn Helgaasconfig PCI_KEYSTONE
437c39819c0SBjorn Helgaas	bool
438c39819c0SBjorn Helgaas
439c39819c0SBjorn Helgaasconfig PCI_KEYSTONE_HOST
440c39819c0SBjorn Helgaas	bool "TI Keystone PCIe controller (host mode)"
441c39819c0SBjorn Helgaas	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
442c39819c0SBjorn Helgaas	depends on PCI_MSI
443c39819c0SBjorn Helgaas	select PCIE_DW_HOST
444c39819c0SBjorn Helgaas	select PCI_KEYSTONE
445c39819c0SBjorn Helgaas	help
446c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Keystone SoC to
447c39819c0SBjorn Helgaas	  work in host mode. The PCI controller on Keystone is based on
448c39819c0SBjorn Helgaas	  DesignWare hardware and therefore the driver re-uses the
449c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
450c39819c0SBjorn Helgaas
451c39819c0SBjorn Helgaasconfig PCI_KEYSTONE_EP
452c39819c0SBjorn Helgaas	bool "TI Keystone PCIe controller (endpoint mode)"
453c39819c0SBjorn Helgaas	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
454c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
455c39819c0SBjorn Helgaas	select PCIE_DW_EP
456c39819c0SBjorn Helgaas	select PCI_KEYSTONE
457c39819c0SBjorn Helgaas	help
458c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Keystone SoC to
459c39819c0SBjorn Helgaas	  work in endpoint mode. The PCI controller on Keystone is based
460c39819c0SBjorn Helgaas	  on DesignWare hardware and therefore the driver re-uses the
461c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
462c39819c0SBjorn Helgaas
463c39819c0SBjorn Helgaasconfig PCIE_VISCONTI_HOST
464c39819c0SBjorn Helgaas	bool "Toshiba Visconti PCIe controller"
465c39819c0SBjorn Helgaas	depends on ARCH_VISCONTI || COMPILE_TEST
466c39819c0SBjorn Helgaas	depends on PCI_MSI
467e7e21b3aSPaul Walmsley	select PCIE_DW_HOST
468e7e21b3aSPaul Walmsley	help
469c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support on Toshiba Visconti SoC.
470c39819c0SBjorn Helgaas	  This driver supports TMPV7708 SoC.
471e7e21b3aSPaul Walmsley
4726e0832faSShawn Linendmenu
473