xref: /linux/drivers/pci/controller/dwc/Kconfig (revision 75c2f26da03f93e988cd7678722ea893a8c63796)
16e0832faSShawn Lin# SPDX-License-Identifier: GPL-2.0
26e0832faSShawn Lin
36e0832faSShawn Linmenu "DesignWare PCI Core Support"
46e0832faSShawn Lin	depends on PCI
56e0832faSShawn Lin
66e0832faSShawn Linconfig PCIE_DW
76e0832faSShawn Lin	bool
86e0832faSShawn Lin
96e0832faSShawn Linconfig PCIE_DW_HOST
106e0832faSShawn Lin	bool
116e0832faSShawn Lin	select PCIE_DW
126e0832faSShawn Lin
136e0832faSShawn Linconfig PCIE_DW_EP
146e0832faSShawn Lin	bool
156e0832faSShawn Lin	select PCIE_DW
166e0832faSShawn Lin
176e0832faSShawn Linconfig PCI_DRA7XX
183b868d15SLuca Ceresoli	tristate
196e0832faSShawn Lin
206e0832faSShawn Linconfig PCI_DRA7XX_HOST
213b868d15SLuca Ceresoli	tristate "TI DRA7xx PCIe controller Host Mode"
226e0832faSShawn Lin	depends on SOC_DRA7XX || COMPILE_TEST
236e0832faSShawn Lin	depends on OF && HAS_IOMEM && TI_PIPE3
24a474d3fbSThomas Gleixner	depends on PCI_MSI
256e0832faSShawn Lin	select PCIE_DW_HOST
266e0832faSShawn Lin	select PCI_DRA7XX
2794b84ac1SBjorn Helgaas	default y if SOC_DRA7XX
286e0832faSShawn Lin	help
296e0832faSShawn Lin	  Enables support for the PCIe controller in the DRA7xx SoC to work in
306e0832faSShawn Lin	  host mode. There are two instances of PCIe controller in DRA7xx.
316e0832faSShawn Lin	  This controller can work either as EP or RC. In order to enable
326e0832faSShawn Lin	  host-specific features PCI_DRA7XX_HOST must be selected and in order
336e0832faSShawn Lin	  to enable device-specific features PCI_DRA7XX_EP must be selected.
346e0832faSShawn Lin	  This uses the DesignWare core.
356e0832faSShawn Lin
366e0832faSShawn Linconfig PCI_DRA7XX_EP
373b868d15SLuca Ceresoli	tristate "TI DRA7xx PCIe controller Endpoint Mode"
386e0832faSShawn Lin	depends on SOC_DRA7XX || COMPILE_TEST
396e0832faSShawn Lin	depends on OF && HAS_IOMEM && TI_PIPE3
408faa1d2dSAndy Shevchenko	depends on PCI_ENDPOINT
416e0832faSShawn Lin	select PCIE_DW_EP
426e0832faSShawn Lin	select PCI_DRA7XX
436e0832faSShawn Lin	help
446e0832faSShawn Lin	  Enables support for the PCIe controller in the DRA7xx SoC to work in
456e0832faSShawn Lin	  endpoint mode. There are two instances of PCIe controller in DRA7xx.
466e0832faSShawn Lin	  This controller can work either as EP or RC. In order to enable
476e0832faSShawn Lin	  host-specific features PCI_DRA7XX_HOST must be selected and in order
486e0832faSShawn Lin	  to enable device-specific features PCI_DRA7XX_EP must be selected.
496e0832faSShawn Lin	  This uses the DesignWare core.
506e0832faSShawn Lin
516e0832faSShawn Linconfig PCIE_DW_PLAT
526e0832faSShawn Lin	bool
536e0832faSShawn Lin
546e0832faSShawn Linconfig PCIE_DW_PLAT_HOST
556e0832faSShawn Lin	bool "Platform bus based DesignWare PCIe Controller - Host mode"
56a474d3fbSThomas Gleixner	depends on PCI_MSI
576e0832faSShawn Lin	select PCIE_DW_HOST
586e0832faSShawn Lin	select PCIE_DW_PLAT
596e0832faSShawn Lin	help
606e0832faSShawn Lin	  Enables support for the PCIe controller in the Designware IP to
616e0832faSShawn Lin	  work in host mode. There are two instances of PCIe controller in
626e0832faSShawn Lin	  Designware IP.
636e0832faSShawn Lin	  This controller can work either as EP or RC. In order to enable
646e0832faSShawn Lin	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
656e0832faSShawn Lin	  order to enable device-specific features PCI_DW_PLAT_EP must be
666e0832faSShawn Lin	  selected.
676e0832faSShawn Lin
686e0832faSShawn Linconfig PCIE_DW_PLAT_EP
696e0832faSShawn Lin	bool "Platform bus based DesignWare PCIe Controller - Endpoint mode"
70a474d3fbSThomas Gleixner	depends on PCI && PCI_MSI
716e0832faSShawn Lin	depends on PCI_ENDPOINT
726e0832faSShawn Lin	select PCIE_DW_EP
736e0832faSShawn Lin	select PCIE_DW_PLAT
746e0832faSShawn Lin	help
756e0832faSShawn Lin	  Enables support for the PCIe controller in the Designware IP to
766e0832faSShawn Lin	  work in endpoint mode. There are two instances of PCIe controller
776e0832faSShawn Lin	  in Designware IP.
786e0832faSShawn Lin	  This controller can work either as EP or RC. In order to enable
796e0832faSShawn Lin	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
806e0832faSShawn Lin	  order to enable device-specific features PCI_DW_PLAT_EP must be
816e0832faSShawn Lin	  selected.
826e0832faSShawn Lin
836e0832faSShawn Linconfig PCI_EXYNOS
84778f7c19SJaehoon Chung	tristate "Samsung Exynos PCIe controller"
85778f7c19SJaehoon Chung	depends on ARCH_EXYNOS || COMPILE_TEST
86a474d3fbSThomas Gleixner	depends on PCI_MSI
876e0832faSShawn Lin	select PCIE_DW_HOST
88778f7c19SJaehoon Chung	help
89778f7c19SJaehoon Chung	  Enables support for the PCIe controller in the Samsung Exynos SoCs
90778f7c19SJaehoon Chung	  to work in host mode. The PCI controller is based on the DesignWare
91778f7c19SJaehoon Chung	  hardware and therefore the driver re-uses the DesignWare core
92778f7c19SJaehoon Chung	  functions to implement the driver.
936e0832faSShawn Lin
946e0832faSShawn Linconfig PCI_IMX6
95*75c2f26dSRichard Zhu	bool
96*75c2f26dSRichard Zhu
97*75c2f26dSRichard Zhuconfig PCI_IMX6_HOST
98*75c2f26dSRichard Zhu	bool "Freescale i.MX6/7/8 PCIe controller host mode"
997e8ab1b2SLeonard Crestez	depends on ARCH_MXC || COMPILE_TEST
100a474d3fbSThomas Gleixner	depends on PCI_MSI
1016e0832faSShawn Lin	select PCIE_DW_HOST
102*75c2f26dSRichard Zhu	select PCI_IMX6
103*75c2f26dSRichard Zhu	help
104*75c2f26dSRichard Zhu	  Enables support for the PCIe controller in the i.MX SoCs to
105*75c2f26dSRichard Zhu	  work in Root Complex mode. The PCI controller on i.MX is based
106*75c2f26dSRichard Zhu	  on DesignWare hardware and therefore the driver re-uses the
107*75c2f26dSRichard Zhu	  DesignWare core functions to implement the driver.
108*75c2f26dSRichard Zhu
109*75c2f26dSRichard Zhuconfig PCI_IMX6_EP
110*75c2f26dSRichard Zhu	bool "Freescale i.MX6/7/8 PCIe controller endpoint mode"
111*75c2f26dSRichard Zhu	depends on ARCH_MXC || COMPILE_TEST
112*75c2f26dSRichard Zhu	depends on PCI_ENDPOINT
113*75c2f26dSRichard Zhu	select PCIE_DW_EP
114*75c2f26dSRichard Zhu	select PCI_IMX6
115*75c2f26dSRichard Zhu	help
116*75c2f26dSRichard Zhu	  Enables support for the PCIe controller in the i.MX SoCs to
117*75c2f26dSRichard Zhu	  work in endpoint mode. The PCI controller on i.MX is based
118*75c2f26dSRichard Zhu	  on DesignWare hardware and therefore the driver re-uses the
119*75c2f26dSRichard Zhu	  DesignWare core functions to implement the driver.
1206e0832faSShawn Lin
1216e0832faSShawn Linconfig PCIE_SPEAR13XX
1226e0832faSShawn Lin	bool "STMicroelectronics SPEAr PCIe controller"
1236e0832faSShawn Lin	depends on ARCH_SPEAR13XX || COMPILE_TEST
124a474d3fbSThomas Gleixner	depends on PCI_MSI
1256e0832faSShawn Lin	select PCIE_DW_HOST
1266e0832faSShawn Lin	help
1276e0832faSShawn Lin	  Say Y here if you want PCIe support on SPEAr13XX SoCs.
1286e0832faSShawn Lin
1296e0832faSShawn Linconfig PCI_KEYSTONE
13023284ad6SKishon Vijay Abraham I	bool
13123284ad6SKishon Vijay Abraham I
13223284ad6SKishon Vijay Abraham Iconfig PCI_KEYSTONE_HOST
13323284ad6SKishon Vijay Abraham I	bool "PCI Keystone Host Mode"
134476b70b4SAlex Dewar	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
135a474d3fbSThomas Gleixner	depends on PCI_MSI
1366e0832faSShawn Lin	select PCIE_DW_HOST
13723284ad6SKishon Vijay Abraham I	select PCI_KEYSTONE
1386e0832faSShawn Lin	help
13923284ad6SKishon Vijay Abraham I	  Enables support for the PCIe controller in the Keystone SoC to
14023284ad6SKishon Vijay Abraham I	  work in host mode. The PCI controller on Keystone is based on
14123284ad6SKishon Vijay Abraham I	  DesignWare hardware and therefore the driver re-uses the
14223284ad6SKishon Vijay Abraham I	  DesignWare core functions to implement the driver.
14323284ad6SKishon Vijay Abraham I
14423284ad6SKishon Vijay Abraham Iconfig PCI_KEYSTONE_EP
14523284ad6SKishon Vijay Abraham I	bool "PCI Keystone Endpoint Mode"
146476b70b4SAlex Dewar	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
14723284ad6SKishon Vijay Abraham I	depends on PCI_ENDPOINT
14823284ad6SKishon Vijay Abraham I	select PCIE_DW_EP
14923284ad6SKishon Vijay Abraham I	select PCI_KEYSTONE
15023284ad6SKishon Vijay Abraham I	help
15123284ad6SKishon Vijay Abraham I	  Enables support for the PCIe controller in the Keystone SoC to
15223284ad6SKishon Vijay Abraham I	  work in endpoint mode. The PCI controller on Keystone is based
15323284ad6SKishon Vijay Abraham I	  on DesignWare hardware and therefore the driver re-uses the
15423284ad6SKishon Vijay Abraham I	  DesignWare core functions to implement the driver.
1556e0832faSShawn Lin
1566e0832faSShawn Linconfig PCI_LAYERSCAPE
157b5b24617SXiaowei Bao	bool "Freescale Layerscape PCIe controller - Host mode"
1586e0832faSShawn Lin	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
159a474d3fbSThomas Gleixner	depends on PCI_MSI
1606e0832faSShawn Lin	select PCIE_DW_HOST
1612908a0d8SAndy Shevchenko	select MFD_SYSCON
1626e0832faSShawn Lin	help
163b5b24617SXiaowei Bao	  Say Y here if you want to enable PCIe controller support on Layerscape
164b5b24617SXiaowei Bao	  SoCs to work in Host mode.
165b5b24617SXiaowei Bao	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
166b5b24617SXiaowei Bao	  determines which PCIe controller works in EP mode and which PCIe
167b5b24617SXiaowei Bao	  controller works in RC mode.
168b5b24617SXiaowei Bao
169b5b24617SXiaowei Baoconfig PCI_LAYERSCAPE_EP
170b5b24617SXiaowei Bao	bool "Freescale Layerscape PCIe controller - Endpoint mode"
171b5b24617SXiaowei Bao	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
172b5b24617SXiaowei Bao	depends on PCI_ENDPOINT
173b5b24617SXiaowei Bao	select PCIE_DW_EP
174b5b24617SXiaowei Bao	help
175b5b24617SXiaowei Bao	  Say Y here if you want to enable PCIe controller support on Layerscape
176b5b24617SXiaowei Bao	  SoCs to work in Endpoint mode.
177b5b24617SXiaowei Bao	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
178b5b24617SXiaowei Bao	  determines which PCIe controller works in EP mode and which PCIe
179b5b24617SXiaowei Bao	  controller works in RC mode.
1806e0832faSShawn Lin
1816e0832faSShawn Linconfig PCI_HISI
1826e0832faSShawn Lin	depends on OF && (ARM64 || COMPILE_TEST)
1836e0832faSShawn Lin	bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
184a474d3fbSThomas Gleixner	depends on PCI_MSI
1856e0832faSShawn Lin	select PCIE_DW_HOST
1866e0832faSShawn Lin	select PCI_HOST_COMMON
1876e0832faSShawn Lin	help
1886e0832faSShawn Lin	  Say Y here if you want PCIe controller support on HiSilicon
1896e0832faSShawn Lin	  Hip05 and Hip06 SoCs
1906e0832faSShawn Lin
1916e0832faSShawn Linconfig PCIE_QCOM
1926e0832faSShawn Lin	bool "Qualcomm PCIe controller"
1936e0832faSShawn Lin	depends on OF && (ARCH_QCOM || COMPILE_TEST)
194a474d3fbSThomas Gleixner	depends on PCI_MSI
1956e0832faSShawn Lin	select PCIE_DW_HOST
1964c939882SManivannan Sadhasivam	select CRC8
1976e0832faSShawn Lin	help
1986e0832faSShawn Lin	  Say Y here to enable PCIe controller support on Qualcomm SoCs. The
1996e0832faSShawn Lin	  PCIe controller uses the DesignWare core plus Qualcomm-specific
2006e0832faSShawn Lin	  hardware wrappers.
2016e0832faSShawn Lin
202f55fee56SManivannan Sadhasivamconfig PCIE_QCOM_EP
203f55fee56SManivannan Sadhasivam	tristate "Qualcomm PCIe controller - Endpoint mode"
204f55fee56SManivannan Sadhasivam	depends on OF && (ARCH_QCOM || COMPILE_TEST)
205f55fee56SManivannan Sadhasivam	depends on PCI_ENDPOINT
206f55fee56SManivannan Sadhasivam	select PCIE_DW_EP
207f55fee56SManivannan Sadhasivam	help
208f55fee56SManivannan Sadhasivam	  Say Y here to enable support for the PCIe controllers on Qualcomm SoCs
209f55fee56SManivannan Sadhasivam	  to work in endpoint mode. The PCIe controller uses the DesignWare core
210f55fee56SManivannan Sadhasivam	  plus Qualcomm-specific hardware wrappers.
211f55fee56SManivannan Sadhasivam
2126e0832faSShawn Linconfig PCIE_ARMADA_8K
2136e0832faSShawn Lin	bool "Marvell Armada-8K PCIe controller"
2146e0832faSShawn Lin	depends on ARCH_MVEBU || COMPILE_TEST
215a474d3fbSThomas Gleixner	depends on PCI_MSI
2166e0832faSShawn Lin	select PCIE_DW_HOST
2176e0832faSShawn Lin	help
2186e0832faSShawn Lin	  Say Y here if you want to enable PCIe controller support on
2196e0832faSShawn Lin	  Armada-8K SoCs. The PCIe controller on Armada-8K is based on
2206e0832faSShawn Lin	  DesignWare hardware and therefore the driver re-uses the
2216e0832faSShawn Lin	  DesignWare core functions to implement the driver.
2226e0832faSShawn Lin
2236e0832faSShawn Linconfig PCIE_ARTPEC6
2246e0832faSShawn Lin	bool
2256e0832faSShawn Lin
2266e0832faSShawn Linconfig PCIE_ARTPEC6_HOST
2276e0832faSShawn Lin	bool "Axis ARTPEC-6 PCIe controller Host Mode"
2286e0832faSShawn Lin	depends on MACH_ARTPEC6 || COMPILE_TEST
229a474d3fbSThomas Gleixner	depends on PCI_MSI
2306e0832faSShawn Lin	select PCIE_DW_HOST
2316e0832faSShawn Lin	select PCIE_ARTPEC6
2326e0832faSShawn Lin	help
2336e0832faSShawn Lin	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
2346e0832faSShawn Lin	  host mode. This uses the DesignWare core.
2356e0832faSShawn Lin
2366e0832faSShawn Linconfig PCIE_ARTPEC6_EP
2376e0832faSShawn Lin	bool "Axis ARTPEC-6 PCIe controller Endpoint Mode"
2386e0832faSShawn Lin	depends on MACH_ARTPEC6 || COMPILE_TEST
2396e0832faSShawn Lin	depends on PCI_ENDPOINT
2406e0832faSShawn Lin	select PCIE_DW_EP
2416e0832faSShawn Lin	select PCIE_ARTPEC6
2426e0832faSShawn Lin	help
2436e0832faSShawn Lin	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
2446e0832faSShawn Lin	  endpoint mode. This uses the DesignWare core.
2456e0832faSShawn Lin
246ba6ed462SSerge Seminconfig PCIE_BT1
247ba6ed462SSerge Semin	tristate "Baikal-T1 PCIe controller"
248ba6ed462SSerge Semin	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
249ba6ed462SSerge Semin	depends on PCI_MSI_IRQ_DOMAIN
250ba6ed462SSerge Semin	select PCIE_DW_HOST
251ba6ed462SSerge Semin	help
252ba6ed462SSerge Semin	  Enables support for the PCIe controller in the Baikal-T1 SoC to work
253ba6ed462SSerge Semin	  in host mode. It's based on the Synopsys DWC PCIe v4.60a IP-core.
254ba6ed462SSerge Semin
2550e898eb8SSimon Xueconfig PCIE_ROCKCHIP_DW_HOST
2560e898eb8SSimon Xue	bool "Rockchip DesignWare PCIe controller"
2570e898eb8SSimon Xue	select PCIE_DW
2580e898eb8SSimon Xue	select PCIE_DW_HOST
259a474d3fbSThomas Gleixner	depends on PCI_MSI
2600e898eb8SSimon Xue	depends on ARCH_ROCKCHIP || COMPILE_TEST
2610e898eb8SSimon Xue	depends on OF
2620e898eb8SSimon Xue	help
2630e898eb8SSimon Xue	  Enables support for the DesignWare PCIe controller in the
2640e898eb8SSimon Xue	  Rockchip SoC except RK3399.
2650e898eb8SSimon Xue
266ed22aaaeSDilip Kotaconfig PCIE_INTEL_GW
267ed22aaaeSDilip Kota	bool "Intel Gateway PCIe host controller support"
268ed22aaaeSDilip Kota	depends on OF && (X86 || COMPILE_TEST)
269a474d3fbSThomas Gleixner	depends on PCI_MSI
270ed22aaaeSDilip Kota	select PCIE_DW_HOST
271ed22aaaeSDilip Kota	help
272ed22aaaeSDilip Kota	  Say 'Y' here to enable PCIe Host controller support on Intel
273ed22aaaeSDilip Kota	  Gateway SoCs.
274ed22aaaeSDilip Kota	  The PCIe controller uses the DesignWare core plus Intel-specific
275ed22aaaeSDilip Kota	  hardware wrappers.
276ed22aaaeSDilip Kota
2770c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY
2780c87f90bSSrikanth Thokala	bool
2790c87f90bSSrikanth Thokala
2800c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_HOST
2810c87f90bSSrikanth Thokala	bool "Intel Keem Bay PCIe controller - Host mode"
2820c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
283a474d3fbSThomas Gleixner	depends on PCI_MSI
2840c87f90bSSrikanth Thokala	select PCIE_DW_HOST
2850c87f90bSSrikanth Thokala	select PCIE_KEEMBAY
2860c87f90bSSrikanth Thokala	help
2870c87f90bSSrikanth Thokala	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
2880c87f90bSSrikanth Thokala	  to work in host mode.
2890c87f90bSSrikanth Thokala	  The PCIe controller is based on DesignWare Hardware and uses
2900c87f90bSSrikanth Thokala	  DesignWare core functions.
2910c87f90bSSrikanth Thokala
2920c87f90bSSrikanth Thokalaconfig PCIE_KEEMBAY_EP
2930c87f90bSSrikanth Thokala	bool "Intel Keem Bay PCIe controller - Endpoint mode"
2940c87f90bSSrikanth Thokala	depends on ARCH_KEEMBAY || COMPILE_TEST
295a474d3fbSThomas Gleixner	depends on PCI_MSI
2960c87f90bSSrikanth Thokala	depends on PCI_ENDPOINT
2970c87f90bSSrikanth Thokala	select PCIE_DW_EP
2980c87f90bSSrikanth Thokala	select PCIE_KEEMBAY
2990c87f90bSSrikanth Thokala	help
3000c87f90bSSrikanth Thokala	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
3010c87f90bSSrikanth Thokala	  to work in endpoint mode.
3020c87f90bSSrikanth Thokala	  The PCIe controller is based on DesignWare Hardware and uses
3030c87f90bSSrikanth Thokala	  DesignWare core functions.
3040c87f90bSSrikanth Thokala
3056e0832faSShawn Linconfig PCIE_KIRIN
3066e0832faSShawn Lin	depends on OF && (ARM64 || COMPILE_TEST)
307aed9d9e4SMauro Carvalho Chehab	tristate "HiSilicon Kirin series SoCs PCIe controllers"
308a474d3fbSThomas Gleixner	depends on PCI_MSI
3096e0832faSShawn Lin	select PCIE_DW_HOST
3106e0832faSShawn Lin	help
3116e0832faSShawn Lin	  Say Y here if you want PCIe controller support
3126e0832faSShawn Lin	  on HiSilicon Kirin series SoCs.
3136e0832faSShawn Lin
3146e0832faSShawn Linconfig PCIE_HISI_STB
3156e0832faSShawn Lin	bool "HiSilicon STB SoCs PCIe controllers"
3166e0832faSShawn Lin	depends on ARCH_HISI || COMPILE_TEST
317a474d3fbSThomas Gleixner	depends on PCI_MSI
3186e0832faSShawn Lin	select PCIE_DW_HOST
3196e0832faSShawn Lin	help
3206e0832faSShawn Lin	  Say Y here if you want PCIe controller support on HiSilicon STB SoCs
3216e0832faSShawn Lin
3229c0ef6d3SYue Wangconfig PCI_MESON
323a98d2187SKevin Hilman	tristate "MESON PCIe controller"
324a98d2187SKevin Hilman	default m if ARCH_MESON
325a474d3fbSThomas Gleixner	depends on PCI_MSI
3269c0ef6d3SYue Wang	select PCIE_DW_HOST
3279c0ef6d3SYue Wang	help
3289c0ef6d3SYue Wang	  Say Y here if you want to enable PCI controller support on Amlogic
3299c0ef6d3SYue Wang	  SoCs. The PCI controller on Amlogic is based on DesignWare hardware
3309c0ef6d3SYue Wang	  and therefore the driver re-uses the DesignWare core functions to
3319c0ef6d3SYue Wang	  implement the driver.
3329c0ef6d3SYue Wang
33356e15a23SVidya Sagarconfig PCIE_TEGRA194
334c57247f9SVidya Sagar	tristate
335c57247f9SVidya Sagar
336c57247f9SVidya Sagarconfig PCIE_TEGRA194_HOST
337c57247f9SVidya Sagar	tristate "NVIDIA Tegra194 (and later) PCIe controller - Host Mode"
33856e15a23SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
339a474d3fbSThomas Gleixner	depends on PCI_MSI
34056e15a23SVidya Sagar	select PCIE_DW_HOST
34156e15a23SVidya Sagar	select PHY_TEGRA194_P2U
342c57247f9SVidya Sagar	select PCIE_TEGRA194
34356e15a23SVidya Sagar	help
344c57247f9SVidya Sagar	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
345c57247f9SVidya Sagar	  work in host mode. There are two instances of PCIe controllers in
346c57247f9SVidya Sagar	  Tegra194. This controller can work either as EP or RC. In order to
347c57247f9SVidya Sagar	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
348c57247f9SVidya Sagar	  in order to enable device-specific features PCIE_TEGRA194_EP must be
349c57247f9SVidya Sagar	  selected. This uses the DesignWare core.
350c57247f9SVidya Sagar
351c57247f9SVidya Sagarconfig PCIE_TEGRA194_EP
352c57247f9SVidya Sagar	tristate "NVIDIA Tegra194 (and later) PCIe controller - Endpoint Mode"
353c57247f9SVidya Sagar	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
354c57247f9SVidya Sagar	depends on PCI_ENDPOINT
355c57247f9SVidya Sagar	select PCIE_DW_EP
356c57247f9SVidya Sagar	select PHY_TEGRA194_P2U
357c57247f9SVidya Sagar	select PCIE_TEGRA194
358c57247f9SVidya Sagar	help
359c57247f9SVidya Sagar	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
36010739e2aSWesley Sheng	  work in endpoint mode. There are two instances of PCIe controllers in
361c57247f9SVidya Sagar	  Tegra194. This controller can work either as EP or RC. In order to
362c57247f9SVidya Sagar	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
363c57247f9SVidya Sagar	  in order to enable device-specific features PCIE_TEGRA194_EP must be
364c57247f9SVidya Sagar	  selected. This uses the DesignWare core.
36556e15a23SVidya Sagar
366da36024aSNobuhiro Iwamatsuconfig PCIE_VISCONTI_HOST
367da36024aSNobuhiro Iwamatsu	bool "Toshiba Visconti PCIe controllers"
368da36024aSNobuhiro Iwamatsu	depends on ARCH_VISCONTI || COMPILE_TEST
369a474d3fbSThomas Gleixner	depends on PCI_MSI
370da36024aSNobuhiro Iwamatsu	select PCIE_DW_HOST
371da36024aSNobuhiro Iwamatsu	help
372da36024aSNobuhiro Iwamatsu	  Say Y here if you want PCIe controller support on Toshiba Visconti SoC.
373da36024aSNobuhiro Iwamatsu	  This driver supports TMPV7708 SoC.
374da36024aSNobuhiro Iwamatsu
3757e6d5cd8SKunihiko Hayashiconfig PCIE_UNIPHIER
3768d7e33d6SKunihiko Hayashi	bool "Socionext UniPhier PCIe host controllers"
3777e6d5cd8SKunihiko Hayashi	depends on ARCH_UNIPHIER || COMPILE_TEST
3787e6d5cd8SKunihiko Hayashi	depends on OF && HAS_IOMEM
379a474d3fbSThomas Gleixner	depends on PCI_MSI
3807e6d5cd8SKunihiko Hayashi	select PCIE_DW_HOST
3817e6d5cd8SKunihiko Hayashi	help
3828d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe host controller support on UniPhier SoCs.
3837e6d5cd8SKunihiko Hayashi	  This driver supports LD20 and PXs3 SoCs.
3847e6d5cd8SKunihiko Hayashi
3858d7e33d6SKunihiko Hayashiconfig PCIE_UNIPHIER_EP
3868d7e33d6SKunihiko Hayashi	bool "Socionext UniPhier PCIe endpoint controllers"
3878d7e33d6SKunihiko Hayashi	depends on ARCH_UNIPHIER || COMPILE_TEST
3888d7e33d6SKunihiko Hayashi	depends on OF && HAS_IOMEM
3898d7e33d6SKunihiko Hayashi	depends on PCI_ENDPOINT
3908d7e33d6SKunihiko Hayashi	select PCIE_DW_EP
3918d7e33d6SKunihiko Hayashi	help
3928d7e33d6SKunihiko Hayashi	  Say Y here if you want PCIe endpoint controller support on
3938d7e33d6SKunihiko Hayashi	  UniPhier SoCs. This driver supports Pro5 SoC.
3948d7e33d6SKunihiko Hayashi
395a8daea94SJonathan Chocronconfig PCIE_AL
396a8daea94SJonathan Chocron	bool "Amazon Annapurna Labs PCIe controller"
397a8daea94SJonathan Chocron	depends on OF && (ARM64 || COMPILE_TEST)
398a474d3fbSThomas Gleixner	depends on PCI_MSI
399a8daea94SJonathan Chocron	select PCIE_DW_HOST
40059521c3cSArnd Bergmann	select PCI_ECAM
401a8daea94SJonathan Chocron	help
402a8daea94SJonathan Chocron	  Say Y here to enable support of the Amazon's Annapurna Labs PCIe
403a8daea94SJonathan Chocron	  controller IP on Amazon SoCs. The PCIe controller uses the DesignWare
404a8daea94SJonathan Chocron	  core plus Annapurna Labs proprietary hardware wrappers. This is
405a8daea94SJonathan Chocron	  required only for DT-based platforms. ACPI platforms with the
406a8daea94SJonathan Chocron	  Annapurna Labs PCIe controller don't need to enable this.
407a8daea94SJonathan Chocron
408e7e21b3aSPaul Walmsleyconfig PCIE_FU740
409e7e21b3aSPaul Walmsley	bool "SiFive FU740 PCIe host controller"
410a474d3fbSThomas Gleixner	depends on PCI_MSI
411e7e21b3aSPaul Walmsley	depends on SOC_SIFIVE || COMPILE_TEST
412e7e21b3aSPaul Walmsley	select PCIE_DW_HOST
413e7e21b3aSPaul Walmsley	help
414e7e21b3aSPaul Walmsley	  Say Y here if you want PCIe controller support for the SiFive
415e7e21b3aSPaul Walmsley	  FU740.
416e7e21b3aSPaul Walmsley
4176e0832faSShawn Linendmenu
418