| # SPDX-License-Identifier: GPL-2.0 | |
| menu "DesignWare-based PCIe controllers" | |
| depends on PCI | |
| config PCIE_DW | |
| bool | |
| config PCIE_DW_HOST | |
| bool | |
| select PCIE_DW | |
| config PCIE_DW_EP | |
| bool | |
| select PCIE_DW | |
| config PCIE_AL | |
| bool "Amazon Annapurna Labs PCIe controller" | |
| depends on OF && (ARM64 || COMPILE_TEST) | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select PCI_ECAM | |
| help | |
| Say Y here to enable support of the Amazon's Annapurna Labs PCIe | |
| controller IP on Amazon SoCs. The PCIe controller uses the DesignWare | |
| core plus Annapurna Labs proprietary hardware wrappers. This is | |
| required only for DT-based platforms. ACPI platforms with the | |
| Annapurna Labs PCIe controller don't need to enable this. | |
| config PCI_MESON | |
| tristate "Amlogic Meson PCIe controller" | |
| default m if ARCH_MESON | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| help | |
| Say Y here if you want to enable PCI controller support on Amlogic | |
| SoCs. The PCI controller on Amlogic is based on DesignWare hardware | |
| and therefore the driver re-uses the DesignWare core functions to | |
| implement the driver. | |
| config PCIE_ARTPEC6 | |
| bool | |
| config PCIE_ARTPEC6_HOST | |
| bool "Axis ARTPEC-6 PCIe controller (host mode)" | |
| depends on MACH_ARTPEC6 || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select PCIE_ARTPEC6 | |
| help | |
| Enables support for the PCIe controller in the ARTPEC-6 SoC to work in | |
| host mode. This uses the DesignWare core. | |
| config PCIE_ARTPEC6_EP | |
| bool "Axis ARTPEC-6 PCIe controller (endpoint mode)" | |
| depends on MACH_ARTPEC6 || COMPILE_TEST | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| select PCIE_ARTPEC6 | |
| help | |
| Enables support for the PCIe controller in the ARTPEC-6 SoC to work in | |
| endpoint mode. This uses the DesignWare core. | |
| config PCIE_BT1 | |
| tristate "Baikal-T1 PCIe controller" | |
| depends on MIPS_BAIKAL_T1 || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| help | |
| Enables support for the PCIe controller in the Baikal-T1 SoC to work | |
| in host mode. It's based on the Synopsys DWC PCIe v4.60a IP-core. | |
| config PCI_IMX6 | |
| bool | |
| config PCI_IMX6_HOST | |
| bool "Freescale i.MX6/7/8 PCIe controller (host mode)" | |
| depends on ARCH_MXC || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select PCI_IMX6 | |
| help | |
| Enables support for the PCIe controller in the i.MX SoCs to | |
| work in Root Complex mode. The PCI controller on i.MX is based | |
| on DesignWare hardware and therefore the driver re-uses the | |
| DesignWare core functions to implement the driver. | |
| config PCI_IMX6_EP | |
| bool "Freescale i.MX6/7/8 PCIe controller (endpoint mode)" | |
| depends on ARCH_MXC || COMPILE_TEST | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| select PCI_IMX6 | |
| help | |
| Enables support for the PCIe controller in the i.MX SoCs to | |
| work in endpoint mode. The PCI controller on i.MX is based | |
| on DesignWare hardware and therefore the driver re-uses the | |
| DesignWare core functions to implement the driver. | |
| config PCI_LAYERSCAPE | |
| bool "Freescale Layerscape PCIe controller (host mode)" | |
| depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST) | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select MFD_SYSCON | |
| help | |
| Say Y here if you want to enable PCIe controller support on Layerscape | |
| SoCs to work in Host mode. | |
| This controller can work either as EP or RC. The RCW[HOST_AGT_PEX] | |
| determines which PCIe controller works in EP mode and which PCIe | |
| controller works in RC mode. | |
| config PCI_LAYERSCAPE_EP | |
| bool "Freescale Layerscape PCIe controller (endpoint mode)" | |
| depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST) | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| help | |
| Say Y here if you want to enable PCIe controller support on Layerscape | |
| SoCs to work in Endpoint mode. | |
| This controller can work either as EP or RC. The RCW[HOST_AGT_PEX] | |
| determines which PCIe controller works in EP mode and which PCIe | |
| controller works in RC mode. | |
| config PCI_HISI | |
| depends on OF && (ARM64 || COMPILE_TEST) | |
| bool "HiSilicon Hip05 and Hip06 SoCs PCIe controller" | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select PCI_HOST_COMMON | |
| help | |
| Say Y here if you want PCIe controller support on HiSilicon | |
| Hip05 and Hip06 SoCs | |
| config PCIE_KIRIN | |
| depends on OF && (ARM64 || COMPILE_TEST) | |
| tristate "HiSilicon Kirin PCIe controller" | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select REGMAP_MMIO | |
| help | |
| Say Y here if you want PCIe controller support | |
| on HiSilicon Kirin series SoCs. | |
| config PCIE_HISI_STB | |
| bool "HiSilicon STB PCIe controller" | |
| depends on ARCH_HISI || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| help | |
| Say Y here if you want PCIe controller support on HiSilicon STB SoCs | |
| config PCIE_INTEL_GW | |
| bool "Intel Gateway PCIe controller " | |
| depends on OF && (X86 || COMPILE_TEST) | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| help | |
| Say 'Y' here to enable PCIe Host controller support on Intel | |
| Gateway SoCs. | |
| The PCIe controller uses the DesignWare core plus Intel-specific | |
| hardware wrappers. | |
| config PCIE_KEEMBAY | |
| bool | |
| config PCIE_KEEMBAY_HOST | |
| bool "Intel Keem Bay PCIe controller (host mode)" | |
| depends on ARCH_KEEMBAY || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select PCIE_KEEMBAY | |
| help | |
| Say 'Y' here to enable support for the PCIe controller in Keem Bay | |
| to work in host mode. | |
| The PCIe controller is based on DesignWare Hardware and uses | |
| DesignWare core functions. | |
| config PCIE_KEEMBAY_EP | |
| bool "Intel Keem Bay PCIe controller (endpoint mode)" | |
| depends on ARCH_KEEMBAY || COMPILE_TEST | |
| depends on PCI_MSI | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| select PCIE_KEEMBAY | |
| help | |
| Say 'Y' here to enable support for the PCIe controller in Keem Bay | |
| to work in endpoint mode. | |
| The PCIe controller is based on DesignWare Hardware and uses | |
| DesignWare core functions. | |
| config PCIE_ARMADA_8K | |
| bool "Marvell Armada-8K PCIe controller" | |
| depends on ARCH_MVEBU || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| help | |
| Say Y here if you want to enable PCIe controller support on | |
| Armada-8K SoCs. The PCIe controller on Armada-8K is based on | |
| DesignWare hardware and therefore the driver re-uses the | |
| DesignWare core functions to implement the driver. | |
| config PCIE_TEGRA194 | |
| tristate | |
| config PCIE_TEGRA194_HOST | |
| tristate "NVIDIA Tegra194 (and later) PCIe controller (host mode)" | |
| depends on ARCH_TEGRA_194_SOC || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select PHY_TEGRA194_P2U | |
| select PCIE_TEGRA194 | |
| help | |
| Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to | |
| work in host mode. There are two instances of PCIe controllers in | |
| Tegra194. This controller can work either as EP or RC. In order to | |
| enable host-specific features PCIE_TEGRA194_HOST must be selected and | |
| in order to enable device-specific features PCIE_TEGRA194_EP must be | |
| selected. This uses the DesignWare core. | |
| config PCIE_TEGRA194_EP | |
| tristate "NVIDIA Tegra194 (and later) PCIe controller (endpoint mode)" | |
| depends on ARCH_TEGRA_194_SOC || COMPILE_TEST | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| select PHY_TEGRA194_P2U | |
| select PCIE_TEGRA194 | |
| help | |
| Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to | |
| work in endpoint mode. There are two instances of PCIe controllers in | |
| Tegra194. This controller can work either as EP or RC. In order to | |
| enable host-specific features PCIE_TEGRA194_HOST must be selected and | |
| in order to enable device-specific features PCIE_TEGRA194_EP must be | |
| selected. This uses the DesignWare core. | |
| config PCIE_DW_PLAT | |
| bool | |
| config PCIE_DW_PLAT_HOST | |
| bool "Platform bus based DesignWare PCIe controller (host mode)" | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select PCIE_DW_PLAT | |
| help | |
| Enables support for the PCIe controller in the Designware IP to | |
| work in host mode. There are two instances of PCIe controller in | |
| Designware IP. | |
| This controller can work either as EP or RC. In order to enable | |
| host-specific features PCIE_DW_PLAT_HOST must be selected and in | |
| order to enable device-specific features PCI_DW_PLAT_EP must be | |
| selected. | |
| config PCIE_DW_PLAT_EP | |
| bool "Platform bus based DesignWare PCIe controller (endpoint mode)" | |
| depends on PCI && PCI_MSI | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| select PCIE_DW_PLAT | |
| help | |
| Enables support for the PCIe controller in the Designware IP to | |
| work in endpoint mode. There are two instances of PCIe controller | |
| in Designware IP. | |
| This controller can work either as EP or RC. In order to enable | |
| host-specific features PCIE_DW_PLAT_HOST must be selected and in | |
| order to enable device-specific features PCI_DW_PLAT_EP must be | |
| selected. | |
| config PCIE_QCOM_COMMON | |
| bool | |
| config PCIE_QCOM | |
| bool "Qualcomm PCIe controller (host mode)" | |
| depends on OF && (ARCH_QCOM || COMPILE_TEST) | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select CRC8 | |
| select PCIE_QCOM_COMMON | |
| help | |
| Say Y here to enable PCIe controller support on Qualcomm SoCs. The | |
| PCIe controller uses the DesignWare core plus Qualcomm-specific | |
| hardware wrappers. | |
| config PCIE_QCOM_EP | |
| tristate "Qualcomm PCIe controller (endpoint mode)" | |
| depends on OF && (ARCH_QCOM || COMPILE_TEST) | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| select PCIE_QCOM_COMMON | |
| help | |
| Say Y here to enable support for the PCIe controllers on Qualcomm SoCs | |
| to work in endpoint mode. The PCIe controller uses the DesignWare core | |
| plus Qualcomm-specific hardware wrappers. | |
| config PCIE_RCAR_GEN4 | |
| tristate | |
| config PCIE_RCAR_GEN4_HOST | |
| tristate "Renesas R-Car Gen4 PCIe controller (host mode)" | |
| depends on ARCH_RENESAS || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select PCIE_RCAR_GEN4 | |
| help | |
| Say Y here if you want PCIe controller (host mode) on R-Car Gen4 SoCs. | |
| To compile this driver as a module, choose M here: the module will be | |
| called pcie-rcar-gen4.ko. This uses the DesignWare core. | |
| config PCIE_RCAR_GEN4_EP | |
| tristate "Renesas R-Car Gen4 PCIe controller (endpoint mode)" | |
| depends on ARCH_RENESAS || COMPILE_TEST | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| select PCIE_RCAR_GEN4 | |
| help | |
| Say Y here if you want PCIe controller (endpoint mode) on R-Car Gen4 | |
| SoCs. To compile this driver as a module, choose M here: the module | |
| will be called pcie-rcar-gen4.ko. This uses the DesignWare core. | |
| config PCIE_ROCKCHIP_DW | |
| bool | |
| config PCIE_ROCKCHIP_DW_HOST | |
| bool "Rockchip DesignWare PCIe controller (host mode)" | |
| depends on PCI_MSI | |
| depends on ARCH_ROCKCHIP || COMPILE_TEST | |
| depends on OF | |
| select PCIE_DW_HOST | |
| select PCIE_ROCKCHIP_DW | |
| help | |
| Enables support for the DesignWare PCIe controller in the | |
| Rockchip SoC (except RK3399) to work in host mode. | |
| config PCIE_ROCKCHIP_DW_EP | |
| bool "Rockchip DesignWare PCIe controller (endpoint mode)" | |
| depends on ARCH_ROCKCHIP || COMPILE_TEST | |
| depends on OF | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| select PCIE_ROCKCHIP_DW | |
| help | |
| Enables support for the DesignWare PCIe controller in the | |
| Rockchip SoC (except RK3399) to work in endpoint mode. | |
| config PCI_EXYNOS | |
| tristate "Samsung Exynos PCIe controller" | |
| depends on ARCH_EXYNOS || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| help | |
| Enables support for the PCIe controller in the Samsung Exynos SoCs | |
| to work in host mode. The PCI controller is based on the DesignWare | |
| hardware and therefore the driver re-uses the DesignWare core | |
| functions to implement the driver. | |
| config PCIE_FU740 | |
| bool "SiFive FU740 PCIe controller" | |
| depends on PCI_MSI | |
| depends on ARCH_SIFIVE || COMPILE_TEST | |
| select PCIE_DW_HOST | |
| help | |
| Say Y here if you want PCIe controller support for the SiFive | |
| FU740. | |
| config PCIE_UNIPHIER | |
| bool "Socionext UniPhier PCIe controller (host mode)" | |
| depends on ARCH_UNIPHIER || COMPILE_TEST | |
| depends on OF && HAS_IOMEM | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| help | |
| Say Y here if you want PCIe host controller support on UniPhier SoCs. | |
| This driver supports LD20 and PXs3 SoCs. | |
| config PCIE_UNIPHIER_EP | |
| bool "Socionext UniPhier PCIe controller (endpoint mode)" | |
| depends on ARCH_UNIPHIER || COMPILE_TEST | |
| depends on OF && HAS_IOMEM | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| help | |
| Say Y here if you want PCIe endpoint controller support on | |
| UniPhier SoCs. This driver supports Pro5 SoC. | |
| config PCIE_SPEAR13XX | |
| bool "STMicroelectronics SPEAr PCIe controller" | |
| depends on ARCH_SPEAR13XX || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| help | |
| Say Y here if you want PCIe support on SPEAr13XX SoCs. | |
| config PCI_DRA7XX | |
| tristate | |
| config PCI_DRA7XX_HOST | |
| tristate "TI DRA7xx PCIe controller (host mode)" | |
| depends on SOC_DRA7XX || COMPILE_TEST | |
| depends on OF && HAS_IOMEM && TI_PIPE3 | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select PCI_DRA7XX | |
| default y if SOC_DRA7XX | |
| help | |
| Enables support for the PCIe controller in the DRA7xx SoC to work in | |
| host mode. There are two instances of PCIe controller in DRA7xx. | |
| This controller can work either as EP or RC. In order to enable | |
| host-specific features PCI_DRA7XX_HOST must be selected and in order | |
| to enable device-specific features PCI_DRA7XX_EP must be selected. | |
| This uses the DesignWare core. | |
| config PCI_DRA7XX_EP | |
| tristate "TI DRA7xx PCIe controller (endpoint mode)" | |
| depends on SOC_DRA7XX || COMPILE_TEST | |
| depends on OF && HAS_IOMEM && TI_PIPE3 | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| select PCI_DRA7XX | |
| help | |
| Enables support for the PCIe controller in the DRA7xx SoC to work in | |
| endpoint mode. There are two instances of PCIe controller in DRA7xx. | |
| This controller can work either as EP or RC. In order to enable | |
| host-specific features PCI_DRA7XX_HOST must be selected and in order | |
| to enable device-specific features PCI_DRA7XX_EP must be selected. | |
| This uses the DesignWare core. | |
| config PCI_KEYSTONE | |
| bool | |
| config PCI_KEYSTONE_HOST | |
| bool "TI Keystone PCIe controller (host mode)" | |
| depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| select PCI_KEYSTONE | |
| help | |
| Enables support for the PCIe controller in the Keystone SoC to | |
| work in host mode. The PCI controller on Keystone is based on | |
| DesignWare hardware and therefore the driver re-uses the | |
| DesignWare core functions to implement the driver. | |
| config PCI_KEYSTONE_EP | |
| bool "TI Keystone PCIe controller (endpoint mode)" | |
| depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST | |
| depends on PCI_ENDPOINT | |
| select PCIE_DW_EP | |
| select PCI_KEYSTONE | |
| help | |
| Enables support for the PCIe controller in the Keystone SoC to | |
| work in endpoint mode. The PCI controller on Keystone is based | |
| on DesignWare hardware and therefore the driver re-uses the | |
| DesignWare core functions to implement the driver. | |
| config PCIE_VISCONTI_HOST | |
| bool "Toshiba Visconti PCIe controller" | |
| depends on ARCH_VISCONTI || COMPILE_TEST | |
| depends on PCI_MSI | |
| select PCIE_DW_HOST | |
| help | |
| Say Y here if you want PCIe controller support on Toshiba Visconti SoC. | |
| This driver supports TMPV7708 SoC. | |
| endmenu |