1# SPDX-License-Identifier: GPL-2.0 2 3menu "DesignWare PCI Core Support" 4 depends on PCI 5 6config PCIE_DW 7 bool 8 9config PCIE_DW_HOST 10 bool 11 depends on PCI_MSI_IRQ_DOMAIN 12 select PCIE_DW 13 14config PCIE_DW_EP 15 bool 16 depends on PCI_ENDPOINT 17 select PCIE_DW 18 19config PCI_DRA7XX 20 bool 21 22config PCI_DRA7XX_HOST 23 bool "TI DRA7xx PCIe controller Host Mode" 24 depends on SOC_DRA7XX || COMPILE_TEST 25 depends on PCI_MSI_IRQ_DOMAIN 26 depends on OF && HAS_IOMEM && TI_PIPE3 27 select PCIE_DW_HOST 28 select PCI_DRA7XX 29 default y 30 help 31 Enables support for the PCIe controller in the DRA7xx SoC to work in 32 host mode. There are two instances of PCIe controller in DRA7xx. 33 This controller can work either as EP or RC. In order to enable 34 host-specific features PCI_DRA7XX_HOST must be selected and in order 35 to enable device-specific features PCI_DRA7XX_EP must be selected. 36 This uses the DesignWare core. 37 38config PCI_DRA7XX_EP 39 bool "TI DRA7xx PCIe controller Endpoint Mode" 40 depends on SOC_DRA7XX || COMPILE_TEST 41 depends on PCI_ENDPOINT 42 depends on OF && HAS_IOMEM && TI_PIPE3 43 select PCIE_DW_EP 44 select PCI_DRA7XX 45 help 46 Enables support for the PCIe controller in the DRA7xx SoC to work in 47 endpoint mode. There are two instances of PCIe controller in DRA7xx. 48 This controller can work either as EP or RC. In order to enable 49 host-specific features PCI_DRA7XX_HOST must be selected and in order 50 to enable device-specific features PCI_DRA7XX_EP must be selected. 51 This uses the DesignWare core. 52 53config PCIE_DW_PLAT 54 bool 55 56config PCIE_DW_PLAT_HOST 57 bool "Platform bus based DesignWare PCIe Controller - Host mode" 58 depends on PCI && PCI_MSI_IRQ_DOMAIN 59 select PCIE_DW_HOST 60 select PCIE_DW_PLAT 61 help 62 Enables support for the PCIe controller in the Designware IP to 63 work in host mode. There are two instances of PCIe controller in 64 Designware IP. 65 This controller can work either as EP or RC. In order to enable 66 host-specific features PCIE_DW_PLAT_HOST must be selected and in 67 order to enable device-specific features PCI_DW_PLAT_EP must be 68 selected. 69 70config PCIE_DW_PLAT_EP 71 bool "Platform bus based DesignWare PCIe Controller - Endpoint mode" 72 depends on PCI && PCI_MSI_IRQ_DOMAIN 73 depends on PCI_ENDPOINT 74 select PCIE_DW_EP 75 select PCIE_DW_PLAT 76 help 77 Enables support for the PCIe controller in the Designware IP to 78 work in endpoint mode. There are two instances of PCIe controller 79 in Designware IP. 80 This controller can work either as EP or RC. In order to enable 81 host-specific features PCIE_DW_PLAT_HOST must be selected and in 82 order to enable device-specific features PCI_DW_PLAT_EP must be 83 selected. 84 85config PCI_EXYNOS 86 bool "Samsung Exynos PCIe controller" 87 depends on SOC_EXYNOS5440 || COMPILE_TEST 88 depends on PCI_MSI_IRQ_DOMAIN 89 select PCIE_DW_HOST 90 91config PCI_IMX6 92 bool "Freescale i.MX6/7/8 PCIe controller" 93 depends on SOC_IMX6Q || SOC_IMX7D || (ARM64 && ARCH_MXC) || COMPILE_TEST 94 depends on PCI_MSI_IRQ_DOMAIN 95 select PCIE_DW_HOST 96 97config PCIE_SPEAR13XX 98 bool "STMicroelectronics SPEAr PCIe controller" 99 depends on ARCH_SPEAR13XX || COMPILE_TEST 100 depends on PCI_MSI_IRQ_DOMAIN 101 select PCIE_DW_HOST 102 help 103 Say Y here if you want PCIe support on SPEAr13XX SoCs. 104 105config PCI_KEYSTONE 106 bool "TI Keystone PCIe controller" 107 depends on ARCH_KEYSTONE || (ARM && COMPILE_TEST) 108 depends on PCI_MSI_IRQ_DOMAIN 109 select PCIE_DW_HOST 110 help 111 Say Y here if you want to enable PCI controller support on Keystone 112 SoCs. The PCI controller on Keystone is based on DesignWare hardware 113 and therefore the driver re-uses the DesignWare core functions to 114 implement the driver. 115 116config PCI_LAYERSCAPE 117 bool "Freescale Layerscape PCIe controller" 118 depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST) 119 depends on PCI_MSI_IRQ_DOMAIN 120 select MFD_SYSCON 121 select PCIE_DW_HOST 122 help 123 Say Y here if you want PCIe controller support on Layerscape SoCs. 124 125config PCI_HISI 126 depends on OF && (ARM64 || COMPILE_TEST) 127 bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers" 128 depends on PCI_MSI_IRQ_DOMAIN 129 select PCIE_DW_HOST 130 select PCI_HOST_COMMON 131 help 132 Say Y here if you want PCIe controller support on HiSilicon 133 Hip05 and Hip06 SoCs 134 135config PCIE_QCOM 136 bool "Qualcomm PCIe controller" 137 depends on OF && (ARCH_QCOM || COMPILE_TEST) 138 depends on PCI_MSI_IRQ_DOMAIN 139 select PCIE_DW_HOST 140 help 141 Say Y here to enable PCIe controller support on Qualcomm SoCs. The 142 PCIe controller uses the DesignWare core plus Qualcomm-specific 143 hardware wrappers. 144 145config PCIE_ARMADA_8K 146 bool "Marvell Armada-8K PCIe controller" 147 depends on ARCH_MVEBU || COMPILE_TEST 148 depends on PCI_MSI_IRQ_DOMAIN 149 select PCIE_DW_HOST 150 help 151 Say Y here if you want to enable PCIe controller support on 152 Armada-8K SoCs. The PCIe controller on Armada-8K is based on 153 DesignWare hardware and therefore the driver re-uses the 154 DesignWare core functions to implement the driver. 155 156config PCIE_ARTPEC6 157 bool 158 159config PCIE_ARTPEC6_HOST 160 bool "Axis ARTPEC-6 PCIe controller Host Mode" 161 depends on MACH_ARTPEC6 || COMPILE_TEST 162 depends on PCI_MSI_IRQ_DOMAIN 163 select PCIE_DW_HOST 164 select PCIE_ARTPEC6 165 help 166 Enables support for the PCIe controller in the ARTPEC-6 SoC to work in 167 host mode. This uses the DesignWare core. 168 169config PCIE_ARTPEC6_EP 170 bool "Axis ARTPEC-6 PCIe controller Endpoint Mode" 171 depends on MACH_ARTPEC6 || COMPILE_TEST 172 depends on PCI_ENDPOINT 173 select PCIE_DW_EP 174 select PCIE_ARTPEC6 175 help 176 Enables support for the PCIe controller in the ARTPEC-6 SoC to work in 177 endpoint mode. This uses the DesignWare core. 178 179config PCIE_KIRIN 180 depends on OF && (ARM64 || COMPILE_TEST) 181 bool "HiSilicon Kirin series SoCs PCIe controllers" 182 depends on PCI_MSI_IRQ_DOMAIN 183 select PCIE_DW_HOST 184 help 185 Say Y here if you want PCIe controller support 186 on HiSilicon Kirin series SoCs. 187 188config PCIE_HISI_STB 189 bool "HiSilicon STB SoCs PCIe controllers" 190 depends on ARCH_HISI || COMPILE_TEST 191 depends on PCI_MSI_IRQ_DOMAIN 192 select PCIE_DW_HOST 193 help 194 Say Y here if you want PCIe controller support on HiSilicon STB SoCs 195 196config PCI_MESON 197 bool "MESON PCIe controller" 198 depends on PCI_MSI_IRQ_DOMAIN 199 select PCIE_DW_HOST 200 help 201 Say Y here if you want to enable PCI controller support on Amlogic 202 SoCs. The PCI controller on Amlogic is based on DesignWare hardware 203 and therefore the driver re-uses the DesignWare core functions to 204 implement the driver. 205 206config PCIE_UNIPHIER 207 bool "Socionext UniPhier PCIe controllers" 208 depends on ARCH_UNIPHIER || COMPILE_TEST 209 depends on OF && HAS_IOMEM 210 depends on PCI_MSI_IRQ_DOMAIN 211 select PCIE_DW_HOST 212 help 213 Say Y here if you want PCIe controller support on UniPhier SoCs. 214 This driver supports LD20 and PXs3 SoCs. 215 216endmenu 217