xref: /linux-6.15/drivers/pci/controller/dwc/Kconfig (revision 5f3de23d)
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_DEBUGFS
106e0832faSShawn Lin	bool "DesignWare PCIe debugfs entries"
116e0832faSShawn Lin	depends on DEBUG_FS
126e0832faSShawn Lin	depends on PCIE_DW_HOST || PCIE_DW_EP
136e0832faSShawn Lin	help
146e0832faSShawn Lin	  Say Y here to enable debugfs entries for the PCIe controller. These
156e0832faSShawn Lin	  entries provide various debug features related to the controller and
166e0832faSShawn Lin	  expose the RAS DES capabilities such as Silicon Debug, Error Injection
17c39819c0SBjorn Helgaas	  and Statistical Counters.
18c39819c0SBjorn Helgaas
19c39819c0SBjorn Helgaasconfig PCIE_DW_HOST
20a474d3fbSThomas Gleixner	bool
216e0832faSShawn Lin	select PCIE_DW
22c39819c0SBjorn Helgaas
236e0832faSShawn Linconfig PCIE_DW_EP
24c39819c0SBjorn Helgaas	bool
25c39819c0SBjorn Helgaas	select PCIE_DW
26c39819c0SBjorn Helgaas
27c39819c0SBjorn Helgaasconfig PCIE_AL
28c39819c0SBjorn Helgaas	bool "Amazon Annapurna Labs PCIe controller"
296e0832faSShawn Lin	depends on OF && (ARM64 || COMPILE_TEST)
30*5f3de23dSThippeswamy Havalige	depends on PCI_MSI
31*5f3de23dSThippeswamy Havalige	select PCIE_DW_HOST
32*5f3de23dSThippeswamy Havalige	select PCI_ECAM
33*5f3de23dSThippeswamy Havalige	help
34*5f3de23dSThippeswamy Havalige	  Say Y here to enable support of the Amazon's Annapurna Labs PCIe
35*5f3de23dSThippeswamy Havalige	  controller IP on Amazon SoCs. The PCIe controller uses the DesignWare
36*5f3de23dSThippeswamy Havalige	  core plus Annapurna Labs proprietary hardware wrappers. This is
37*5f3de23dSThippeswamy Havalige	  required only for DT-based platforms. ACPI platforms with the
38*5f3de23dSThippeswamy Havalige	  Annapurna Labs PCIe controller don't need to enable this.
39*5f3de23dSThippeswamy Havalige
40*5f3de23dSThippeswamy Havaligeconfig PCIE_AMD_MDB
41c39819c0SBjorn Helgaas	bool "AMD MDB Versal2 PCIe controller"
42c39819c0SBjorn Helgaas	depends on OF && (ARM64 || COMPILE_TEST)
43c39819c0SBjorn Helgaas	depends on PCI_MSI
44c39819c0SBjorn Helgaas	select PCIE_DW_HOST
45c39819c0SBjorn Helgaas	help
466e0832faSShawn Lin	  Say Y here if you want to enable PCIe controller support on AMD
47c39819c0SBjorn Helgaas	  Versal2 SoCs. The AMD MDB Versal2 PCIe controller is based on
48c39819c0SBjorn Helgaas	  DesignWare IP and therefore the driver re-uses the DesignWare
49c39819c0SBjorn Helgaas	  core functions to implement the driver.
50c39819c0SBjorn Helgaas
516e0832faSShawn Linconfig PCI_MESON
52c39819c0SBjorn Helgaas	tristate "Amlogic Meson PCIe controller"
536e0832faSShawn Lin	default m if ARCH_MESON
546e0832faSShawn Lin	depends on PCI_MSI
55c39819c0SBjorn Helgaas	select PCIE_DW_HOST
56c39819c0SBjorn Helgaas	help
57c39819c0SBjorn Helgaas	  Say Y here if you want to enable PCI controller support on Amlogic
58a474d3fbSThomas Gleixner	  SoCs. The PCI controller on Amlogic is based on DesignWare hardware
596e0832faSShawn Lin	  and therefore the driver re-uses the DesignWare core functions to
60c39819c0SBjorn Helgaas	  implement the driver.
616e0832faSShawn Lin
62c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6
63c39819c0SBjorn Helgaas	bool
646e0832faSShawn Lin
65c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6_HOST
66c39819c0SBjorn Helgaas	bool "Axis ARTPEC-6 PCIe controller (host mode)"
67c39819c0SBjorn Helgaas	depends on MACH_ARTPEC6 || COMPILE_TEST
686e0832faSShawn Lin	depends on PCI_MSI
696e0832faSShawn Lin	select PCIE_DW_HOST
70c39819c0SBjorn Helgaas	select PCIE_ARTPEC6
716e0832faSShawn Lin	help
72c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
73c39819c0SBjorn Helgaas	  host mode. This uses the DesignWare core.
746e0832faSShawn Lin
75c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6_EP
76c39819c0SBjorn Helgaas	bool "Axis ARTPEC-6 PCIe controller (endpoint mode)"
77c39819c0SBjorn Helgaas	depends on MACH_ARTPEC6 || COMPILE_TEST
78a474d3fbSThomas Gleixner	depends on PCI_ENDPOINT
796e0832faSShawn Lin	select PCIE_DW_EP
80778f7c19SJaehoon Chung	select PCIE_ARTPEC6
81c39819c0SBjorn Helgaas	help
82c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
836e0832faSShawn Lin	  endpoint mode. This uses the DesignWare core.
846e0832faSShawn Lin
8575c2f26dSRichard Zhuconfig PCIE_BT1
8675c2f26dSRichard Zhu	tristate "Baikal-T1 PCIe controller"
8775c2f26dSRichard Zhu	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
8880c170d7SBjorn Helgaas	depends on PCI_MSI
897e8ab1b2SLeonard Crestez	select PCIE_DW_HOST
90a474d3fbSThomas Gleixner	help
916e0832faSShawn Lin	  Enables support for the PCIe controller in the Baikal-T1 SoC to work
9275c2f26dSRichard Zhu	  in host mode. It's based on the Synopsys DWC PCIe v4.60a IP-core.
9375c2f26dSRichard Zhu
9475c2f26dSRichard Zhuconfig PCI_IMX6
9575c2f26dSRichard Zhu	bool
9675c2f26dSRichard Zhu
9775c2f26dSRichard Zhuconfig PCI_IMX6_HOST
9875c2f26dSRichard Zhu	bool "Freescale i.MX6/7/8 PCIe controller (host mode)"
9975c2f26dSRichard Zhu	depends on ARCH_MXC || COMPILE_TEST
10080c170d7SBjorn Helgaas	depends on PCI_MSI
10175c2f26dSRichard Zhu	select PCIE_DW_HOST
10275c2f26dSRichard Zhu	select PCI_IMX6
10375c2f26dSRichard Zhu	help
10475c2f26dSRichard Zhu	  Enables support for the PCIe controller in the i.MX SoCs to
10575c2f26dSRichard Zhu	  work in Root Complex mode. The PCI controller on i.MX is based
10675c2f26dSRichard Zhu	  on DesignWare hardware and therefore the driver re-uses the
10775c2f26dSRichard Zhu	  DesignWare core functions to implement the driver.
10875c2f26dSRichard Zhu
10975c2f26dSRichard Zhuconfig PCI_IMX6_EP
1106e0832faSShawn Lin	bool "Freescale i.MX6/7/8 PCIe controller (endpoint mode)"
1116e0832faSShawn Lin	depends on ARCH_MXC || COMPILE_TEST
11280c170d7SBjorn Helgaas	depends on PCI_ENDPOINT
1136e0832faSShawn Lin	select PCIE_DW_EP
114a474d3fbSThomas Gleixner	select PCI_IMX6
1156e0832faSShawn Lin	help
1162908a0d8SAndy Shevchenko	  Enables support for the PCIe controller in the i.MX SoCs to
1176e0832faSShawn Lin	  work in endpoint mode. The PCI controller on i.MX is based
118b5b24617SXiaowei Bao	  on DesignWare hardware and therefore the driver re-uses the
119b5b24617SXiaowei Bao	  DesignWare core functions to implement the driver.
120b5b24617SXiaowei Bao
121b5b24617SXiaowei Baoconfig PCI_LAYERSCAPE
122b5b24617SXiaowei Bao	bool "Freescale Layerscape PCIe controller (host mode)"
123b5b24617SXiaowei Bao	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
124b5b24617SXiaowei Bao	depends on PCI_MSI
12580c170d7SBjorn Helgaas	select PCIE_DW_HOST
126b5b24617SXiaowei Bao	select MFD_SYSCON
127b5b24617SXiaowei Bao	help
128b5b24617SXiaowei Bao	  Say Y here if you want to enable PCIe controller support on Layerscape
129b5b24617SXiaowei Bao	  SoCs to work in Host mode.
130b5b24617SXiaowei Bao	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
131b5b24617SXiaowei Bao	  determines which PCIe controller works in EP mode and which PCIe
132b5b24617SXiaowei Bao	  controller works in RC mode.
133b5b24617SXiaowei Bao
134b5b24617SXiaowei Baoconfig PCI_LAYERSCAPE_EP
1356e0832faSShawn Lin	bool "Freescale Layerscape PCIe controller (endpoint mode)"
1366e0832faSShawn Lin	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
1376e0832faSShawn Lin	depends on PCI_ENDPOINT
13880c170d7SBjorn Helgaas	select PCIE_DW_EP
139a474d3fbSThomas Gleixner	help
1406e0832faSShawn Lin	  Say Y here if you want to enable PCIe controller support on Layerscape
1416e0832faSShawn Lin	  SoCs to work in Endpoint mode.
1426e0832faSShawn Lin	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
1436e0832faSShawn Lin	  determines which PCIe controller works in EP mode and which PCIe
1446e0832faSShawn Lin	  controller works in RC mode.
1456e0832faSShawn Lin
146c39819c0SBjorn Helgaasconfig PCI_HISI
147c39819c0SBjorn Helgaas	depends on OF && (ARM64 || COMPILE_TEST)
148c39819c0SBjorn Helgaas	bool "HiSilicon Hip05 and Hip06 SoCs PCIe controller"
149a474d3fbSThomas Gleixner	depends on PCI_MSI
1506e0832faSShawn Lin	select PCIE_DW_HOST
151c39819c0SBjorn Helgaas	select PCI_HOST_COMMON
1526e0832faSShawn Lin	help
153c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support on HiSilicon
154c39819c0SBjorn Helgaas	  Hip05 and Hip06 SoCs
1556e0832faSShawn Lin
156c39819c0SBjorn Helgaasconfig PCIE_KIRIN
157c39819c0SBjorn Helgaas	depends on OF && (ARM64 || COMPILE_TEST)
158c39819c0SBjorn Helgaas	tristate "HiSilicon Kirin PCIe controller"
159a474d3fbSThomas Gleixner	depends on PCI_MSI
1606e0832faSShawn Lin	select PCIE_DW_HOST
1616e0832faSShawn Lin	select REGMAP_MMIO
162c39819c0SBjorn Helgaas	help
1630e898eb8SSimon Xue	  Say Y here if you want PCIe controller support
164ed22aaaeSDilip Kota	  on HiSilicon Kirin series SoCs.
16580c170d7SBjorn Helgaas
166ed22aaaeSDilip Kotaconfig PCIE_HISI_STB
167a474d3fbSThomas Gleixner	bool "HiSilicon STB PCIe controller"
168ed22aaaeSDilip Kota	depends on ARCH_HISI || COMPILE_TEST
169ed22aaaeSDilip Kota	depends on PCI_MSI
170ed22aaaeSDilip Kota	select PCIE_DW_HOST
171ed22aaaeSDilip Kota	help
172ed22aaaeSDilip Kota	  Say Y here if you want PCIe controller support on HiSilicon STB SoCs
173ed22aaaeSDilip Kota
174ed22aaaeSDilip Kotaconfig PCIE_INTEL_GW
1750c87f90bSSrikanth Thokala	bool "Intel Gateway PCIe controller "
1760c87f90bSSrikanth Thokala	depends on OF && (X86 || COMPILE_TEST)
1770c87f90bSSrikanth Thokala	depends on PCI_MSI
1780c87f90bSSrikanth Thokala	select PCIE_DW_HOST
17980c170d7SBjorn Helgaas	help
1800c87f90bSSrikanth Thokala	  Say 'Y' here to enable PCIe Host controller support on Intel
181a474d3fbSThomas Gleixner	  Gateway SoCs.
1820c87f90bSSrikanth Thokala	  The PCIe controller uses the DesignWare core plus Intel-specific
1830c87f90bSSrikanth Thokala	  hardware wrappers.
1840c87f90bSSrikanth Thokala
1850c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY
1860c87f90bSSrikanth Thokala	bool
1870c87f90bSSrikanth Thokala
1880c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_HOST
1890c87f90bSSrikanth Thokala	bool "Intel Keem Bay PCIe controller (host mode)"
1900c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
19180c170d7SBjorn Helgaas	depends on PCI_MSI
1920c87f90bSSrikanth Thokala	select PCIE_DW_HOST
193a474d3fbSThomas Gleixner	select PCIE_KEEMBAY
1940c87f90bSSrikanth Thokala	help
1950c87f90bSSrikanth Thokala	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
1960c87f90bSSrikanth Thokala	  to work in host mode.
1970c87f90bSSrikanth Thokala	  The PCIe controller is based on DesignWare Hardware and uses
1980c87f90bSSrikanth Thokala	  DesignWare core functions.
1990c87f90bSSrikanth Thokala
2000c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_EP
2010c87f90bSSrikanth Thokala	bool "Intel Keem Bay PCIe controller (endpoint mode)"
2020c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
203c39819c0SBjorn Helgaas	depends on PCI_MSI
204c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
205c39819c0SBjorn Helgaas	select PCIE_DW_EP
206a474d3fbSThomas Gleixner	select PCIE_KEEMBAY
2076e0832faSShawn Lin	help
2086e0832faSShawn Lin	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
209c39819c0SBjorn Helgaas	  to work in endpoint mode.
210c39819c0SBjorn Helgaas	  The PCIe controller is based on DesignWare Hardware and uses
211c39819c0SBjorn Helgaas	  DesignWare core functions.
212c39819c0SBjorn Helgaas
2139c0ef6d3SYue Wangconfig PCIE_ARMADA_8K
21456e15a23SVidya Sagar	bool "Marvell Armada-8K PCIe controller"
215c57247f9SVidya Sagar	depends on ARCH_MVEBU || COMPILE_TEST
216c57247f9SVidya Sagar	depends on PCI_MSI
217c57247f9SVidya Sagar	select PCIE_DW_HOST
21880c170d7SBjorn Helgaas	help
21956e15a23SVidya Sagar	  Say Y here if you want to enable PCIe controller support on
220a474d3fbSThomas Gleixner	  Armada-8K SoCs. The PCIe controller on Armada-8K is based on
22156e15a23SVidya Sagar	  DesignWare hardware and therefore the driver re-uses the
22256e15a23SVidya Sagar	  DesignWare core functions to implement the driver.
223c57247f9SVidya Sagar
22456e15a23SVidya Sagarconfig PCIE_TEGRA194
225c57247f9SVidya Sagar	tristate
226c57247f9SVidya Sagar
227c57247f9SVidya Sagarconfig PCIE_TEGRA194_HOST
228c57247f9SVidya Sagar	tristate "NVIDIA Tegra194 (and later) PCIe controller (host mode)"
229c57247f9SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
230c57247f9SVidya Sagar	depends on PCI_MSI
231c57247f9SVidya Sagar	select PCIE_DW_HOST
232c57247f9SVidya Sagar	select PHY_TEGRA194_P2U
23380c170d7SBjorn Helgaas	select PCIE_TEGRA194
234c57247f9SVidya Sagar	help
235c57247f9SVidya Sagar	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
236c57247f9SVidya Sagar	  work in host mode. There are two instances of PCIe controllers in
237c57247f9SVidya Sagar	  Tegra194. This controller can work either as EP or RC. In order to
238c57247f9SVidya Sagar	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
239c57247f9SVidya Sagar	  in order to enable device-specific features PCIE_TEGRA194_EP must be
240c57247f9SVidya Sagar	  selected. This uses the DesignWare core.
24110739e2aSWesley Sheng
242c57247f9SVidya Sagarconfig PCIE_TEGRA194_EP
243c57247f9SVidya Sagar	tristate "NVIDIA Tegra194 (and later) PCIe controller (endpoint mode)"
244c57247f9SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
245c57247f9SVidya Sagar	depends on PCI_ENDPOINT
24656e15a23SVidya Sagar	select PCIE_DW_EP
247c39819c0SBjorn Helgaas	select PHY_TEGRA194_P2U
248c39819c0SBjorn Helgaas	select PCIE_TEGRA194
249c39819c0SBjorn Helgaas	help
250c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
251c39819c0SBjorn Helgaas	  work in endpoint mode. There are two instances of PCIe controllers in
252c39819c0SBjorn Helgaas	  Tegra194. This controller can work either as EP or RC. In order to
253c39819c0SBjorn Helgaas	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
254c39819c0SBjorn Helgaas	  in order to enable device-specific features PCIE_TEGRA194_EP must be
255c39819c0SBjorn Helgaas	  selected. This uses the DesignWare core.
256c39819c0SBjorn Helgaas
257c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT
258c39819c0SBjorn Helgaas	bool
259c39819c0SBjorn Helgaas
260c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT_HOST
261c39819c0SBjorn Helgaas	bool "Platform bus based DesignWare PCIe controller (host mode)"
262c39819c0SBjorn Helgaas	depends on PCI_MSI
263c39819c0SBjorn Helgaas	select PCIE_DW_HOST
264c39819c0SBjorn Helgaas	select PCIE_DW_PLAT
265c39819c0SBjorn Helgaas	help
266c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Designware IP to
267c39819c0SBjorn Helgaas	  work in host mode. There are two instances of PCIe controller in
268c39819c0SBjorn Helgaas	  Designware IP.
269c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
270c39819c0SBjorn Helgaas	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
271c39819c0SBjorn Helgaas	  order to enable device-specific features PCI_DW_PLAT_EP must be
272c39819c0SBjorn Helgaas	  selected.
273c39819c0SBjorn Helgaas
274c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT_EP
275c39819c0SBjorn Helgaas	bool "Platform bus based DesignWare PCIe controller (endpoint mode)"
276c39819c0SBjorn Helgaas	depends on PCI && PCI_MSI
277c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
278c39819c0SBjorn Helgaas	select PCIE_DW_EP
279d45736b5SShashank Babu Chinta Venkata	select PCIE_DW_PLAT
280d45736b5SShashank Babu Chinta Venkata	help
281d45736b5SShashank Babu Chinta Venkata	  Enables support for the PCIe controller in the Designware IP to
282c39819c0SBjorn Helgaas	  work in endpoint mode. There are two instances of PCIe controller
283c39819c0SBjorn Helgaas	  in Designware IP.
284c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
285c39819c0SBjorn Helgaas	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
286c39819c0SBjorn Helgaas	  order to enable device-specific features PCI_DW_PLAT_EP must be
287c39819c0SBjorn Helgaas	  selected.
288d45736b5SShashank Babu Chinta Venkata
289c39819c0SBjorn Helgaasconfig PCIE_QCOM_COMMON
290c39819c0SBjorn Helgaas	bool
291c39819c0SBjorn Helgaas
292c39819c0SBjorn Helgaasconfig PCIE_QCOM
293c39819c0SBjorn Helgaas	bool "Qualcomm PCIe controller (host mode)"
294c39819c0SBjorn Helgaas	depends on OF && (ARCH_QCOM || COMPILE_TEST)
295c39819c0SBjorn Helgaas	depends on PCI_MSI
296c39819c0SBjorn Helgaas	select PCIE_DW_HOST
297c39819c0SBjorn Helgaas	select CRC8
298c39819c0SBjorn Helgaas	select PCIE_QCOM_COMMON
299d45736b5SShashank Babu Chinta Venkata	help
300c39819c0SBjorn Helgaas	  Say Y here to enable PCIe controller support on Qualcomm SoCs. The
301c39819c0SBjorn Helgaas	  PCIe controller uses the DesignWare core plus Qualcomm-specific
302c39819c0SBjorn Helgaas	  hardware wrappers.
303c39819c0SBjorn Helgaas
304c39819c0SBjorn Helgaasconfig PCIE_QCOM_EP
3050d0c5510SYoshihiro Shimoda	tristate "Qualcomm PCIe controller (endpoint mode)"
3060d0c5510SYoshihiro Shimoda	depends on OF && (ARCH_QCOM || COMPILE_TEST)
3070d0c5510SYoshihiro Shimoda	depends on PCI_ENDPOINT
3080d0c5510SYoshihiro Shimoda	select PCIE_DW_EP
3090d0c5510SYoshihiro Shimoda	select PCIE_QCOM_COMMON
3100d0c5510SYoshihiro Shimoda	help
3110d0c5510SYoshihiro Shimoda	  Say Y here to enable support for the PCIe controllers on Qualcomm SoCs
3120d0c5510SYoshihiro Shimoda	  to work in endpoint mode. The PCIe controller uses the DesignWare core
3130d0c5510SYoshihiro Shimoda	  plus Qualcomm-specific hardware wrappers.
3140d0c5510SYoshihiro Shimoda
3150d0c5510SYoshihiro Shimodaconfig PCIE_RCAR_GEN4
3160d0c5510SYoshihiro Shimoda	tristate
3170d0c5510SYoshihiro Shimoda
3180d0c5510SYoshihiro Shimodaconfig PCIE_RCAR_GEN4_HOST
319e311b383SYoshihiro Shimoda	tristate "Renesas R-Car Gen4 PCIe controller (host mode)"
320e311b383SYoshihiro Shimoda	depends on ARCH_RENESAS || COMPILE_TEST
321e311b383SYoshihiro Shimoda	depends on PCI_MSI
322e311b383SYoshihiro Shimoda	select PCIE_DW_HOST
323e311b383SYoshihiro Shimoda	select PCIE_RCAR_GEN4
324e311b383SYoshihiro Shimoda	help
325e311b383SYoshihiro Shimoda	  Say Y here if you want PCIe controller (host mode) on R-Car Gen4 SoCs.
326e311b383SYoshihiro Shimoda	  To compile this driver as a module, choose M here: the module will be
327e311b383SYoshihiro Shimoda	  called pcie-rcar-gen4.ko. This uses the DesignWare core.
328e311b383SYoshihiro Shimoda
329e311b383SYoshihiro Shimodaconfig PCIE_RCAR_GEN4_EP
330e242f26fSNiklas Cassel	tristate "Renesas R-Car Gen4 PCIe controller (endpoint mode)"
331e242f26fSNiklas Cassel	depends on ARCH_RENESAS || COMPILE_TEST
332e242f26fSNiklas Cassel	depends on PCI_ENDPOINT
333c39819c0SBjorn Helgaas	select PCIE_DW_EP
334e242f26fSNiklas Cassel	select PCIE_RCAR_GEN4
335c39819c0SBjorn Helgaas	help
336c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller (endpoint mode) on R-Car Gen4
337c39819c0SBjorn Helgaas	  SoCs. To compile this driver as a module, choose M here: the module
338e242f26fSNiklas Cassel	  will be called pcie-rcar-gen4.ko. This uses the DesignWare core.
339e242f26fSNiklas Cassel
340c39819c0SBjorn Helgaasconfig PCIE_ROCKCHIP_DW
341c39819c0SBjorn Helgaas	bool
342e242f26fSNiklas Cassel
343e242f26fSNiklas Casselconfig PCIE_ROCKCHIP_DW_HOST
344e242f26fSNiklas Cassel	bool "Rockchip DesignWare PCIe controller (host mode)"
345e242f26fSNiklas Cassel	depends on PCI_MSI
346e242f26fSNiklas Cassel	depends on ARCH_ROCKCHIP || COMPILE_TEST
347e242f26fSNiklas Cassel	depends on OF
348e242f26fSNiklas Cassel	select PCIE_DW_HOST
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 host mode.
353e242f26fSNiklas Cassel
354c39819c0SBjorn Helgaasconfig PCIE_ROCKCHIP_DW_EP
355c39819c0SBjorn Helgaas	bool "Rockchip DesignWare PCIe controller (endpoint mode)"
356c39819c0SBjorn Helgaas	depends on ARCH_ROCKCHIP || COMPILE_TEST
357c39819c0SBjorn Helgaas	depends on OF
358a474d3fbSThomas Gleixner	depends on PCI_ENDPOINT
359da36024aSNobuhiro Iwamatsu	select PCIE_DW_EP
360da36024aSNobuhiro Iwamatsu	select PCIE_ROCKCHIP_DW
361c39819c0SBjorn Helgaas	help
362c39819c0SBjorn Helgaas	  Enables support for the DesignWare PCIe controller in the
363c39819c0SBjorn Helgaas	  Rockchip SoC (except RK3399) to work in endpoint mode.
364c39819c0SBjorn Helgaas
365c39819c0SBjorn Helgaasconfig PCI_EXYNOS
366c39819c0SBjorn Helgaas	tristate "Samsung Exynos PCIe controller"
367c39819c0SBjorn Helgaas	depends on ARCH_EXYNOS || COMPILE_TEST
368c39819c0SBjorn Helgaas	depends on PCI_MSI
369edd6ae10SConor Dooley	select PCIE_DW_HOST
370c39819c0SBjorn Helgaas	help
371c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Samsung Exynos SoCs
372c39819c0SBjorn Helgaas	  to work in host mode. The PCI controller is based on the DesignWare
373c39819c0SBjorn Helgaas	  hardware and therefore the driver re-uses the DesignWare core
374da36024aSNobuhiro Iwamatsu	  functions to implement the driver.
3757e6d5cd8SKunihiko Hayashi
37680c170d7SBjorn Helgaasconfig PCIE_FU740
3777e6d5cd8SKunihiko Hayashi	bool "SiFive FU740 PCIe controller"
3787e6d5cd8SKunihiko Hayashi	depends on PCI_MSI
379a474d3fbSThomas Gleixner	depends on ARCH_SIFIVE || COMPILE_TEST
3807e6d5cd8SKunihiko Hayashi	select PCIE_DW_HOST
3817e6d5cd8SKunihiko Hayashi	help
3828d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe controller support for the SiFive
3837e6d5cd8SKunihiko Hayashi	  FU740.
3847e6d5cd8SKunihiko Hayashi
3858d7e33d6SKunihiko Hayashiconfig PCIE_UNIPHIER
38680c170d7SBjorn Helgaas	bool "Socionext UniPhier PCIe controller (host mode)"
3878d7e33d6SKunihiko Hayashi	depends on ARCH_UNIPHIER || COMPILE_TEST
3888d7e33d6SKunihiko Hayashi	depends on OF && HAS_IOMEM
3898d7e33d6SKunihiko Hayashi	depends on PCI_MSI
3908d7e33d6SKunihiko Hayashi	select PCIE_DW_HOST
3918d7e33d6SKunihiko Hayashi	help
3928d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe host controller support on UniPhier SoCs.
3938d7e33d6SKunihiko Hayashi	  This driver supports LD20 and PXs3 SoCs.
3948d7e33d6SKunihiko Hayashi
395c39819c0SBjorn Helgaasconfig PCIE_UNIPHIER_EP
396c39819c0SBjorn Helgaas	bool "Socionext UniPhier PCIe controller (endpoint mode)"
397c39819c0SBjorn Helgaas	depends on ARCH_UNIPHIER || COMPILE_TEST
398a474d3fbSThomas Gleixner	depends on OF && HAS_IOMEM
399a8daea94SJonathan Chocron	depends on PCI_ENDPOINT
400a8daea94SJonathan Chocron	select PCIE_DW_EP
401c39819c0SBjorn Helgaas	help
402a8daea94SJonathan Chocron	  Say Y here if you want PCIe endpoint controller support on
403c39819c0SBjorn Helgaas	  UniPhier SoCs. This driver supports Pro5 SoC.
404c39819c0SBjorn Helgaas
405c39819c0SBjorn Helgaasconfig PCIE_SPEAR13XX
406c39819c0SBjorn Helgaas	bool "STMicroelectronics SPEAr PCIe controller"
407c39819c0SBjorn Helgaas	depends on ARCH_SPEAR13XX || COMPILE_TEST
408c39819c0SBjorn Helgaas	depends on PCI_MSI
409c39819c0SBjorn Helgaas	select PCIE_DW_HOST
410a474d3fbSThomas Gleixner	help
411c39819c0SBjorn Helgaas	  Say Y here if you want PCIe support on SPEAr13XX SoCs.
412c39819c0SBjorn Helgaas
413c39819c0SBjorn Helgaasconfig PCI_DRA7XX
414c39819c0SBjorn Helgaas	tristate
415c39819c0SBjorn Helgaas
416c39819c0SBjorn Helgaasconfig PCI_DRA7XX_HOST
417c39819c0SBjorn Helgaas	tristate "TI DRA7xx PCIe controller (host mode)"
418c39819c0SBjorn Helgaas	depends on SOC_DRA7XX || COMPILE_TEST
419c39819c0SBjorn Helgaas	depends on OF && HAS_IOMEM && TI_PIPE3
420c39819c0SBjorn Helgaas	depends on PCI_MSI
421c39819c0SBjorn Helgaas	select PCIE_DW_HOST
422c39819c0SBjorn Helgaas	select PCI_DRA7XX
423c39819c0SBjorn Helgaas	default y if SOC_DRA7XX
424c39819c0SBjorn Helgaas	help
425c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the DRA7xx SoC to work in
426c39819c0SBjorn Helgaas	  host mode. There are two instances of PCIe controller in DRA7xx.
427c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
428c39819c0SBjorn Helgaas	  host-specific features PCI_DRA7XX_HOST must be selected and in order
429c39819c0SBjorn Helgaas	  to enable device-specific features PCI_DRA7XX_EP must be selected.
430c39819c0SBjorn Helgaas	  This uses the DesignWare core.
431c39819c0SBjorn Helgaas
432c39819c0SBjorn Helgaasconfig PCI_DRA7XX_EP
433c39819c0SBjorn Helgaas	tristate "TI DRA7xx PCIe controller (endpoint mode)"
434c39819c0SBjorn Helgaas	depends on SOC_DRA7XX || COMPILE_TEST
435c39819c0SBjorn Helgaas	depends on OF && HAS_IOMEM && TI_PIPE3
436c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
437c39819c0SBjorn Helgaas	select PCIE_DW_EP
438c39819c0SBjorn Helgaas	select PCI_DRA7XX
439c39819c0SBjorn Helgaas	help
440c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the DRA7xx SoC to work in
441c39819c0SBjorn Helgaas	  endpoint mode. There are two instances of PCIe controller in DRA7xx.
442c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
443c39819c0SBjorn Helgaas	  host-specific features PCI_DRA7XX_HOST must be selected and in order
444c39819c0SBjorn Helgaas	  to enable device-specific features PCI_DRA7XX_EP must be selected.
445c39819c0SBjorn Helgaas	  This uses the DesignWare core.
446c39819c0SBjorn Helgaas
447c39819c0SBjorn Helgaasconfig PCI_KEYSTONE
448c39819c0SBjorn Helgaas	bool
449c39819c0SBjorn Helgaas
450c39819c0SBjorn Helgaasconfig PCI_KEYSTONE_HOST
451c39819c0SBjorn Helgaas	bool "TI Keystone PCIe controller (host mode)"
452c39819c0SBjorn Helgaas	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
453c39819c0SBjorn Helgaas	depends on PCI_MSI
454c39819c0SBjorn Helgaas	select PCIE_DW_HOST
455c39819c0SBjorn Helgaas	select PCI_KEYSTONE
456c39819c0SBjorn Helgaas	help
457c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Keystone SoC to
458c39819c0SBjorn Helgaas	  work in host mode. The PCI controller on Keystone is based on
459c39819c0SBjorn Helgaas	  DesignWare hardware and therefore the driver re-uses the
460c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
461c39819c0SBjorn Helgaas
462c39819c0SBjorn Helgaasconfig PCI_KEYSTONE_EP
463c39819c0SBjorn Helgaas	bool "TI Keystone PCIe controller (endpoint mode)"
464c39819c0SBjorn Helgaas	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
465c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
466c39819c0SBjorn Helgaas	select PCIE_DW_EP
467c39819c0SBjorn Helgaas	select PCI_KEYSTONE
468e7e21b3aSPaul Walmsley	help
469e7e21b3aSPaul Walmsley	  Enables support for the PCIe controller in the Keystone SoC to
470c39819c0SBjorn Helgaas	  work in endpoint mode. The PCI controller on Keystone is based
471c39819c0SBjorn Helgaas	  on DesignWare hardware and therefore the driver re-uses the
472e7e21b3aSPaul Walmsley	  DesignWare core functions to implement the driver.
4736e0832faSShawn Lin
474config PCIE_VISCONTI_HOST
475	bool "Toshiba Visconti PCIe controller"
476	depends on ARCH_VISCONTI || COMPILE_TEST
477	depends on PCI_MSI
478	select PCIE_DW_HOST
479	help
480	  Say Y here if you want PCIe controller support on Toshiba Visconti SoC.
481	  This driver supports TMPV7708 SoC.
482
483endmenu
484