xref: /linux/drivers/pci/controller/dwc/Kconfig (revision 2f2c7254931f41b5736e3ba12aaa9ac1bbeeeb92)
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
94fbfa17fSShradha Todiconfig PCIE_DW_DEBUGFS
104fbfa17fSShradha Todi	bool "DesignWare PCIe debugfs entries"
114fbfa17fSShradha Todi	depends on DEBUG_FS
124fbfa17fSShradha Todi	depends on PCIE_DW_HOST || PCIE_DW_EP
134fbfa17fSShradha Todi	help
144fbfa17fSShradha Todi	  Say Y here to enable debugfs entries for the PCIe controller. These
154fbfa17fSShradha Todi	  entries provide various debug features related to the controller and
164fbfa17fSShradha Todi	  expose the RAS DES capabilities such as Silicon Debug, Error Injection
174fbfa17fSShradha Todi	  and Statistical Counters.
184fbfa17fSShradha Todi
196e0832faSShawn Linconfig PCIE_DW_HOST
206e0832faSShawn Lin	bool
216e0832faSShawn Lin	select PCIE_DW
228e717112SNam Cao	select IRQ_MSI_LIB
23f6fd357fSKrishna Chaitanya Chundru	select PCI_HOST_COMMON
246e0832faSShawn Lin
256e0832faSShawn Linconfig PCIE_DW_EP
266e0832faSShawn Lin	bool
276e0832faSShawn Lin	select PCIE_DW
286e0832faSShawn Lin
29c39819c0SBjorn Helgaasconfig PCIE_AL
30c39819c0SBjorn Helgaas	bool "Amazon Annapurna Labs PCIe controller"
31c39819c0SBjorn Helgaas	depends on OF && (ARM64 || COMPILE_TEST)
32a474d3fbSThomas Gleixner	depends on PCI_MSI
336e0832faSShawn Lin	select PCIE_DW_HOST
34c39819c0SBjorn Helgaas	select PCI_ECAM
356e0832faSShawn Lin	help
36c39819c0SBjorn Helgaas	  Say Y here to enable support of the Amazon's Annapurna Labs PCIe
37c39819c0SBjorn Helgaas	  controller IP on Amazon SoCs. The PCIe controller uses the DesignWare
38c39819c0SBjorn Helgaas	  core plus Annapurna Labs proprietary hardware wrappers. This is
39c39819c0SBjorn Helgaas	  required only for DT-based platforms. ACPI platforms with the
40c39819c0SBjorn Helgaas	  Annapurna Labs PCIe controller don't need to enable this.
416e0832faSShawn Lin
425f3de23dSThippeswamy Havaligeconfig PCIE_AMD_MDB
435f3de23dSThippeswamy Havalige	bool "AMD MDB Versal2 PCIe controller"
445f3de23dSThippeswamy Havalige	depends on OF && (ARM64 || COMPILE_TEST)
455f3de23dSThippeswamy Havalige	depends on PCI_MSI
465f3de23dSThippeswamy Havalige	select PCIE_DW_HOST
475f3de23dSThippeswamy Havalige	help
485f3de23dSThippeswamy Havalige	  Say Y here if you want to enable PCIe controller support on AMD
495f3de23dSThippeswamy Havalige	  Versal2 SoCs. The AMD MDB Versal2 PCIe controller is based on
505f3de23dSThippeswamy Havalige	  DesignWare IP and therefore the driver re-uses the DesignWare
515f3de23dSThippeswamy Havalige	  core functions to implement the driver.
525f3de23dSThippeswamy Havalige
53c39819c0SBjorn Helgaasconfig PCI_MESON
54c39819c0SBjorn Helgaas	tristate "Amlogic Meson PCIe controller"
55c39819c0SBjorn Helgaas	default m if ARCH_MESON
56c39819c0SBjorn Helgaas	depends on PCI_MSI
57c39819c0SBjorn Helgaas	select PCIE_DW_HOST
586e0832faSShawn Lin	help
59c39819c0SBjorn Helgaas	  Say Y here if you want to enable PCI controller support on Amlogic
60c39819c0SBjorn Helgaas	  SoCs. The PCI controller on Amlogic is based on DesignWare hardware
61c39819c0SBjorn Helgaas	  and therefore the driver re-uses the DesignWare core functions to
62c39819c0SBjorn Helgaas	  implement the driver.
636e0832faSShawn Lin
64c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6
656e0832faSShawn Lin	bool
666e0832faSShawn Lin
67c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6_HOST
68c39819c0SBjorn Helgaas	bool "Axis ARTPEC-6 PCIe controller (host mode)"
69c39819c0SBjorn Helgaas	depends on MACH_ARTPEC6 || COMPILE_TEST
70a474d3fbSThomas Gleixner	depends on PCI_MSI
716e0832faSShawn Lin	select PCIE_DW_HOST
72c39819c0SBjorn Helgaas	select PCIE_ARTPEC6
736e0832faSShawn Lin	help
74c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
75c39819c0SBjorn Helgaas	  host mode. This uses the DesignWare core.
766e0832faSShawn Lin
77c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6_EP
78c39819c0SBjorn Helgaas	bool "Axis ARTPEC-6 PCIe controller (endpoint mode)"
79c39819c0SBjorn Helgaas	depends on MACH_ARTPEC6 || COMPILE_TEST
806e0832faSShawn Lin	depends on PCI_ENDPOINT
816e0832faSShawn Lin	select PCIE_DW_EP
82c39819c0SBjorn Helgaas	select PCIE_ARTPEC6
836e0832faSShawn Lin	help
84c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
85c39819c0SBjorn Helgaas	  endpoint mode. This uses the DesignWare core.
866e0832faSShawn Lin
87c39819c0SBjorn Helgaasconfig PCIE_BT1
88c39819c0SBjorn Helgaas	tristate "Baikal-T1 PCIe controller"
89c39819c0SBjorn Helgaas	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
90a474d3fbSThomas Gleixner	depends on PCI_MSI
916e0832faSShawn Lin	select PCIE_DW_HOST
92778f7c19SJaehoon Chung	help
93c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Baikal-T1 SoC to work
94c39819c0SBjorn Helgaas	  in host mode. It's based on the Synopsys DWC PCIe v4.60a IP-core.
956e0832faSShawn Lin
966e0832faSShawn Linconfig PCI_IMX6
9775c2f26dSRichard Zhu	bool
9875c2f26dSRichard Zhu
9975c2f26dSRichard Zhuconfig PCI_IMX6_HOST
10080c170d7SBjorn Helgaas	bool "Freescale i.MX6/7/8 PCIe controller (host mode)"
1017e8ab1b2SLeonard Crestez	depends on ARCH_MXC || COMPILE_TEST
102a474d3fbSThomas Gleixner	depends on PCI_MSI
1036e0832faSShawn Lin	select PCIE_DW_HOST
10475c2f26dSRichard Zhu	select PCI_IMX6
10575c2f26dSRichard Zhu	help
10675c2f26dSRichard Zhu	  Enables support for the PCIe controller in the i.MX SoCs to
10775c2f26dSRichard Zhu	  work in Root Complex mode. The PCI controller on i.MX is based
10875c2f26dSRichard Zhu	  on DesignWare hardware and therefore the driver re-uses the
10975c2f26dSRichard Zhu	  DesignWare core functions to implement the driver.
11075c2f26dSRichard Zhu
11175c2f26dSRichard Zhuconfig PCI_IMX6_EP
11280c170d7SBjorn Helgaas	bool "Freescale i.MX6/7/8 PCIe controller (endpoint mode)"
11375c2f26dSRichard Zhu	depends on ARCH_MXC || COMPILE_TEST
11475c2f26dSRichard Zhu	depends on PCI_ENDPOINT
11575c2f26dSRichard Zhu	select PCIE_DW_EP
11675c2f26dSRichard Zhu	select PCI_IMX6
11775c2f26dSRichard Zhu	help
11875c2f26dSRichard Zhu	  Enables support for the PCIe controller in the i.MX SoCs to
11975c2f26dSRichard Zhu	  work in endpoint mode. The PCI controller on i.MX is based
12075c2f26dSRichard Zhu	  on DesignWare hardware and therefore the driver re-uses the
12175c2f26dSRichard Zhu	  DesignWare core functions to implement the driver.
1226e0832faSShawn Lin
1236e0832faSShawn Linconfig PCI_LAYERSCAPE
12480c170d7SBjorn Helgaas	bool "Freescale Layerscape PCIe controller (host mode)"
1256e0832faSShawn Lin	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
126a474d3fbSThomas Gleixner	depends on PCI_MSI
1276e0832faSShawn Lin	select PCIE_DW_HOST
1282908a0d8SAndy Shevchenko	select MFD_SYSCON
1296e0832faSShawn Lin	help
130b5b24617SXiaowei Bao	  Say Y here if you want to enable PCIe controller support on Layerscape
131b5b24617SXiaowei Bao	  SoCs to work in Host mode.
132b5b24617SXiaowei Bao	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
133b5b24617SXiaowei Bao	  determines which PCIe controller works in EP mode and which PCIe
134b5b24617SXiaowei Bao	  controller works in RC mode.
135b5b24617SXiaowei Bao
136b5b24617SXiaowei Baoconfig PCI_LAYERSCAPE_EP
13780c170d7SBjorn Helgaas	bool "Freescale Layerscape PCIe controller (endpoint mode)"
138b5b24617SXiaowei Bao	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
139b5b24617SXiaowei Bao	depends on PCI_ENDPOINT
140b5b24617SXiaowei Bao	select PCIE_DW_EP
141b5b24617SXiaowei Bao	help
142b5b24617SXiaowei Bao	  Say Y here if you want to enable PCIe controller support on Layerscape
143b5b24617SXiaowei Bao	  SoCs to work in Endpoint mode.
144b5b24617SXiaowei Bao	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
145b5b24617SXiaowei Bao	  determines which PCIe controller works in EP mode and which PCIe
146b5b24617SXiaowei Bao	  controller works in RC mode.
1476e0832faSShawn Lin
1486e0832faSShawn Linconfig PCI_HISI
1496e0832faSShawn Lin	depends on OF && (ARM64 || COMPILE_TEST)
15080c170d7SBjorn Helgaas	bool "HiSilicon Hip05 and Hip06 SoCs PCIe controller"
151a474d3fbSThomas Gleixner	depends on PCI_MSI
1526e0832faSShawn Lin	select PCIE_DW_HOST
1536e0832faSShawn Lin	select PCI_HOST_COMMON
1546e0832faSShawn Lin	help
1556e0832faSShawn Lin	  Say Y here if you want PCIe controller support on HiSilicon
1566e0832faSShawn Lin	  Hip05 and Hip06 SoCs
1576e0832faSShawn Lin
158c39819c0SBjorn Helgaasconfig PCIE_KIRIN
159c39819c0SBjorn Helgaas	depends on OF && (ARM64 || COMPILE_TEST)
160c39819c0SBjorn Helgaas	tristate "HiSilicon Kirin PCIe controller"
161a474d3fbSThomas Gleixner	depends on PCI_MSI
1626e0832faSShawn Lin	select PCIE_DW_HOST
163c39819c0SBjorn Helgaas	select REGMAP_MMIO
1646e0832faSShawn Lin	help
165c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support
166c39819c0SBjorn Helgaas	  on HiSilicon Kirin series SoCs.
1676e0832faSShawn Lin
168c39819c0SBjorn Helgaasconfig PCIE_HISI_STB
169c39819c0SBjorn Helgaas	bool "HiSilicon STB PCIe controller"
170c39819c0SBjorn Helgaas	depends on ARCH_HISI || COMPILE_TEST
171a474d3fbSThomas Gleixner	depends on PCI_MSI
1726e0832faSShawn Lin	select PCIE_DW_HOST
1736e0832faSShawn Lin	help
174c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support on HiSilicon STB SoCs
1750e898eb8SSimon Xue
176ed22aaaeSDilip Kotaconfig PCIE_INTEL_GW
17780c170d7SBjorn Helgaas	bool "Intel Gateway PCIe controller "
178ed22aaaeSDilip Kota	depends on OF && (X86 || COMPILE_TEST)
179a474d3fbSThomas Gleixner	depends on PCI_MSI
180ed22aaaeSDilip Kota	select PCIE_DW_HOST
181ed22aaaeSDilip Kota	help
182ed22aaaeSDilip Kota	  Say 'Y' here to enable PCIe Host controller support on Intel
183ed22aaaeSDilip Kota	  Gateway SoCs.
184ed22aaaeSDilip Kota	  The PCIe controller uses the DesignWare core plus Intel-specific
185ed22aaaeSDilip Kota	  hardware wrappers.
186ed22aaaeSDilip Kota
1870c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY
1880c87f90bSSrikanth Thokala	bool
1890c87f90bSSrikanth Thokala
1900c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_HOST
19180c170d7SBjorn Helgaas	bool "Intel Keem Bay PCIe controller (host mode)"
1920c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
193a474d3fbSThomas Gleixner	depends on PCI_MSI
1940c87f90bSSrikanth Thokala	select PCIE_DW_HOST
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 host mode.
1990c87f90bSSrikanth Thokala	  The PCIe controller is based on DesignWare Hardware and uses
2000c87f90bSSrikanth Thokala	  DesignWare core functions.
2010c87f90bSSrikanth Thokala
2020c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_EP
20380c170d7SBjorn Helgaas	bool "Intel Keem Bay PCIe controller (endpoint mode)"
2040c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
205a474d3fbSThomas Gleixner	depends on PCI_MSI
2060c87f90bSSrikanth Thokala	depends on PCI_ENDPOINT
2070c87f90bSSrikanth Thokala	select PCIE_DW_EP
2080c87f90bSSrikanth Thokala	select PCIE_KEEMBAY
2090c87f90bSSrikanth Thokala	help
2100c87f90bSSrikanth Thokala	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
2110c87f90bSSrikanth Thokala	  to work in endpoint mode.
2120c87f90bSSrikanth Thokala	  The PCIe controller is based on DesignWare Hardware and uses
2130c87f90bSSrikanth Thokala	  DesignWare core functions.
2140c87f90bSSrikanth Thokala
215c39819c0SBjorn Helgaasconfig PCIE_ARMADA_8K
216c39819c0SBjorn Helgaas	bool "Marvell Armada-8K PCIe controller"
217c39819c0SBjorn Helgaas	depends on ARCH_MVEBU || COMPILE_TEST
218a474d3fbSThomas Gleixner	depends on PCI_MSI
2196e0832faSShawn Lin	select PCIE_DW_HOST
2206e0832faSShawn Lin	help
221c39819c0SBjorn Helgaas	  Say Y here if you want to enable PCIe controller support on
222c39819c0SBjorn Helgaas	  Armada-8K SoCs. The PCIe controller on Armada-8K is based on
223c39819c0SBjorn Helgaas	  DesignWare hardware and therefore the driver re-uses the
224c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
2259c0ef6d3SYue Wang
22656e15a23SVidya Sagarconfig PCIE_TEGRA194
227c57247f9SVidya Sagar	tristate
228c57247f9SVidya Sagar
229c57247f9SVidya Sagarconfig PCIE_TEGRA194_HOST
23080c170d7SBjorn Helgaas	tristate "NVIDIA Tegra194 (and later) PCIe controller (host mode)"
23156e15a23SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
232a474d3fbSThomas Gleixner	depends on PCI_MSI
23356e15a23SVidya Sagar	select PCIE_DW_HOST
23456e15a23SVidya Sagar	select PHY_TEGRA194_P2U
235c57247f9SVidya Sagar	select PCIE_TEGRA194
23656e15a23SVidya Sagar	help
237c57247f9SVidya Sagar	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
238c57247f9SVidya Sagar	  work in host mode. There are two instances of PCIe controllers in
239c57247f9SVidya Sagar	  Tegra194. This controller can work either as EP or RC. In order to
240c57247f9SVidya Sagar	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
241c57247f9SVidya Sagar	  in order to enable device-specific features PCIE_TEGRA194_EP must be
242c57247f9SVidya Sagar	  selected. This uses the DesignWare core.
243c57247f9SVidya Sagar
244c57247f9SVidya Sagarconfig PCIE_TEGRA194_EP
24580c170d7SBjorn Helgaas	tristate "NVIDIA Tegra194 (and later) PCIe controller (endpoint mode)"
246c57247f9SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
247c57247f9SVidya Sagar	depends on PCI_ENDPOINT
248c57247f9SVidya Sagar	select PCIE_DW_EP
249c57247f9SVidya Sagar	select PHY_TEGRA194_P2U
250c57247f9SVidya Sagar	select PCIE_TEGRA194
251c57247f9SVidya Sagar	help
252c57247f9SVidya Sagar	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
25310739e2aSWesley Sheng	  work in endpoint mode. There are two instances of PCIe controllers in
254c57247f9SVidya Sagar	  Tegra194. This controller can work either as EP or RC. In order to
255c57247f9SVidya Sagar	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
256c57247f9SVidya Sagar	  in order to enable device-specific features PCIE_TEGRA194_EP must be
257c57247f9SVidya Sagar	  selected. This uses the DesignWare core.
25856e15a23SVidya Sagar
259c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT
260c39819c0SBjorn Helgaas	bool
261c39819c0SBjorn Helgaas
262c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT_HOST
263c39819c0SBjorn Helgaas	bool "Platform bus based DesignWare PCIe controller (host mode)"
264c39819c0SBjorn Helgaas	depends on PCI_MSI
265c39819c0SBjorn Helgaas	select PCIE_DW_HOST
266c39819c0SBjorn Helgaas	select PCIE_DW_PLAT
267c39819c0SBjorn Helgaas	help
268c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Designware IP to
269c39819c0SBjorn Helgaas	  work in host mode. There are two instances of PCIe controller in
270c39819c0SBjorn Helgaas	  Designware IP.
271c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
272c39819c0SBjorn Helgaas	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
273c39819c0SBjorn Helgaas	  order to enable device-specific features PCI_DW_PLAT_EP must be
274c39819c0SBjorn Helgaas	  selected.
275c39819c0SBjorn Helgaas
276c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT_EP
277c39819c0SBjorn Helgaas	bool "Platform bus based DesignWare PCIe controller (endpoint mode)"
278c39819c0SBjorn Helgaas	depends on PCI && PCI_MSI
279c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
280c39819c0SBjorn Helgaas	select PCIE_DW_EP
281c39819c0SBjorn Helgaas	select PCIE_DW_PLAT
282c39819c0SBjorn Helgaas	help
283c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Designware IP to
284c39819c0SBjorn Helgaas	  work in endpoint mode. There are two instances of PCIe controller
285c39819c0SBjorn Helgaas	  in Designware IP.
286c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
287c39819c0SBjorn Helgaas	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
288c39819c0SBjorn Helgaas	  order to enable device-specific features PCI_DW_PLAT_EP must be
289c39819c0SBjorn Helgaas	  selected.
290c39819c0SBjorn Helgaas
291d45736b5SShashank Babu Chinta Venkataconfig PCIE_QCOM_COMMON
292d45736b5SShashank Babu Chinta Venkata	bool
293d45736b5SShashank Babu Chinta Venkata
294c39819c0SBjorn Helgaasconfig PCIE_QCOM
295c39819c0SBjorn Helgaas	bool "Qualcomm PCIe controller (host mode)"
296c39819c0SBjorn Helgaas	depends on OF && (ARCH_QCOM || COMPILE_TEST)
297c39819c0SBjorn Helgaas	depends on PCI_MSI
298c39819c0SBjorn Helgaas	select PCIE_DW_HOST
299c39819c0SBjorn Helgaas	select CRC8
300d45736b5SShashank Babu Chinta Venkata	select PCIE_QCOM_COMMON
3017d944c0fSMayank Rana	select PCI_HOST_COMMON
302add7b05aSQiang Yu	select PCI_PWRCTRL_SLOT
303c39819c0SBjorn Helgaas	help
304c39819c0SBjorn Helgaas	  Say Y here to enable PCIe controller support on Qualcomm SoCs. The
305c39819c0SBjorn Helgaas	  PCIe controller uses the DesignWare core plus Qualcomm-specific
306c39819c0SBjorn Helgaas	  hardware wrappers.
307c39819c0SBjorn Helgaas
308c39819c0SBjorn Helgaasconfig PCIE_QCOM_EP
309c39819c0SBjorn Helgaas	tristate "Qualcomm PCIe controller (endpoint mode)"
310c39819c0SBjorn Helgaas	depends on OF && (ARCH_QCOM || COMPILE_TEST)
311c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
312c39819c0SBjorn Helgaas	select PCIE_DW_EP
313d45736b5SShashank Babu Chinta Venkata	select PCIE_QCOM_COMMON
314c39819c0SBjorn Helgaas	help
315c39819c0SBjorn Helgaas	  Say Y here to enable support for the PCIe controllers on Qualcomm SoCs
316c39819c0SBjorn Helgaas	  to work in endpoint mode. The PCIe controller uses the DesignWare core
317c39819c0SBjorn Helgaas	  plus Qualcomm-specific hardware wrappers.
318c39819c0SBjorn Helgaas
3190d0c5510SYoshihiro Shimodaconfig PCIE_RCAR_GEN4
3200d0c5510SYoshihiro Shimoda	tristate
3210d0c5510SYoshihiro Shimoda
3220d0c5510SYoshihiro Shimodaconfig PCIE_RCAR_GEN4_HOST
3230d0c5510SYoshihiro Shimoda	tristate "Renesas R-Car Gen4 PCIe controller (host mode)"
3240d0c5510SYoshihiro Shimoda	depends on ARCH_RENESAS || COMPILE_TEST
3250d0c5510SYoshihiro Shimoda	depends on PCI_MSI
3260d0c5510SYoshihiro Shimoda	select PCIE_DW_HOST
3270d0c5510SYoshihiro Shimoda	select PCIE_RCAR_GEN4
3280d0c5510SYoshihiro Shimoda	help
3290d0c5510SYoshihiro Shimoda	  Say Y here if you want PCIe controller (host mode) on R-Car Gen4 SoCs.
3300d0c5510SYoshihiro Shimoda	  To compile this driver as a module, choose M here: the module will be
3310d0c5510SYoshihiro Shimoda	  called pcie-rcar-gen4.ko. This uses the DesignWare core.
3320d0c5510SYoshihiro Shimoda
333e311b383SYoshihiro Shimodaconfig PCIE_RCAR_GEN4_EP
334e311b383SYoshihiro Shimoda	tristate "Renesas R-Car Gen4 PCIe controller (endpoint mode)"
335e311b383SYoshihiro Shimoda	depends on ARCH_RENESAS || COMPILE_TEST
336e311b383SYoshihiro Shimoda	depends on PCI_ENDPOINT
337e311b383SYoshihiro Shimoda	select PCIE_DW_EP
338e311b383SYoshihiro Shimoda	select PCIE_RCAR_GEN4
339e311b383SYoshihiro Shimoda	help
340e311b383SYoshihiro Shimoda	  Say Y here if you want PCIe controller (endpoint mode) on R-Car Gen4
341e311b383SYoshihiro Shimoda	  SoCs. To compile this driver as a module, choose M here: the module
342e311b383SYoshihiro Shimoda	  will be called pcie-rcar-gen4.ko. This uses the DesignWare core.
343e311b383SYoshihiro Shimoda
344e242f26fSNiklas Casselconfig PCIE_ROCKCHIP_DW
345e242f26fSNiklas Cassel	bool
346e242f26fSNiklas Cassel
347c39819c0SBjorn Helgaasconfig PCIE_ROCKCHIP_DW_HOST
348e242f26fSNiklas Cassel	bool "Rockchip DesignWare PCIe controller (host mode)"
349c39819c0SBjorn Helgaas	depends on PCI_MSI
350c39819c0SBjorn Helgaas	depends on ARCH_ROCKCHIP || COMPILE_TEST
351c39819c0SBjorn Helgaas	depends on OF
352e242f26fSNiklas Cassel	select PCIE_DW_HOST
353e242f26fSNiklas Cassel	select PCIE_ROCKCHIP_DW
354c39819c0SBjorn Helgaas	help
355c39819c0SBjorn Helgaas	  Enables support for the DesignWare PCIe controller in the
356e242f26fSNiklas Cassel	  Rockchip SoC (except RK3399) to work in host mode.
357e242f26fSNiklas Cassel
358e242f26fSNiklas Casselconfig PCIE_ROCKCHIP_DW_EP
359e242f26fSNiklas Cassel	bool "Rockchip DesignWare PCIe controller (endpoint mode)"
360e242f26fSNiklas Cassel	depends on ARCH_ROCKCHIP || COMPILE_TEST
361e242f26fSNiklas Cassel	depends on OF
362e242f26fSNiklas Cassel	depends on PCI_ENDPOINT
363e242f26fSNiklas Cassel	select PCIE_DW_EP
364e242f26fSNiklas Cassel	select PCIE_ROCKCHIP_DW
365e242f26fSNiklas Cassel	help
366e242f26fSNiklas Cassel	  Enables support for the DesignWare PCIe controller in the
367e242f26fSNiklas Cassel	  Rockchip SoC (except RK3399) to work in endpoint mode.
368c39819c0SBjorn Helgaas
369c39819c0SBjorn Helgaasconfig PCI_EXYNOS
370c39819c0SBjorn Helgaas	tristate "Samsung Exynos PCIe controller"
371c39819c0SBjorn Helgaas	depends on ARCH_EXYNOS || COMPILE_TEST
372a474d3fbSThomas Gleixner	depends on PCI_MSI
373da36024aSNobuhiro Iwamatsu	select PCIE_DW_HOST
374da36024aSNobuhiro Iwamatsu	help
375c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Samsung Exynos SoCs
376c39819c0SBjorn Helgaas	  to work in host mode. The PCI controller is based on the DesignWare
377c39819c0SBjorn Helgaas	  hardware and therefore the driver re-uses the DesignWare core
378c39819c0SBjorn Helgaas	  functions to implement the driver.
379c39819c0SBjorn Helgaas
380c39819c0SBjorn Helgaasconfig PCIE_FU740
381c39819c0SBjorn Helgaas	bool "SiFive FU740 PCIe controller"
382c39819c0SBjorn Helgaas	depends on PCI_MSI
383edd6ae10SConor Dooley	depends on ARCH_SIFIVE || COMPILE_TEST
384c39819c0SBjorn Helgaas	select PCIE_DW_HOST
385c39819c0SBjorn Helgaas	help
386c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support for the SiFive
387c39819c0SBjorn Helgaas	  FU740.
388da36024aSNobuhiro Iwamatsu
3897e6d5cd8SKunihiko Hayashiconfig PCIE_UNIPHIER
39080c170d7SBjorn Helgaas	bool "Socionext UniPhier PCIe controller (host mode)"
3917e6d5cd8SKunihiko Hayashi	depends on ARCH_UNIPHIER || COMPILE_TEST
3927e6d5cd8SKunihiko Hayashi	depends on OF && HAS_IOMEM
393a474d3fbSThomas Gleixner	depends on PCI_MSI
3947e6d5cd8SKunihiko Hayashi	select PCIE_DW_HOST
3957e6d5cd8SKunihiko Hayashi	help
3968d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe host controller support on UniPhier SoCs.
3977e6d5cd8SKunihiko Hayashi	  This driver supports LD20 and PXs3 SoCs.
3987e6d5cd8SKunihiko Hayashi
3998d7e33d6SKunihiko Hayashiconfig PCIE_UNIPHIER_EP
40080c170d7SBjorn Helgaas	bool "Socionext UniPhier PCIe controller (endpoint mode)"
4018d7e33d6SKunihiko Hayashi	depends on ARCH_UNIPHIER || COMPILE_TEST
4028d7e33d6SKunihiko Hayashi	depends on OF && HAS_IOMEM
4038d7e33d6SKunihiko Hayashi	depends on PCI_ENDPOINT
4048d7e33d6SKunihiko Hayashi	select PCIE_DW_EP
4058d7e33d6SKunihiko Hayashi	help
4068d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe endpoint controller support on
4078d7e33d6SKunihiko Hayashi	  UniPhier SoCs. This driver supports Pro5 SoC.
4088d7e33d6SKunihiko Hayashi
409467d9c03SInochi Amaotoconfig PCIE_SOPHGO_DW
410467d9c03SInochi Amaoto	bool "Sophgo DesignWare PCIe controller (host mode)"
411467d9c03SInochi Amaoto	depends on ARCH_SOPHGO || COMPILE_TEST
412467d9c03SInochi Amaoto	depends on PCI_MSI
413467d9c03SInochi Amaoto	depends on OF
414467d9c03SInochi Amaoto	select PCIE_DW_HOST
415467d9c03SInochi Amaoto	help
416467d9c03SInochi Amaoto	  Say Y here if you want PCIe host controller support on
417467d9c03SInochi Amaoto	  Sophgo SoCs.
418467d9c03SInochi Amaoto
419c39819c0SBjorn Helgaasconfig PCIE_SPEAR13XX
420c39819c0SBjorn Helgaas	bool "STMicroelectronics SPEAr PCIe controller"
421c39819c0SBjorn Helgaas	depends on ARCH_SPEAR13XX || COMPILE_TEST
422a474d3fbSThomas Gleixner	depends on PCI_MSI
423a8daea94SJonathan Chocron	select PCIE_DW_HOST
424a8daea94SJonathan Chocron	help
425c39819c0SBjorn Helgaas	  Say Y here if you want PCIe support on SPEAr13XX SoCs.
426a8daea94SJonathan Chocron
42763a562b3SChristian Bruelconfig PCIE_STM32_HOST
42863a562b3SChristian Bruel	tristate "STMicroelectronics STM32MP25 PCIe Controller (host mode)"
42963a562b3SChristian Bruel	depends on ARCH_STM32 || COMPILE_TEST
43063a562b3SChristian Bruel	depends on PCI_MSI
43163a562b3SChristian Bruel	select PCIE_DW_HOST
43263a562b3SChristian Bruel	help
43363a562b3SChristian Bruel	  Enables Root Complex (RC) support for the DesignWare core based PCIe
43463a562b3SChristian Bruel	  controller found in STM32MP25 SoC.
43563a562b3SChristian Bruel
43663a562b3SChristian Bruel	  This driver can also be built as a module. If so, the module
43763a562b3SChristian Bruel	  will be called pcie-stm32.
43863a562b3SChristian Bruel
439*151f3d29SChristian Bruelconfig PCIE_STM32_EP
440*151f3d29SChristian Bruel	tristate "STMicroelectronics STM32MP25 PCIe Controller (endpoint mode)"
441*151f3d29SChristian Bruel	depends on ARCH_STM32 || COMPILE_TEST
442*151f3d29SChristian Bruel	depends on PCI_ENDPOINT
443*151f3d29SChristian Bruel	select PCIE_DW_EP
444*151f3d29SChristian Bruel	help
445*151f3d29SChristian Bruel	  Enables Endpoint (EP) support for the DesignWare core based PCIe
446*151f3d29SChristian Bruel	  controller found in STM32MP25 SoC.
447*151f3d29SChristian Bruel
448*151f3d29SChristian Bruel	  This driver can also be built as a module. If so, the module
449*151f3d29SChristian Bruel	  will be called pcie-stm32-ep.
450*151f3d29SChristian Bruel
451c39819c0SBjorn Helgaasconfig PCI_DRA7XX
452c39819c0SBjorn Helgaas	tristate
453c39819c0SBjorn Helgaas
454c39819c0SBjorn Helgaasconfig PCI_DRA7XX_HOST
455c39819c0SBjorn Helgaas	tristate "TI DRA7xx PCIe controller (host mode)"
456c39819c0SBjorn Helgaas	depends on SOC_DRA7XX || COMPILE_TEST
457c39819c0SBjorn Helgaas	depends on OF && HAS_IOMEM && TI_PIPE3
458a474d3fbSThomas Gleixner	depends on PCI_MSI
459c39819c0SBjorn Helgaas	select PCIE_DW_HOST
460c39819c0SBjorn Helgaas	select PCI_DRA7XX
461c39819c0SBjorn Helgaas	default y if SOC_DRA7XX
462c39819c0SBjorn Helgaas	help
463c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the DRA7xx SoC to work in
464c39819c0SBjorn Helgaas	  host mode. There are two instances of PCIe controller in DRA7xx.
465c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
466c39819c0SBjorn Helgaas	  host-specific features PCI_DRA7XX_HOST must be selected and in order
467c39819c0SBjorn Helgaas	  to enable device-specific features PCI_DRA7XX_EP must be selected.
468c39819c0SBjorn Helgaas	  This uses the DesignWare core.
469c39819c0SBjorn Helgaas
470c39819c0SBjorn Helgaasconfig PCI_DRA7XX_EP
471c39819c0SBjorn Helgaas	tristate "TI DRA7xx PCIe controller (endpoint mode)"
472c39819c0SBjorn Helgaas	depends on SOC_DRA7XX || COMPILE_TEST
473c39819c0SBjorn Helgaas	depends on OF && HAS_IOMEM && TI_PIPE3
474c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
475c39819c0SBjorn Helgaas	select PCIE_DW_EP
476c39819c0SBjorn Helgaas	select PCI_DRA7XX
477c39819c0SBjorn Helgaas	help
478c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the DRA7xx SoC to work in
479c39819c0SBjorn Helgaas	  endpoint mode. There are two instances of PCIe controller in DRA7xx.
480c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
481c39819c0SBjorn Helgaas	  host-specific features PCI_DRA7XX_HOST must be selected and in order
482c39819c0SBjorn Helgaas	  to enable device-specific features PCI_DRA7XX_EP must be selected.
483c39819c0SBjorn Helgaas	  This uses the DesignWare core.
484c39819c0SBjorn Helgaas
485c39819c0SBjorn Helgaasconfig PCI_KEYSTONE
486c39819c0SBjorn Helgaas	bool
487c39819c0SBjorn Helgaas
488c39819c0SBjorn Helgaasconfig PCI_KEYSTONE_HOST
489c39819c0SBjorn Helgaas	bool "TI Keystone PCIe controller (host mode)"
490c39819c0SBjorn Helgaas	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
491c39819c0SBjorn Helgaas	depends on PCI_MSI
492c39819c0SBjorn Helgaas	select PCIE_DW_HOST
493c39819c0SBjorn Helgaas	select PCI_KEYSTONE
494c39819c0SBjorn Helgaas	help
495c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Keystone SoC to
496c39819c0SBjorn Helgaas	  work in host mode. The PCI controller on Keystone is based on
497c39819c0SBjorn Helgaas	  DesignWare hardware and therefore the driver re-uses the
498c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
499c39819c0SBjorn Helgaas
500c39819c0SBjorn Helgaasconfig PCI_KEYSTONE_EP
501c39819c0SBjorn Helgaas	bool "TI Keystone PCIe controller (endpoint mode)"
502c39819c0SBjorn Helgaas	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
503c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
504c39819c0SBjorn Helgaas	select PCIE_DW_EP
505c39819c0SBjorn Helgaas	select PCI_KEYSTONE
506c39819c0SBjorn Helgaas	help
507c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Keystone SoC to
508c39819c0SBjorn Helgaas	  work in endpoint mode. The PCI controller on Keystone is based
509c39819c0SBjorn Helgaas	  on DesignWare hardware and therefore the driver re-uses the
510c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
511c39819c0SBjorn Helgaas
512c39819c0SBjorn Helgaasconfig PCIE_VISCONTI_HOST
513c39819c0SBjorn Helgaas	bool "Toshiba Visconti PCIe controller"
514c39819c0SBjorn Helgaas	depends on ARCH_VISCONTI || COMPILE_TEST
515c39819c0SBjorn Helgaas	depends on PCI_MSI
516e7e21b3aSPaul Walmsley	select PCIE_DW_HOST
517e7e21b3aSPaul Walmsley	help
518c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support on Toshiba Visconti SoC.
519c39819c0SBjorn Helgaas	  This driver supports TMPV7708 SoC.
520e7e21b3aSPaul Walmsley
5216e0832faSShawn Linendmenu
522