162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_cimenu "DesignWare-based PCIe controllers"
462306a36Sopenharmony_ci	depends on PCI
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig PCIE_DW
762306a36Sopenharmony_ci	bool
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciconfig PCIE_DW_HOST
1062306a36Sopenharmony_ci	bool
1162306a36Sopenharmony_ci	select PCIE_DW
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciconfig PCIE_DW_EP
1462306a36Sopenharmony_ci	bool
1562306a36Sopenharmony_ci	select PCIE_DW
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciconfig PCIE_AL
1862306a36Sopenharmony_ci	bool "Amazon Annapurna Labs PCIe controller"
1962306a36Sopenharmony_ci	depends on OF && (ARM64 || COMPILE_TEST)
2062306a36Sopenharmony_ci	depends on PCI_MSI
2162306a36Sopenharmony_ci	select PCIE_DW_HOST
2262306a36Sopenharmony_ci	select PCI_ECAM
2362306a36Sopenharmony_ci	help
2462306a36Sopenharmony_ci	  Say Y here to enable support of the Amazon's Annapurna Labs PCIe
2562306a36Sopenharmony_ci	  controller IP on Amazon SoCs. The PCIe controller uses the DesignWare
2662306a36Sopenharmony_ci	  core plus Annapurna Labs proprietary hardware wrappers. This is
2762306a36Sopenharmony_ci	  required only for DT-based platforms. ACPI platforms with the
2862306a36Sopenharmony_ci	  Annapurna Labs PCIe controller don't need to enable this.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciconfig PCI_MESON
3162306a36Sopenharmony_ci	tristate "Amlogic Meson PCIe controller"
3262306a36Sopenharmony_ci	default m if ARCH_MESON
3362306a36Sopenharmony_ci	depends on PCI_MSI
3462306a36Sopenharmony_ci	select PCIE_DW_HOST
3562306a36Sopenharmony_ci	help
3662306a36Sopenharmony_ci	  Say Y here if you want to enable PCI controller support on Amlogic
3762306a36Sopenharmony_ci	  SoCs. The PCI controller on Amlogic is based on DesignWare hardware
3862306a36Sopenharmony_ci	  and therefore the driver re-uses the DesignWare core functions to
3962306a36Sopenharmony_ci	  implement the driver.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig PCIE_ARTPEC6
4262306a36Sopenharmony_ci	bool
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciconfig PCIE_ARTPEC6_HOST
4562306a36Sopenharmony_ci	bool "Axis ARTPEC-6 PCIe controller (host mode)"
4662306a36Sopenharmony_ci	depends on MACH_ARTPEC6 || COMPILE_TEST
4762306a36Sopenharmony_ci	depends on PCI_MSI
4862306a36Sopenharmony_ci	select PCIE_DW_HOST
4962306a36Sopenharmony_ci	select PCIE_ARTPEC6
5062306a36Sopenharmony_ci	help
5162306a36Sopenharmony_ci	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
5262306a36Sopenharmony_ci	  host mode. This uses the DesignWare core.
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciconfig PCIE_ARTPEC6_EP
5562306a36Sopenharmony_ci	bool "Axis ARTPEC-6 PCIe controller (endpoint mode)"
5662306a36Sopenharmony_ci	depends on MACH_ARTPEC6 || COMPILE_TEST
5762306a36Sopenharmony_ci	depends on PCI_ENDPOINT
5862306a36Sopenharmony_ci	select PCIE_DW_EP
5962306a36Sopenharmony_ci	select PCIE_ARTPEC6
6062306a36Sopenharmony_ci	help
6162306a36Sopenharmony_ci	  Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
6262306a36Sopenharmony_ci	  endpoint mode. This uses the DesignWare core.
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ciconfig PCIE_BT1
6562306a36Sopenharmony_ci	tristate "Baikal-T1 PCIe controller"
6662306a36Sopenharmony_ci	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
6762306a36Sopenharmony_ci	depends on PCI_MSI
6862306a36Sopenharmony_ci	select PCIE_DW_HOST
6962306a36Sopenharmony_ci	help
7062306a36Sopenharmony_ci	  Enables support for the PCIe controller in the Baikal-T1 SoC to work
7162306a36Sopenharmony_ci	  in host mode. It's based on the Synopsys DWC PCIe v4.60a IP-core.
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ciconfig PCI_IMX6
7462306a36Sopenharmony_ci	bool
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ciconfig PCI_IMX6_HOST
7762306a36Sopenharmony_ci	bool "Freescale i.MX6/7/8 PCIe controller (host mode)"
7862306a36Sopenharmony_ci	depends on ARCH_MXC || COMPILE_TEST
7962306a36Sopenharmony_ci	depends on PCI_MSI
8062306a36Sopenharmony_ci	select PCIE_DW_HOST
8162306a36Sopenharmony_ci	select PCI_IMX6
8262306a36Sopenharmony_ci	help
8362306a36Sopenharmony_ci	  Enables support for the PCIe controller in the i.MX SoCs to
8462306a36Sopenharmony_ci	  work in Root Complex mode. The PCI controller on i.MX is based
8562306a36Sopenharmony_ci	  on DesignWare hardware and therefore the driver re-uses the
8662306a36Sopenharmony_ci	  DesignWare core functions to implement the driver.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ciconfig PCI_IMX6_EP
8962306a36Sopenharmony_ci	bool "Freescale i.MX6/7/8 PCIe controller (endpoint mode)"
9062306a36Sopenharmony_ci	depends on ARCH_MXC || COMPILE_TEST
9162306a36Sopenharmony_ci	depends on PCI_ENDPOINT
9262306a36Sopenharmony_ci	select PCIE_DW_EP
9362306a36Sopenharmony_ci	select PCI_IMX6
9462306a36Sopenharmony_ci	help
9562306a36Sopenharmony_ci	  Enables support for the PCIe controller in the i.MX SoCs to
9662306a36Sopenharmony_ci	  work in endpoint mode. The PCI controller on i.MX is based
9762306a36Sopenharmony_ci	  on DesignWare hardware and therefore the driver re-uses the
9862306a36Sopenharmony_ci	  DesignWare core functions to implement the driver.
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ciconfig PCI_LAYERSCAPE
10162306a36Sopenharmony_ci	bool "Freescale Layerscape PCIe controller (host mode)"
10262306a36Sopenharmony_ci	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
10362306a36Sopenharmony_ci	depends on PCI_MSI
10462306a36Sopenharmony_ci	select PCIE_DW_HOST
10562306a36Sopenharmony_ci	select MFD_SYSCON
10662306a36Sopenharmony_ci	help
10762306a36Sopenharmony_ci	  Say Y here if you want to enable PCIe controller support on Layerscape
10862306a36Sopenharmony_ci	  SoCs to work in Host mode.
10962306a36Sopenharmony_ci	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
11062306a36Sopenharmony_ci	  determines which PCIe controller works in EP mode and which PCIe
11162306a36Sopenharmony_ci	  controller works in RC mode.
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciconfig PCI_LAYERSCAPE_EP
11462306a36Sopenharmony_ci	bool "Freescale Layerscape PCIe controller (endpoint mode)"
11562306a36Sopenharmony_ci	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
11662306a36Sopenharmony_ci	depends on PCI_ENDPOINT
11762306a36Sopenharmony_ci	select PCIE_DW_EP
11862306a36Sopenharmony_ci	help
11962306a36Sopenharmony_ci	  Say Y here if you want to enable PCIe controller support on Layerscape
12062306a36Sopenharmony_ci	  SoCs to work in Endpoint mode.
12162306a36Sopenharmony_ci	  This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
12262306a36Sopenharmony_ci	  determines which PCIe controller works in EP mode and which PCIe
12362306a36Sopenharmony_ci	  controller works in RC mode.
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ciconfig PCI_HISI
12662306a36Sopenharmony_ci	depends on OF && (ARM64 || COMPILE_TEST)
12762306a36Sopenharmony_ci	bool "HiSilicon Hip05 and Hip06 SoCs PCIe controller"
12862306a36Sopenharmony_ci	depends on PCI_MSI
12962306a36Sopenharmony_ci	select PCIE_DW_HOST
13062306a36Sopenharmony_ci	select PCI_HOST_COMMON
13162306a36Sopenharmony_ci	help
13262306a36Sopenharmony_ci	  Say Y here if you want PCIe controller support on HiSilicon
13362306a36Sopenharmony_ci	  Hip05 and Hip06 SoCs
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ciconfig PCIE_KIRIN
13662306a36Sopenharmony_ci	depends on OF && (ARM64 || COMPILE_TEST)
13762306a36Sopenharmony_ci	tristate "HiSilicon Kirin PCIe controller"
13862306a36Sopenharmony_ci	depends on PCI_MSI
13962306a36Sopenharmony_ci	select PCIE_DW_HOST
14062306a36Sopenharmony_ci	select REGMAP_MMIO
14162306a36Sopenharmony_ci	help
14262306a36Sopenharmony_ci	  Say Y here if you want PCIe controller support
14362306a36Sopenharmony_ci	  on HiSilicon Kirin series SoCs.
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ciconfig PCIE_HISI_STB
14662306a36Sopenharmony_ci	bool "HiSilicon STB PCIe controller"
14762306a36Sopenharmony_ci	depends on ARCH_HISI || COMPILE_TEST
14862306a36Sopenharmony_ci	depends on PCI_MSI
14962306a36Sopenharmony_ci	select PCIE_DW_HOST
15062306a36Sopenharmony_ci	help
15162306a36Sopenharmony_ci	  Say Y here if you want PCIe controller support on HiSilicon STB SoCs
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ciconfig PCIE_INTEL_GW
15462306a36Sopenharmony_ci	bool "Intel Gateway PCIe controller "
15562306a36Sopenharmony_ci	depends on OF && (X86 || COMPILE_TEST)
15662306a36Sopenharmony_ci	depends on PCI_MSI
15762306a36Sopenharmony_ci	select PCIE_DW_HOST
15862306a36Sopenharmony_ci	help
15962306a36Sopenharmony_ci	  Say 'Y' here to enable PCIe Host controller support on Intel
16062306a36Sopenharmony_ci	  Gateway SoCs.
16162306a36Sopenharmony_ci	  The PCIe controller uses the DesignWare core plus Intel-specific
16262306a36Sopenharmony_ci	  hardware wrappers.
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ciconfig PCIE_KEEMBAY
16562306a36Sopenharmony_ci	bool
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ciconfig PCIE_KEEMBAY_HOST
16862306a36Sopenharmony_ci	bool "Intel Keem Bay PCIe controller (host mode)"
16962306a36Sopenharmony_ci	depends on ARCH_KEEMBAY || COMPILE_TEST
17062306a36Sopenharmony_ci	depends on PCI_MSI
17162306a36Sopenharmony_ci	select PCIE_DW_HOST
17262306a36Sopenharmony_ci	select PCIE_KEEMBAY
17362306a36Sopenharmony_ci	help
17462306a36Sopenharmony_ci	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
17562306a36Sopenharmony_ci	  to work in host mode.
17662306a36Sopenharmony_ci	  The PCIe controller is based on DesignWare Hardware and uses
17762306a36Sopenharmony_ci	  DesignWare core functions.
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ciconfig PCIE_KEEMBAY_EP
18062306a36Sopenharmony_ci	bool "Intel Keem Bay PCIe controller (endpoint mode)"
18162306a36Sopenharmony_ci	depends on ARCH_KEEMBAY || COMPILE_TEST
18262306a36Sopenharmony_ci	depends on PCI_MSI
18362306a36Sopenharmony_ci	depends on PCI_ENDPOINT
18462306a36Sopenharmony_ci	select PCIE_DW_EP
18562306a36Sopenharmony_ci	select PCIE_KEEMBAY
18662306a36Sopenharmony_ci	help
18762306a36Sopenharmony_ci	  Say 'Y' here to enable support for the PCIe controller in Keem Bay
18862306a36Sopenharmony_ci	  to work in endpoint mode.
18962306a36Sopenharmony_ci	  The PCIe controller is based on DesignWare Hardware and uses
19062306a36Sopenharmony_ci	  DesignWare core functions.
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ciconfig PCIE_ARMADA_8K
19362306a36Sopenharmony_ci	bool "Marvell Armada-8K PCIe controller"
19462306a36Sopenharmony_ci	depends on ARCH_MVEBU || COMPILE_TEST
19562306a36Sopenharmony_ci	depends on PCI_MSI
19662306a36Sopenharmony_ci	select PCIE_DW_HOST
19762306a36Sopenharmony_ci	help
19862306a36Sopenharmony_ci	  Say Y here if you want to enable PCIe controller support on
19962306a36Sopenharmony_ci	  Armada-8K SoCs. The PCIe controller on Armada-8K is based on
20062306a36Sopenharmony_ci	  DesignWare hardware and therefore the driver re-uses the
20162306a36Sopenharmony_ci	  DesignWare core functions to implement the driver.
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ciconfig PCIE_TEGRA194
20462306a36Sopenharmony_ci	tristate
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ciconfig PCIE_TEGRA194_HOST
20762306a36Sopenharmony_ci	tristate "NVIDIA Tegra194 (and later) PCIe controller (host mode)"
20862306a36Sopenharmony_ci	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
20962306a36Sopenharmony_ci	depends on PCI_MSI
21062306a36Sopenharmony_ci	select PCIE_DW_HOST
21162306a36Sopenharmony_ci	select PHY_TEGRA194_P2U
21262306a36Sopenharmony_ci	select PCIE_TEGRA194
21362306a36Sopenharmony_ci	help
21462306a36Sopenharmony_ci	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
21562306a36Sopenharmony_ci	  work in host mode. There are two instances of PCIe controllers in
21662306a36Sopenharmony_ci	  Tegra194. This controller can work either as EP or RC. In order to
21762306a36Sopenharmony_ci	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
21862306a36Sopenharmony_ci	  in order to enable device-specific features PCIE_TEGRA194_EP must be
21962306a36Sopenharmony_ci	  selected. This uses the DesignWare core.
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ciconfig PCIE_TEGRA194_EP
22262306a36Sopenharmony_ci	tristate "NVIDIA Tegra194 (and later) PCIe controller (endpoint mode)"
22362306a36Sopenharmony_ci	depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
22462306a36Sopenharmony_ci	depends on PCI_ENDPOINT
22562306a36Sopenharmony_ci	select PCIE_DW_EP
22662306a36Sopenharmony_ci	select PHY_TEGRA194_P2U
22762306a36Sopenharmony_ci	select PCIE_TEGRA194
22862306a36Sopenharmony_ci	help
22962306a36Sopenharmony_ci	  Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
23062306a36Sopenharmony_ci	  work in endpoint mode. There are two instances of PCIe controllers in
23162306a36Sopenharmony_ci	  Tegra194. This controller can work either as EP or RC. In order to
23262306a36Sopenharmony_ci	  enable host-specific features PCIE_TEGRA194_HOST must be selected and
23362306a36Sopenharmony_ci	  in order to enable device-specific features PCIE_TEGRA194_EP must be
23462306a36Sopenharmony_ci	  selected. This uses the DesignWare core.
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ciconfig PCIE_DW_PLAT
23762306a36Sopenharmony_ci	bool
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ciconfig PCIE_DW_PLAT_HOST
24062306a36Sopenharmony_ci	bool "Platform bus based DesignWare PCIe controller (host mode)"
24162306a36Sopenharmony_ci	depends on PCI_MSI
24262306a36Sopenharmony_ci	select PCIE_DW_HOST
24362306a36Sopenharmony_ci	select PCIE_DW_PLAT
24462306a36Sopenharmony_ci	help
24562306a36Sopenharmony_ci	  Enables support for the PCIe controller in the Designware IP to
24662306a36Sopenharmony_ci	  work in host mode. There are two instances of PCIe controller in
24762306a36Sopenharmony_ci	  Designware IP.
24862306a36Sopenharmony_ci	  This controller can work either as EP or RC. In order to enable
24962306a36Sopenharmony_ci	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
25062306a36Sopenharmony_ci	  order to enable device-specific features PCI_DW_PLAT_EP must be
25162306a36Sopenharmony_ci	  selected.
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_ciconfig PCIE_DW_PLAT_EP
25462306a36Sopenharmony_ci	bool "Platform bus based DesignWare PCIe controller (endpoint mode)"
25562306a36Sopenharmony_ci	depends on PCI && PCI_MSI
25662306a36Sopenharmony_ci	depends on PCI_ENDPOINT
25762306a36Sopenharmony_ci	select PCIE_DW_EP
25862306a36Sopenharmony_ci	select PCIE_DW_PLAT
25962306a36Sopenharmony_ci	help
26062306a36Sopenharmony_ci	  Enables support for the PCIe controller in the Designware IP to
26162306a36Sopenharmony_ci	  work in endpoint mode. There are two instances of PCIe controller
26262306a36Sopenharmony_ci	  in Designware IP.
26362306a36Sopenharmony_ci	  This controller can work either as EP or RC. In order to enable
26462306a36Sopenharmony_ci	  host-specific features PCIE_DW_PLAT_HOST must be selected and in
26562306a36Sopenharmony_ci	  order to enable device-specific features PCI_DW_PLAT_EP must be
26662306a36Sopenharmony_ci	  selected.
26762306a36Sopenharmony_ci
26862306a36Sopenharmony_ciconfig PCIE_QCOM
26962306a36Sopenharmony_ci	bool "Qualcomm PCIe controller (host mode)"
27062306a36Sopenharmony_ci	depends on OF && (ARCH_QCOM || COMPILE_TEST)
27162306a36Sopenharmony_ci	depends on PCI_MSI
27262306a36Sopenharmony_ci	select PCIE_DW_HOST
27362306a36Sopenharmony_ci	select CRC8
27462306a36Sopenharmony_ci	help
27562306a36Sopenharmony_ci	  Say Y here to enable PCIe controller support on Qualcomm SoCs. The
27662306a36Sopenharmony_ci	  PCIe controller uses the DesignWare core plus Qualcomm-specific
27762306a36Sopenharmony_ci	  hardware wrappers.
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ciconfig PCIE_QCOM_EP
28062306a36Sopenharmony_ci	tristate "Qualcomm PCIe controller (endpoint mode)"
28162306a36Sopenharmony_ci	depends on OF && (ARCH_QCOM || COMPILE_TEST)
28262306a36Sopenharmony_ci	depends on PCI_ENDPOINT
28362306a36Sopenharmony_ci	select PCIE_DW_EP
28462306a36Sopenharmony_ci	help
28562306a36Sopenharmony_ci	  Say Y here to enable support for the PCIe controllers on Qualcomm SoCs
28662306a36Sopenharmony_ci	  to work in endpoint mode. The PCIe controller uses the DesignWare core
28762306a36Sopenharmony_ci	  plus Qualcomm-specific hardware wrappers.
28862306a36Sopenharmony_ci
28962306a36Sopenharmony_ciconfig PCIE_ROCKCHIP_DW_HOST
29062306a36Sopenharmony_ci	bool "Rockchip DesignWare PCIe controller"
29162306a36Sopenharmony_ci	select PCIE_DW
29262306a36Sopenharmony_ci	select PCIE_DW_HOST
29362306a36Sopenharmony_ci	depends on PCI_MSI
29462306a36Sopenharmony_ci	depends on ARCH_ROCKCHIP || COMPILE_TEST
29562306a36Sopenharmony_ci	depends on OF
29662306a36Sopenharmony_ci	help
29762306a36Sopenharmony_ci	  Enables support for the DesignWare PCIe controller in the
29862306a36Sopenharmony_ci	  Rockchip SoC except RK3399.
29962306a36Sopenharmony_ci
30062306a36Sopenharmony_ciconfig PCI_EXYNOS
30162306a36Sopenharmony_ci	tristate "Samsung Exynos PCIe controller"
30262306a36Sopenharmony_ci	depends on ARCH_EXYNOS || COMPILE_TEST
30362306a36Sopenharmony_ci	depends on PCI_MSI
30462306a36Sopenharmony_ci	select PCIE_DW_HOST
30562306a36Sopenharmony_ci	help
30662306a36Sopenharmony_ci	  Enables support for the PCIe controller in the Samsung Exynos SoCs
30762306a36Sopenharmony_ci	  to work in host mode. The PCI controller is based on the DesignWare
30862306a36Sopenharmony_ci	  hardware and therefore the driver re-uses the DesignWare core
30962306a36Sopenharmony_ci	  functions to implement the driver.
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ciconfig PCIE_FU740
31262306a36Sopenharmony_ci	bool "SiFive FU740 PCIe controller"
31362306a36Sopenharmony_ci	depends on PCI_MSI
31462306a36Sopenharmony_ci	depends on SOC_SIFIVE || COMPILE_TEST
31562306a36Sopenharmony_ci	select PCIE_DW_HOST
31662306a36Sopenharmony_ci	help
31762306a36Sopenharmony_ci	  Say Y here if you want PCIe controller support for the SiFive
31862306a36Sopenharmony_ci	  FU740.
31962306a36Sopenharmony_ci
32062306a36Sopenharmony_ciconfig PCIE_UNIPHIER
32162306a36Sopenharmony_ci	bool "Socionext UniPhier PCIe controller (host mode)"
32262306a36Sopenharmony_ci	depends on ARCH_UNIPHIER || COMPILE_TEST
32362306a36Sopenharmony_ci	depends on OF && HAS_IOMEM
32462306a36Sopenharmony_ci	depends on PCI_MSI
32562306a36Sopenharmony_ci	select PCIE_DW_HOST
32662306a36Sopenharmony_ci	help
32762306a36Sopenharmony_ci	  Say Y here if you want PCIe host controller support on UniPhier SoCs.
32862306a36Sopenharmony_ci	  This driver supports LD20 and PXs3 SoCs.
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ciconfig PCIE_UNIPHIER_EP
33162306a36Sopenharmony_ci	bool "Socionext UniPhier PCIe controller (endpoint mode)"
33262306a36Sopenharmony_ci	depends on ARCH_UNIPHIER || COMPILE_TEST
33362306a36Sopenharmony_ci	depends on OF && HAS_IOMEM
33462306a36Sopenharmony_ci	depends on PCI_ENDPOINT
33562306a36Sopenharmony_ci	select PCIE_DW_EP
33662306a36Sopenharmony_ci	help
33762306a36Sopenharmony_ci	  Say Y here if you want PCIe endpoint controller support on
33862306a36Sopenharmony_ci	  UniPhier SoCs. This driver supports Pro5 SoC.
33962306a36Sopenharmony_ci
34062306a36Sopenharmony_ciconfig PCIE_SPEAR13XX
34162306a36Sopenharmony_ci	bool "STMicroelectronics SPEAr PCIe controller"
34262306a36Sopenharmony_ci	depends on ARCH_SPEAR13XX || COMPILE_TEST
34362306a36Sopenharmony_ci	depends on PCI_MSI
34462306a36Sopenharmony_ci	select PCIE_DW_HOST
34562306a36Sopenharmony_ci	help
34662306a36Sopenharmony_ci	  Say Y here if you want PCIe support on SPEAr13XX SoCs.
34762306a36Sopenharmony_ci
34862306a36Sopenharmony_ciconfig PCI_DRA7XX
34962306a36Sopenharmony_ci	tristate
35062306a36Sopenharmony_ci
35162306a36Sopenharmony_ciconfig PCI_DRA7XX_HOST
35262306a36Sopenharmony_ci	tristate "TI DRA7xx PCIe controller (host mode)"
35362306a36Sopenharmony_ci	depends on SOC_DRA7XX || COMPILE_TEST
35462306a36Sopenharmony_ci	depends on OF && HAS_IOMEM && TI_PIPE3
35562306a36Sopenharmony_ci	depends on PCI_MSI
35662306a36Sopenharmony_ci	select PCIE_DW_HOST
35762306a36Sopenharmony_ci	select PCI_DRA7XX
35862306a36Sopenharmony_ci	default y if SOC_DRA7XX
35962306a36Sopenharmony_ci	help
36062306a36Sopenharmony_ci	  Enables support for the PCIe controller in the DRA7xx SoC to work in
36162306a36Sopenharmony_ci	  host mode. There are two instances of PCIe controller in DRA7xx.
36262306a36Sopenharmony_ci	  This controller can work either as EP or RC. In order to enable
36362306a36Sopenharmony_ci	  host-specific features PCI_DRA7XX_HOST must be selected and in order
36462306a36Sopenharmony_ci	  to enable device-specific features PCI_DRA7XX_EP must be selected.
36562306a36Sopenharmony_ci	  This uses the DesignWare core.
36662306a36Sopenharmony_ci
36762306a36Sopenharmony_ciconfig PCI_DRA7XX_EP
36862306a36Sopenharmony_ci	tristate "TI DRA7xx PCIe controller (endpoint mode)"
36962306a36Sopenharmony_ci	depends on SOC_DRA7XX || COMPILE_TEST
37062306a36Sopenharmony_ci	depends on OF && HAS_IOMEM && TI_PIPE3
37162306a36Sopenharmony_ci	depends on PCI_ENDPOINT
37262306a36Sopenharmony_ci	select PCIE_DW_EP
37362306a36Sopenharmony_ci	select PCI_DRA7XX
37462306a36Sopenharmony_ci	help
37562306a36Sopenharmony_ci	  Enables support for the PCIe controller in the DRA7xx SoC to work in
37662306a36Sopenharmony_ci	  endpoint mode. There are two instances of PCIe controller in DRA7xx.
37762306a36Sopenharmony_ci	  This controller can work either as EP or RC. In order to enable
37862306a36Sopenharmony_ci	  host-specific features PCI_DRA7XX_HOST must be selected and in order
37962306a36Sopenharmony_ci	  to enable device-specific features PCI_DRA7XX_EP must be selected.
38062306a36Sopenharmony_ci	  This uses the DesignWare core.
38162306a36Sopenharmony_ci
38262306a36Sopenharmony_ciconfig PCI_KEYSTONE
38362306a36Sopenharmony_ci	bool
38462306a36Sopenharmony_ci
38562306a36Sopenharmony_ciconfig PCI_KEYSTONE_HOST
38662306a36Sopenharmony_ci	bool "TI Keystone PCIe controller (host mode)"
38762306a36Sopenharmony_ci	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
38862306a36Sopenharmony_ci	depends on PCI_MSI
38962306a36Sopenharmony_ci	select PCIE_DW_HOST
39062306a36Sopenharmony_ci	select PCI_KEYSTONE
39162306a36Sopenharmony_ci	help
39262306a36Sopenharmony_ci	  Enables support for the PCIe controller in the Keystone SoC to
39362306a36Sopenharmony_ci	  work in host mode. The PCI controller on Keystone is based on
39462306a36Sopenharmony_ci	  DesignWare hardware and therefore the driver re-uses the
39562306a36Sopenharmony_ci	  DesignWare core functions to implement the driver.
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ciconfig PCI_KEYSTONE_EP
39862306a36Sopenharmony_ci	bool "TI Keystone PCIe controller (endpoint mode)"
39962306a36Sopenharmony_ci	depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
40062306a36Sopenharmony_ci	depends on PCI_ENDPOINT
40162306a36Sopenharmony_ci	select PCIE_DW_EP
40262306a36Sopenharmony_ci	select PCI_KEYSTONE
40362306a36Sopenharmony_ci	help
40462306a36Sopenharmony_ci	  Enables support for the PCIe controller in the Keystone SoC to
40562306a36Sopenharmony_ci	  work in endpoint mode. The PCI controller on Keystone is based
40662306a36Sopenharmony_ci	  on DesignWare hardware and therefore the driver re-uses the
40762306a36Sopenharmony_ci	  DesignWare core functions to implement the driver.
40862306a36Sopenharmony_ci
40962306a36Sopenharmony_ciconfig PCIE_VISCONTI_HOST
41062306a36Sopenharmony_ci	bool "Toshiba Visconti PCIe controller"
41162306a36Sopenharmony_ci	depends on ARCH_VISCONTI || COMPILE_TEST
41262306a36Sopenharmony_ci	depends on PCI_MSI
41362306a36Sopenharmony_ci	select PCIE_DW_HOST
41462306a36Sopenharmony_ci	help
41562306a36Sopenharmony_ci	  Say Y here if you want PCIe controller support on Toshiba Visconti SoC.
41662306a36Sopenharmony_ci	  This driver supports TMPV7708 SoC.
41762306a36Sopenharmony_ci
41862306a36Sopenharmony_ciendmenu
419