xref: /linux/drivers/pci/controller/dwc/Kconfig (revision 0bd0a41a5120f78685a132834865b0a631b9026a)
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
236e0832faSShawn Lin
246e0832faSShawn Linconfig PCIE_DW_EP
256e0832faSShawn Lin	bool
266e0832faSShawn Lin	select PCIE_DW
276e0832faSShawn Lin
28c39819c0SBjorn Helgaasconfig PCIE_AL
29c39819c0SBjorn Helgaas	bool "Amazon Annapurna Labs PCIe controller"
30c39819c0SBjorn Helgaas	depends on OF && (ARM64 || COMPILE_TEST)
31a474d3fbSThomas Gleixner	depends on PCI_MSI
326e0832faSShawn Lin	select PCIE_DW_HOST
33c39819c0SBjorn Helgaas	select PCI_ECAM
346e0832faSShawn Lin	help
35c39819c0SBjorn Helgaas	  Say Y here to enable support of the Amazon's Annapurna Labs PCIe
36c39819c0SBjorn Helgaas	  controller IP on Amazon SoCs. The PCIe controller uses the DesignWare
37c39819c0SBjorn Helgaas	  core plus Annapurna Labs proprietary hardware wrappers. This is
38c39819c0SBjorn Helgaas	  required only for DT-based platforms. ACPI platforms with the
39c39819c0SBjorn Helgaas	  Annapurna Labs PCIe controller don't need to enable this.
406e0832faSShawn Lin
415f3de23dSThippeswamy Havaligeconfig PCIE_AMD_MDB
425f3de23dSThippeswamy Havalige	bool "AMD MDB Versal2 PCIe controller"
435f3de23dSThippeswamy Havalige	depends on OF && (ARM64 || COMPILE_TEST)
445f3de23dSThippeswamy Havalige	depends on PCI_MSI
455f3de23dSThippeswamy Havalige	select PCIE_DW_HOST
465f3de23dSThippeswamy Havalige	help
475f3de23dSThippeswamy Havalige	  Say Y here if you want to enable PCIe controller support on AMD
485f3de23dSThippeswamy Havalige	  Versal2 SoCs. The AMD MDB Versal2 PCIe controller is based on
495f3de23dSThippeswamy Havalige	  DesignWare IP and therefore the driver re-uses the DesignWare
505f3de23dSThippeswamy Havalige	  core functions to implement the driver.
515f3de23dSThippeswamy Havalige
52c39819c0SBjorn Helgaasconfig PCI_MESON
53c39819c0SBjorn Helgaas	tristate "Amlogic Meson PCIe controller"
54c39819c0SBjorn Helgaas	default m if ARCH_MESON
55c39819c0SBjorn Helgaas	depends on PCI_MSI
56c39819c0SBjorn Helgaas	select PCIE_DW_HOST
576e0832faSShawn Lin	help
58c39819c0SBjorn Helgaas	  Say Y here if you want to enable PCI controller support on Amlogic
59c39819c0SBjorn Helgaas	  SoCs. The PCI controller on Amlogic is based on DesignWare hardware
60c39819c0SBjorn Helgaas	  and therefore the driver re-uses the DesignWare core functions to
61c39819c0SBjorn Helgaas	  implement the driver.
626e0832faSShawn Lin
63c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6
646e0832faSShawn Lin	bool
656e0832faSShawn Lin
66c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6_HOST
67c39819c0SBjorn Helgaas	bool "Axis ARTPEC-6 PCIe controller (host mode)"
68c39819c0SBjorn Helgaas	depends on MACH_ARTPEC6 || COMPILE_TEST
69a474d3fbSThomas Gleixner	depends on PCI_MSI
706e0832faSShawn Lin	select PCIE_DW_HOST
71c39819c0SBjorn Helgaas	select PCIE_ARTPEC6
726e0832faSShawn Lin	help
73c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
74c39819c0SBjorn Helgaas	  host mode. This uses the DesignWare core.
756e0832faSShawn Lin
76c39819c0SBjorn Helgaasconfig PCIE_ARTPEC6_EP
77c39819c0SBjorn Helgaas	bool "Axis ARTPEC-6 PCIe controller (endpoint mode)"
78c39819c0SBjorn Helgaas	depends on MACH_ARTPEC6 || COMPILE_TEST
796e0832faSShawn Lin	depends on PCI_ENDPOINT
806e0832faSShawn Lin	select PCIE_DW_EP
81c39819c0SBjorn Helgaas	select PCIE_ARTPEC6
826e0832faSShawn Lin	help
83c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
84c39819c0SBjorn Helgaas	  endpoint mode. This uses the DesignWare core.
856e0832faSShawn Lin
86c39819c0SBjorn Helgaasconfig PCIE_BT1
87c39819c0SBjorn Helgaas	tristate "Baikal-T1 PCIe controller"
88c39819c0SBjorn Helgaas	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
89a474d3fbSThomas Gleixner	depends on PCI_MSI
906e0832faSShawn Lin	select PCIE_DW_HOST
91778f7c19SJaehoon Chung	help
92c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Baikal-T1 SoC to work
93c39819c0SBjorn Helgaas	  in host mode. It's based on the Synopsys DWC PCIe v4.60a IP-core.
946e0832faSShawn Lin
956e0832faSShawn Linconfig PCI_IMX6
9675c2f26dSRichard Zhu	bool
9775c2f26dSRichard Zhu
9875c2f26dSRichard Zhuconfig PCI_IMX6_HOST
9980c170d7SBjorn Helgaas	bool "Freescale i.MX6/7/8 PCIe controller (host mode)"
1007e8ab1b2SLeonard Crestez	depends on ARCH_MXC || COMPILE_TEST
101a474d3fbSThomas Gleixner	depends on PCI_MSI
1026e0832faSShawn Lin	select PCIE_DW_HOST
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 Root Complex 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.
10975c2f26dSRichard Zhu
11075c2f26dSRichard Zhuconfig PCI_IMX6_EP
11180c170d7SBjorn Helgaas	bool "Freescale i.MX6/7/8 PCIe controller (endpoint mode)"
11275c2f26dSRichard Zhu	depends on ARCH_MXC || COMPILE_TEST
11375c2f26dSRichard Zhu	depends on PCI_ENDPOINT
11475c2f26dSRichard Zhu	select PCIE_DW_EP
11575c2f26dSRichard Zhu	select PCI_IMX6
11675c2f26dSRichard Zhu	help
11775c2f26dSRichard Zhu	  Enables support for the PCIe controller in the i.MX SoCs to
11875c2f26dSRichard Zhu	  work in endpoint mode. The PCI controller on i.MX is based
11975c2f26dSRichard Zhu	  on DesignWare hardware and therefore the driver re-uses the
12075c2f26dSRichard Zhu	  DesignWare core functions to implement the driver.
1216e0832faSShawn Lin
1226e0832faSShawn Linconfig PCI_LAYERSCAPE
12380c170d7SBjorn Helgaas	bool "Freescale Layerscape PCIe controller (host mode)"
1246e0832faSShawn Lin	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
125a474d3fbSThomas Gleixner	depends on PCI_MSI
1266e0832faSShawn Lin	select PCIE_DW_HOST
1272908a0d8SAndy Shevchenko	select MFD_SYSCON
1286e0832faSShawn Lin	help
129b5b24617SXiaowei Bao	  Say Y here if you want to enable PCIe controller support on Layerscape
130b5b24617SXiaowei Bao	  SoCs to work in Host 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.
134b5b24617SXiaowei Bao
135b5b24617SXiaowei Baoconfig PCI_LAYERSCAPE_EP
13680c170d7SBjorn Helgaas	bool "Freescale Layerscape PCIe controller (endpoint mode)"
137b5b24617SXiaowei Bao	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
138b5b24617SXiaowei Bao	depends on PCI_ENDPOINT
139b5b24617SXiaowei Bao	select PCIE_DW_EP
140b5b24617SXiaowei Bao	help
141b5b24617SXiaowei Bao	  Say Y here if you want to enable PCIe controller support on Layerscape
142b5b24617SXiaowei Bao	  SoCs to work in Endpoint mode.
143b5b24617SXiaowei Bao	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
144b5b24617SXiaowei Bao	  determines which PCIe controller works in EP mode and which PCIe
145b5b24617SXiaowei Bao	  controller works in RC mode.
1466e0832faSShawn Lin
1476e0832faSShawn Linconfig PCI_HISI
1486e0832faSShawn Lin	depends on OF && (ARM64 || COMPILE_TEST)
14980c170d7SBjorn Helgaas	bool "HiSilicon Hip05 and Hip06 SoCs PCIe controller"
150a474d3fbSThomas Gleixner	depends on PCI_MSI
1516e0832faSShawn Lin	select PCIE_DW_HOST
1526e0832faSShawn Lin	select PCI_HOST_COMMON
1536e0832faSShawn Lin	help
1546e0832faSShawn Lin	  Say Y here if you want PCIe controller support on HiSilicon
1556e0832faSShawn Lin	  Hip05 and Hip06 SoCs
1566e0832faSShawn Lin
157c39819c0SBjorn Helgaasconfig PCIE_KIRIN
158c39819c0SBjorn Helgaas	depends on OF && (ARM64 || COMPILE_TEST)
159c39819c0SBjorn Helgaas	tristate "HiSilicon Kirin PCIe controller"
160a474d3fbSThomas Gleixner	depends on PCI_MSI
1616e0832faSShawn Lin	select PCIE_DW_HOST
162c39819c0SBjorn Helgaas	select REGMAP_MMIO
1636e0832faSShawn Lin	help
164c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support
165c39819c0SBjorn Helgaas	  on HiSilicon Kirin series SoCs.
1666e0832faSShawn Lin
167c39819c0SBjorn Helgaasconfig PCIE_HISI_STB
168c39819c0SBjorn Helgaas	bool "HiSilicon STB PCIe controller"
169c39819c0SBjorn Helgaas	depends on ARCH_HISI || COMPILE_TEST
170a474d3fbSThomas Gleixner	depends on PCI_MSI
1716e0832faSShawn Lin	select PCIE_DW_HOST
1726e0832faSShawn Lin	help
173c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support on HiSilicon STB SoCs
1740e898eb8SSimon Xue
175ed22aaaeSDilip Kotaconfig PCIE_INTEL_GW
17680c170d7SBjorn Helgaas	bool "Intel Gateway PCIe controller "
177ed22aaaeSDilip Kota	depends on OF && (X86 || COMPILE_TEST)
178a474d3fbSThomas Gleixner	depends on PCI_MSI
179ed22aaaeSDilip Kota	select PCIE_DW_HOST
180ed22aaaeSDilip Kota	help
181ed22aaaeSDilip Kota	  Say 'Y' here to enable PCIe Host controller support on Intel
182ed22aaaeSDilip Kota	  Gateway SoCs.
183ed22aaaeSDilip Kota	  The PCIe controller uses the DesignWare core plus Intel-specific
184ed22aaaeSDilip Kota	  hardware wrappers.
185ed22aaaeSDilip Kota
1860c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY
1870c87f90bSSrikanth Thokala	bool
1880c87f90bSSrikanth Thokala
1890c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_HOST
19080c170d7SBjorn Helgaas	bool "Intel Keem Bay PCIe controller (host mode)"
1910c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
192a474d3fbSThomas Gleixner	depends on PCI_MSI
1930c87f90bSSrikanth Thokala	select PCIE_DW_HOST
1940c87f90bSSrikanth Thokala	select PCIE_KEEMBAY
1950c87f90bSSrikanth Thokala	help
1960c87f90bSSrikanth Thokala	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
1970c87f90bSSrikanth Thokala	  to work in host mode.
1980c87f90bSSrikanth Thokala	  The PCIe controller is based on DesignWare Hardware and uses
1990c87f90bSSrikanth Thokala	  DesignWare core functions.
2000c87f90bSSrikanth Thokala
2010c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_EP
20280c170d7SBjorn Helgaas	bool "Intel Keem Bay PCIe controller (endpoint mode)"
2030c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
204a474d3fbSThomas Gleixner	depends on PCI_MSI
2050c87f90bSSrikanth Thokala	depends on PCI_ENDPOINT
2060c87f90bSSrikanth Thokala	select PCIE_DW_EP
2070c87f90bSSrikanth Thokala	select PCIE_KEEMBAY
2080c87f90bSSrikanth Thokala	help
2090c87f90bSSrikanth Thokala	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
2100c87f90bSSrikanth Thokala	  to work in endpoint mode.
2110c87f90bSSrikanth Thokala	  The PCIe controller is based on DesignWare Hardware and uses
2120c87f90bSSrikanth Thokala	  DesignWare core functions.
2130c87f90bSSrikanth Thokala
214c39819c0SBjorn Helgaasconfig PCIE_ARMADA_8K
215c39819c0SBjorn Helgaas	bool "Marvell Armada-8K PCIe controller"
216c39819c0SBjorn Helgaas	depends on ARCH_MVEBU || COMPILE_TEST
217a474d3fbSThomas Gleixner	depends on PCI_MSI
2186e0832faSShawn Lin	select PCIE_DW_HOST
2196e0832faSShawn Lin	help
220c39819c0SBjorn Helgaas	  Say Y here if you want to enable PCIe controller support on
221c39819c0SBjorn Helgaas	  Armada-8K SoCs. The PCIe controller on Armada-8K is based on
222c39819c0SBjorn Helgaas	  DesignWare hardware and therefore the driver re-uses the
223c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
2249c0ef6d3SYue Wang
22556e15a23SVidya Sagarconfig PCIE_TEGRA194
226c57247f9SVidya Sagar	tristate
227c57247f9SVidya Sagar
228c57247f9SVidya Sagarconfig PCIE_TEGRA194_HOST
22980c170d7SBjorn Helgaas	tristate "NVIDIA Tegra194 (and later) PCIe controller (host mode)"
23056e15a23SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
231a474d3fbSThomas Gleixner	depends on PCI_MSI
23256e15a23SVidya Sagar	select PCIE_DW_HOST
23356e15a23SVidya Sagar	select PHY_TEGRA194_P2U
234c57247f9SVidya Sagar	select PCIE_TEGRA194
23556e15a23SVidya Sagar	help
236c57247f9SVidya Sagar	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
237c57247f9SVidya Sagar	  work in host mode. There are two instances of PCIe controllers in
238c57247f9SVidya Sagar	  Tegra194. This controller can work either as EP or RC. In order to
239c57247f9SVidya Sagar	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
240c57247f9SVidya Sagar	  in order to enable device-specific features PCIE_TEGRA194_EP must be
241c57247f9SVidya Sagar	  selected. This uses the DesignWare core.
242c57247f9SVidya Sagar
243c57247f9SVidya Sagarconfig PCIE_TEGRA194_EP
24480c170d7SBjorn Helgaas	tristate "NVIDIA Tegra194 (and later) PCIe controller (endpoint mode)"
245c57247f9SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
246c57247f9SVidya Sagar	depends on PCI_ENDPOINT
247c57247f9SVidya Sagar	select PCIE_DW_EP
248c57247f9SVidya Sagar	select PHY_TEGRA194_P2U
249c57247f9SVidya Sagar	select PCIE_TEGRA194
250c57247f9SVidya Sagar	help
251c57247f9SVidya Sagar	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
25210739e2aSWesley Sheng	  work in endpoint mode. There are two instances of PCIe controllers in
253c57247f9SVidya Sagar	  Tegra194. This controller can work either as EP or RC. In order to
254c57247f9SVidya Sagar	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
255c57247f9SVidya Sagar	  in order to enable device-specific features PCIE_TEGRA194_EP must be
256c57247f9SVidya Sagar	  selected. This uses the DesignWare core.
25756e15a23SVidya Sagar
258c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT
259c39819c0SBjorn Helgaas	bool
260c39819c0SBjorn Helgaas
261c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT_HOST
262c39819c0SBjorn Helgaas	bool "Platform bus based DesignWare PCIe controller (host mode)"
263c39819c0SBjorn Helgaas	depends on PCI_MSI
264c39819c0SBjorn Helgaas	select PCIE_DW_HOST
265c39819c0SBjorn Helgaas	select PCIE_DW_PLAT
266c39819c0SBjorn Helgaas	help
267c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Designware IP to
268c39819c0SBjorn Helgaas	  work in host mode. There are two instances of PCIe controller in
269c39819c0SBjorn Helgaas	  Designware IP.
270c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
271c39819c0SBjorn Helgaas	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
272c39819c0SBjorn Helgaas	  order to enable device-specific features PCI_DW_PLAT_EP must be
273c39819c0SBjorn Helgaas	  selected.
274c39819c0SBjorn Helgaas
275c39819c0SBjorn Helgaasconfig PCIE_DW_PLAT_EP
276c39819c0SBjorn Helgaas	bool "Platform bus based DesignWare PCIe controller (endpoint mode)"
277c39819c0SBjorn Helgaas	depends on PCI && PCI_MSI
278c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
279c39819c0SBjorn Helgaas	select PCIE_DW_EP
280c39819c0SBjorn Helgaas	select PCIE_DW_PLAT
281c39819c0SBjorn Helgaas	help
282c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Designware IP to
283c39819c0SBjorn Helgaas	  work in endpoint mode. There are two instances of PCIe controller
284c39819c0SBjorn Helgaas	  in Designware IP.
285c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
286c39819c0SBjorn Helgaas	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
287c39819c0SBjorn Helgaas	  order to enable device-specific features PCI_DW_PLAT_EP must be
288c39819c0SBjorn Helgaas	  selected.
289c39819c0SBjorn Helgaas
290d45736b5SShashank Babu Chinta Venkataconfig PCIE_QCOM_COMMON
291d45736b5SShashank Babu Chinta Venkata	bool
292d45736b5SShashank Babu Chinta Venkata
293c39819c0SBjorn Helgaasconfig PCIE_QCOM
294c39819c0SBjorn Helgaas	bool "Qualcomm PCIe controller (host mode)"
295c39819c0SBjorn Helgaas	depends on OF && (ARCH_QCOM || COMPILE_TEST)
296c39819c0SBjorn Helgaas	depends on PCI_MSI
297c39819c0SBjorn Helgaas	select PCIE_DW_HOST
298c39819c0SBjorn Helgaas	select CRC8
299d45736b5SShashank Babu Chinta Venkata	select PCIE_QCOM_COMMON
3007d944c0fSMayank Rana	select PCI_HOST_COMMON
301c39819c0SBjorn Helgaas	help
302c39819c0SBjorn Helgaas	  Say Y here to enable PCIe controller support on Qualcomm SoCs. The
303c39819c0SBjorn Helgaas	  PCIe controller uses the DesignWare core plus Qualcomm-specific
304c39819c0SBjorn Helgaas	  hardware wrappers.
305c39819c0SBjorn Helgaas
306c39819c0SBjorn Helgaasconfig PCIE_QCOM_EP
307c39819c0SBjorn Helgaas	tristate "Qualcomm PCIe controller (endpoint mode)"
308c39819c0SBjorn Helgaas	depends on OF && (ARCH_QCOM || COMPILE_TEST)
309c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
310c39819c0SBjorn Helgaas	select PCIE_DW_EP
311d45736b5SShashank Babu Chinta Venkata	select PCIE_QCOM_COMMON
312c39819c0SBjorn Helgaas	help
313c39819c0SBjorn Helgaas	  Say Y here to enable support for the PCIe controllers on Qualcomm SoCs
314c39819c0SBjorn Helgaas	  to work in endpoint mode. The PCIe controller uses the DesignWare core
315c39819c0SBjorn Helgaas	  plus Qualcomm-specific hardware wrappers.
316c39819c0SBjorn Helgaas
3170d0c5510SYoshihiro Shimodaconfig PCIE_RCAR_GEN4
3180d0c5510SYoshihiro Shimoda	tristate
3190d0c5510SYoshihiro Shimoda
3200d0c5510SYoshihiro Shimodaconfig PCIE_RCAR_GEN4_HOST
3210d0c5510SYoshihiro Shimoda	tristate "Renesas R-Car Gen4 PCIe controller (host mode)"
3220d0c5510SYoshihiro Shimoda	depends on ARCH_RENESAS || COMPILE_TEST
3230d0c5510SYoshihiro Shimoda	depends on PCI_MSI
3240d0c5510SYoshihiro Shimoda	select PCIE_DW_HOST
3250d0c5510SYoshihiro Shimoda	select PCIE_RCAR_GEN4
3260d0c5510SYoshihiro Shimoda	help
3270d0c5510SYoshihiro Shimoda	  Say Y here if you want PCIe controller (host mode) on R-Car Gen4 SoCs.
3280d0c5510SYoshihiro Shimoda	  To compile this driver as a module, choose M here: the module will be
3290d0c5510SYoshihiro Shimoda	  called pcie-rcar-gen4.ko. This uses the DesignWare core.
3300d0c5510SYoshihiro Shimoda
331e311b383SYoshihiro Shimodaconfig PCIE_RCAR_GEN4_EP
332e311b383SYoshihiro Shimoda	tristate "Renesas R-Car Gen4 PCIe controller (endpoint mode)"
333e311b383SYoshihiro Shimoda	depends on ARCH_RENESAS || COMPILE_TEST
334e311b383SYoshihiro Shimoda	depends on PCI_ENDPOINT
335e311b383SYoshihiro Shimoda	select PCIE_DW_EP
336e311b383SYoshihiro Shimoda	select PCIE_RCAR_GEN4
337e311b383SYoshihiro Shimoda	help
338e311b383SYoshihiro Shimoda	  Say Y here if you want PCIe controller (endpoint mode) on R-Car Gen4
339e311b383SYoshihiro Shimoda	  SoCs. To compile this driver as a module, choose M here: the module
340e311b383SYoshihiro Shimoda	  will be called pcie-rcar-gen4.ko. This uses the DesignWare core.
341e311b383SYoshihiro Shimoda
342e242f26fSNiklas Casselconfig PCIE_ROCKCHIP_DW
343e242f26fSNiklas Cassel	bool
344e242f26fSNiklas Cassel
345c39819c0SBjorn Helgaasconfig PCIE_ROCKCHIP_DW_HOST
346e242f26fSNiklas Cassel	bool "Rockchip DesignWare PCIe controller (host mode)"
347c39819c0SBjorn Helgaas	depends on PCI_MSI
348c39819c0SBjorn Helgaas	depends on ARCH_ROCKCHIP || COMPILE_TEST
349c39819c0SBjorn Helgaas	depends on OF
350e242f26fSNiklas Cassel	select PCIE_DW_HOST
351e242f26fSNiklas Cassel	select PCIE_ROCKCHIP_DW
352c39819c0SBjorn Helgaas	help
353c39819c0SBjorn Helgaas	  Enables support for the DesignWare PCIe controller in the
354e242f26fSNiklas Cassel	  Rockchip SoC (except RK3399) to work in host mode.
355e242f26fSNiklas Cassel
356e242f26fSNiklas Casselconfig PCIE_ROCKCHIP_DW_EP
357e242f26fSNiklas Cassel	bool "Rockchip DesignWare PCIe controller (endpoint mode)"
358e242f26fSNiklas Cassel	depends on ARCH_ROCKCHIP || COMPILE_TEST
359e242f26fSNiklas Cassel	depends on OF
360e242f26fSNiklas Cassel	depends on PCI_ENDPOINT
361e242f26fSNiklas Cassel	select PCIE_DW_EP
362e242f26fSNiklas Cassel	select PCIE_ROCKCHIP_DW
363e242f26fSNiklas Cassel	help
364e242f26fSNiklas Cassel	  Enables support for the DesignWare PCIe controller in the
365e242f26fSNiklas Cassel	  Rockchip SoC (except RK3399) to work in endpoint mode.
366c39819c0SBjorn Helgaas
367c39819c0SBjorn Helgaasconfig PCI_EXYNOS
368c39819c0SBjorn Helgaas	tristate "Samsung Exynos PCIe controller"
369c39819c0SBjorn Helgaas	depends on ARCH_EXYNOS || COMPILE_TEST
370a474d3fbSThomas Gleixner	depends on PCI_MSI
371da36024aSNobuhiro Iwamatsu	select PCIE_DW_HOST
372da36024aSNobuhiro Iwamatsu	help
373c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Samsung Exynos SoCs
374c39819c0SBjorn Helgaas	  to work in host mode. The PCI controller is based on the DesignWare
375c39819c0SBjorn Helgaas	  hardware and therefore the driver re-uses the DesignWare core
376c39819c0SBjorn Helgaas	  functions to implement the driver.
377c39819c0SBjorn Helgaas
378c39819c0SBjorn Helgaasconfig PCIE_FU740
379c39819c0SBjorn Helgaas	bool "SiFive FU740 PCIe controller"
380c39819c0SBjorn Helgaas	depends on PCI_MSI
381edd6ae10SConor Dooley	depends on ARCH_SIFIVE || COMPILE_TEST
382c39819c0SBjorn Helgaas	select PCIE_DW_HOST
383c39819c0SBjorn Helgaas	help
384c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support for the SiFive
385c39819c0SBjorn Helgaas	  FU740.
386da36024aSNobuhiro Iwamatsu
3877e6d5cd8SKunihiko Hayashiconfig PCIE_UNIPHIER
38880c170d7SBjorn Helgaas	bool "Socionext UniPhier PCIe controller (host mode)"
3897e6d5cd8SKunihiko Hayashi	depends on ARCH_UNIPHIER || COMPILE_TEST
3907e6d5cd8SKunihiko Hayashi	depends on OF && HAS_IOMEM
391a474d3fbSThomas Gleixner	depends on PCI_MSI
3927e6d5cd8SKunihiko Hayashi	select PCIE_DW_HOST
3937e6d5cd8SKunihiko Hayashi	help
3948d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe host controller support on UniPhier SoCs.
3957e6d5cd8SKunihiko Hayashi	  This driver supports LD20 and PXs3 SoCs.
3967e6d5cd8SKunihiko Hayashi
3978d7e33d6SKunihiko Hayashiconfig PCIE_UNIPHIER_EP
39880c170d7SBjorn Helgaas	bool "Socionext UniPhier PCIe controller (endpoint mode)"
3998d7e33d6SKunihiko Hayashi	depends on ARCH_UNIPHIER || COMPILE_TEST
4008d7e33d6SKunihiko Hayashi	depends on OF && HAS_IOMEM
4018d7e33d6SKunihiko Hayashi	depends on PCI_ENDPOINT
4028d7e33d6SKunihiko Hayashi	select PCIE_DW_EP
4038d7e33d6SKunihiko Hayashi	help
4048d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe endpoint controller support on
4058d7e33d6SKunihiko Hayashi	  UniPhier SoCs. This driver supports Pro5 SoC.
4068d7e33d6SKunihiko Hayashi
407*467d9c03SInochi Amaotoconfig PCIE_SOPHGO_DW
408*467d9c03SInochi Amaoto	bool "Sophgo DesignWare PCIe controller (host mode)"
409*467d9c03SInochi Amaoto	depends on ARCH_SOPHGO || COMPILE_TEST
410*467d9c03SInochi Amaoto	depends on PCI_MSI
411*467d9c03SInochi Amaoto	depends on OF
412*467d9c03SInochi Amaoto	select PCIE_DW_HOST
413*467d9c03SInochi Amaoto	help
414*467d9c03SInochi Amaoto	  Say Y here if you want PCIe host controller support on
415*467d9c03SInochi Amaoto	  Sophgo SoCs.
416*467d9c03SInochi Amaoto
417c39819c0SBjorn Helgaasconfig PCIE_SPEAR13XX
418c39819c0SBjorn Helgaas	bool "STMicroelectronics SPEAr PCIe controller"
419c39819c0SBjorn Helgaas	depends on ARCH_SPEAR13XX || COMPILE_TEST
420a474d3fbSThomas Gleixner	depends on PCI_MSI
421a8daea94SJonathan Chocron	select PCIE_DW_HOST
422a8daea94SJonathan Chocron	help
423c39819c0SBjorn Helgaas	  Say Y here if you want PCIe support on SPEAr13XX SoCs.
424a8daea94SJonathan Chocron
425c39819c0SBjorn Helgaasconfig PCI_DRA7XX
426c39819c0SBjorn Helgaas	tristate
427c39819c0SBjorn Helgaas
428c39819c0SBjorn Helgaasconfig PCI_DRA7XX_HOST
429c39819c0SBjorn Helgaas	tristate "TI DRA7xx PCIe controller (host mode)"
430c39819c0SBjorn Helgaas	depends on SOC_DRA7XX || COMPILE_TEST
431c39819c0SBjorn Helgaas	depends on OF && HAS_IOMEM && TI_PIPE3
432a474d3fbSThomas Gleixner	depends on PCI_MSI
433c39819c0SBjorn Helgaas	select PCIE_DW_HOST
434c39819c0SBjorn Helgaas	select PCI_DRA7XX
435c39819c0SBjorn Helgaas	default y if SOC_DRA7XX
436c39819c0SBjorn Helgaas	help
437c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the DRA7xx SoC to work in
438c39819c0SBjorn Helgaas	  host mode. There are two instances of PCIe controller in DRA7xx.
439c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
440c39819c0SBjorn Helgaas	  host-specific features PCI_DRA7XX_HOST must be selected and in order
441c39819c0SBjorn Helgaas	  to enable device-specific features PCI_DRA7XX_EP must be selected.
442c39819c0SBjorn Helgaas	  This uses the DesignWare core.
443c39819c0SBjorn Helgaas
444c39819c0SBjorn Helgaasconfig PCI_DRA7XX_EP
445c39819c0SBjorn Helgaas	tristate "TI DRA7xx PCIe controller (endpoint mode)"
446c39819c0SBjorn Helgaas	depends on SOC_DRA7XX || COMPILE_TEST
447c39819c0SBjorn Helgaas	depends on OF && HAS_IOMEM && TI_PIPE3
448c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
449c39819c0SBjorn Helgaas	select PCIE_DW_EP
450c39819c0SBjorn Helgaas	select PCI_DRA7XX
451c39819c0SBjorn Helgaas	help
452c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the DRA7xx SoC to work in
453c39819c0SBjorn Helgaas	  endpoint mode. There are two instances of PCIe controller in DRA7xx.
454c39819c0SBjorn Helgaas	  This controller can work either as EP or RC. In order to enable
455c39819c0SBjorn Helgaas	  host-specific features PCI_DRA7XX_HOST must be selected and in order
456c39819c0SBjorn Helgaas	  to enable device-specific features PCI_DRA7XX_EP must be selected.
457c39819c0SBjorn Helgaas	  This uses the DesignWare core.
458c39819c0SBjorn Helgaas
459c39819c0SBjorn Helgaasconfig PCI_KEYSTONE
460c39819c0SBjorn Helgaas	bool
461c39819c0SBjorn Helgaas
462c39819c0SBjorn Helgaasconfig PCI_KEYSTONE_HOST
463c39819c0SBjorn Helgaas	bool "TI Keystone PCIe controller (host mode)"
464c39819c0SBjorn Helgaas	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
465c39819c0SBjorn Helgaas	depends on PCI_MSI
466c39819c0SBjorn Helgaas	select PCIE_DW_HOST
467c39819c0SBjorn Helgaas	select PCI_KEYSTONE
468c39819c0SBjorn Helgaas	help
469c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Keystone SoC to
470c39819c0SBjorn Helgaas	  work in host mode. The PCI controller on Keystone is based on
471c39819c0SBjorn Helgaas	  DesignWare hardware and therefore the driver re-uses the
472c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
473c39819c0SBjorn Helgaas
474c39819c0SBjorn Helgaasconfig PCI_KEYSTONE_EP
475c39819c0SBjorn Helgaas	bool "TI Keystone PCIe controller (endpoint mode)"
476c39819c0SBjorn Helgaas	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
477c39819c0SBjorn Helgaas	depends on PCI_ENDPOINT
478c39819c0SBjorn Helgaas	select PCIE_DW_EP
479c39819c0SBjorn Helgaas	select PCI_KEYSTONE
480c39819c0SBjorn Helgaas	help
481c39819c0SBjorn Helgaas	  Enables support for the PCIe controller in the Keystone SoC to
482c39819c0SBjorn Helgaas	  work in endpoint mode. The PCI controller on Keystone is based
483c39819c0SBjorn Helgaas	  on DesignWare hardware and therefore the driver re-uses the
484c39819c0SBjorn Helgaas	  DesignWare core functions to implement the driver.
485c39819c0SBjorn Helgaas
486c39819c0SBjorn Helgaasconfig PCIE_VISCONTI_HOST
487c39819c0SBjorn Helgaas	bool "Toshiba Visconti PCIe controller"
488c39819c0SBjorn Helgaas	depends on ARCH_VISCONTI || COMPILE_TEST
489c39819c0SBjorn Helgaas	depends on PCI_MSI
490e7e21b3aSPaul Walmsley	select PCIE_DW_HOST
491e7e21b3aSPaul Walmsley	help
492c39819c0SBjorn Helgaas	  Say Y here if you want PCIe controller support on Toshiba Visconti SoC.
493c39819c0SBjorn Helgaas	  This driver supports TMPV7708 SoC.
494e7e21b3aSPaul Walmsley
4956e0832faSShawn Linendmenu
496