Kconfig 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. # SPDX-License-Identifier: GPL-2.0
  2. menu "DesignWare PCI Core Support"
  3. depends on PCI
  4. config PCIE_DW
  5. bool
  6. config PCIE_DW_HOST
  7. bool
  8. select PCIE_DW
  9. config PCIE_DW_EP
  10. bool
  11. select PCIE_DW
  12. config PCI_DRA7XX
  13. tristate
  14. config PCI_DRA7XX_HOST
  15. tristate "TI DRA7xx PCIe controller Host Mode"
  16. depends on SOC_DRA7XX || COMPILE_TEST
  17. depends on OF && HAS_IOMEM && TI_PIPE3
  18. depends on PCI_MSI_IRQ_DOMAIN
  19. select PCIE_DW_HOST
  20. select PCI_DRA7XX
  21. default y if SOC_DRA7XX
  22. help
  23. Enables support for the PCIe controller in the DRA7xx SoC to work in
  24. host mode. There are two instances of PCIe controller in DRA7xx.
  25. This controller can work either as EP or RC. In order to enable
  26. host-specific features PCI_DRA7XX_HOST must be selected and in order
  27. to enable device-specific features PCI_DRA7XX_EP must be selected.
  28. This uses the DesignWare core.
  29. config PCI_DRA7XX_EP
  30. tristate "TI DRA7xx PCIe controller Endpoint Mode"
  31. depends on SOC_DRA7XX || COMPILE_TEST
  32. depends on OF && HAS_IOMEM && TI_PIPE3
  33. depends on PCI_ENDPOINT
  34. select PCIE_DW_EP
  35. select PCI_DRA7XX
  36. help
  37. Enables support for the PCIe controller in the DRA7xx SoC to work in
  38. endpoint mode. There are two instances of PCIe controller in DRA7xx.
  39. This controller can work either as EP or RC. In order to enable
  40. host-specific features PCI_DRA7XX_HOST must be selected and in order
  41. to enable device-specific features PCI_DRA7XX_EP must be selected.
  42. This uses the DesignWare core.
  43. config PCIE_DW_PLAT
  44. bool
  45. config PCIE_DW_PLAT_HOST
  46. bool "Platform bus based DesignWare PCIe Controller - Host mode"
  47. depends on PCI_MSI_IRQ_DOMAIN
  48. select PCIE_DW_HOST
  49. select PCIE_DW_PLAT
  50. help
  51. Enables support for the PCIe controller in the Designware IP to
  52. work in host mode. There are two instances of PCIe controller in
  53. Designware IP.
  54. This controller can work either as EP or RC. In order to enable
  55. host-specific features PCIE_DW_PLAT_HOST must be selected and in
  56. order to enable device-specific features PCI_DW_PLAT_EP must be
  57. selected.
  58. config PCIE_DW_PLAT_EP
  59. bool "Platform bus based DesignWare PCIe Controller - Endpoint mode"
  60. depends on PCI && PCI_MSI_IRQ_DOMAIN
  61. depends on PCI_ENDPOINT
  62. select PCIE_DW_EP
  63. select PCIE_DW_PLAT
  64. help
  65. Enables support for the PCIe controller in the Designware IP to
  66. work in endpoint mode. There are two instances of PCIe controller
  67. in Designware IP.
  68. This controller can work either as EP or RC. In order to enable
  69. host-specific features PCIE_DW_PLAT_HOST must be selected and in
  70. order to enable device-specific features PCI_DW_PLAT_EP must be
  71. selected.
  72. config PCI_EXYNOS
  73. tristate "Samsung Exynos PCIe controller"
  74. depends on ARCH_EXYNOS || COMPILE_TEST
  75. depends on PCI_MSI_IRQ_DOMAIN
  76. select PCIE_DW_HOST
  77. help
  78. Enables support for the PCIe controller in the Samsung Exynos SoCs
  79. to work in host mode. The PCI controller is based on the DesignWare
  80. hardware and therefore the driver re-uses the DesignWare core
  81. functions to implement the driver.
  82. config PCI_IMX6
  83. bool "Freescale i.MX6/7/8 PCIe controller"
  84. depends on ARCH_MXC || COMPILE_TEST
  85. depends on PCI_MSI_IRQ_DOMAIN
  86. select PCIE_DW_HOST
  87. config PCIE_SPEAR13XX
  88. bool "STMicroelectronics SPEAr PCIe controller"
  89. depends on ARCH_SPEAR13XX || COMPILE_TEST
  90. depends on PCI_MSI_IRQ_DOMAIN
  91. select PCIE_DW_HOST
  92. help
  93. Say Y here if you want PCIe support on SPEAr13XX SoCs.
  94. config PCI_KEYSTONE
  95. bool
  96. config PCI_KEYSTONE_HOST
  97. bool "PCI Keystone Host Mode"
  98. depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
  99. depends on PCI_MSI_IRQ_DOMAIN
  100. select PCIE_DW_HOST
  101. select PCI_KEYSTONE
  102. help
  103. Enables support for the PCIe controller in the Keystone SoC to
  104. work in host mode. The PCI controller on Keystone is based on
  105. DesignWare hardware and therefore the driver re-uses the
  106. DesignWare core functions to implement the driver.
  107. config PCI_KEYSTONE_EP
  108. bool "PCI Keystone Endpoint Mode"
  109. depends on ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
  110. depends on PCI_ENDPOINT
  111. select PCIE_DW_EP
  112. select PCI_KEYSTONE
  113. help
  114. Enables support for the PCIe controller in the Keystone SoC to
  115. work in endpoint mode. The PCI controller on Keystone is based
  116. on DesignWare hardware and therefore the driver re-uses the
  117. DesignWare core functions to implement the driver.
  118. config PCI_LAYERSCAPE
  119. bool "Freescale Layerscape PCIe controller - Host mode"
  120. depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
  121. depends on PCI_MSI_IRQ_DOMAIN
  122. select PCIE_DW_HOST
  123. select MFD_SYSCON
  124. help
  125. Say Y here if you want to enable PCIe controller support on Layerscape
  126. SoCs to work in Host mode.
  127. This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
  128. determines which PCIe controller works in EP mode and which PCIe
  129. controller works in RC mode.
  130. config PCI_LAYERSCAPE_EP
  131. bool "Freescale Layerscape PCIe controller - Endpoint mode"
  132. depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
  133. depends on PCI_ENDPOINT
  134. select PCIE_DW_EP
  135. help
  136. Say Y here if you want to enable PCIe controller support on Layerscape
  137. SoCs to work in Endpoint mode.
  138. This controller can work either as EP or RC. The RCW[HOST_AGT_PEX]
  139. determines which PCIe controller works in EP mode and which PCIe
  140. controller works in RC mode.
  141. config PCI_HISI
  142. depends on OF && (ARM64 || COMPILE_TEST)
  143. bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
  144. depends on PCI_MSI_IRQ_DOMAIN
  145. select PCIE_DW_HOST
  146. select PCI_HOST_COMMON
  147. help
  148. Say Y here if you want PCIe controller support on HiSilicon
  149. Hip05 and Hip06 SoCs
  150. config PCIE_QCOM
  151. bool "Qualcomm PCIe controller"
  152. depends on OF && (ARCH_QCOM || COMPILE_TEST)
  153. depends on PCI_MSI_IRQ_DOMAIN
  154. select PCIE_DW_HOST
  155. select CRC8
  156. help
  157. Say Y here to enable PCIe controller support on Qualcomm SoCs. The
  158. PCIe controller uses the DesignWare core plus Qualcomm-specific
  159. hardware wrappers.
  160. config PCIE_QCOM_EP
  161. tristate "Qualcomm PCIe controller - Endpoint mode"
  162. depends on OF && (ARCH_QCOM || COMPILE_TEST)
  163. depends on PCI_ENDPOINT
  164. select PCIE_DW_EP
  165. help
  166. Say Y here to enable support for the PCIe controllers on Qualcomm SoCs
  167. to work in endpoint mode. The PCIe controller uses the DesignWare core
  168. plus Qualcomm-specific hardware wrappers.
  169. config PCIE_ARMADA_8K
  170. bool "Marvell Armada-8K PCIe controller"
  171. depends on ARCH_MVEBU || COMPILE_TEST
  172. depends on PCI_MSI_IRQ_DOMAIN
  173. select PCIE_DW_HOST
  174. help
  175. Say Y here if you want to enable PCIe controller support on
  176. Armada-8K SoCs. The PCIe controller on Armada-8K is based on
  177. DesignWare hardware and therefore the driver re-uses the
  178. DesignWare core functions to implement the driver.
  179. config PCIE_ARTPEC6
  180. bool
  181. config PCIE_ARTPEC6_HOST
  182. bool "Axis ARTPEC-6 PCIe controller Host Mode"
  183. depends on MACH_ARTPEC6 || COMPILE_TEST
  184. depends on PCI_MSI_IRQ_DOMAIN
  185. select PCIE_DW_HOST
  186. select PCIE_ARTPEC6
  187. help
  188. Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
  189. host mode. This uses the DesignWare core.
  190. config PCIE_ARTPEC6_EP
  191. bool "Axis ARTPEC-6 PCIe controller Endpoint Mode"
  192. depends on MACH_ARTPEC6 || COMPILE_TEST
  193. depends on PCI_ENDPOINT
  194. select PCIE_DW_EP
  195. select PCIE_ARTPEC6
  196. help
  197. Enables support for the PCIe controller in the ARTPEC-6 SoC to work in
  198. endpoint mode. This uses the DesignWare core.
  199. config PCIE_ROCKCHIP_DW_HOST
  200. bool "Rockchip DesignWare PCIe controller"
  201. select PCIE_DW
  202. select PCIE_DW_HOST
  203. depends on PCI_MSI_IRQ_DOMAIN
  204. depends on ARCH_ROCKCHIP || COMPILE_TEST
  205. depends on OF
  206. help
  207. Enables support for the DesignWare PCIe controller in the
  208. Rockchip SoC except RK3399.
  209. config PCIE_INTEL_GW
  210. bool "Intel Gateway PCIe host controller support"
  211. depends on OF && (X86 || COMPILE_TEST)
  212. depends on PCI_MSI_IRQ_DOMAIN
  213. select PCIE_DW_HOST
  214. help
  215. Say 'Y' here to enable PCIe Host controller support on Intel
  216. Gateway SoCs.
  217. The PCIe controller uses the DesignWare core plus Intel-specific
  218. hardware wrappers.
  219. config PCIE_KEEMBAY
  220. bool
  221. config PCIE_KEEMBAY_HOST
  222. bool "Intel Keem Bay PCIe controller - Host mode"
  223. depends on ARCH_KEEMBAY || COMPILE_TEST
  224. depends on PCI && PCI_MSI_IRQ_DOMAIN
  225. select PCIE_DW_HOST
  226. select PCIE_KEEMBAY
  227. help
  228. Say 'Y' here to enable support for the PCIe controller in Keem Bay
  229. to work in host mode.
  230. The PCIe controller is based on DesignWare Hardware and uses
  231. DesignWare core functions.
  232. config PCIE_KEEMBAY_EP
  233. bool "Intel Keem Bay PCIe controller - Endpoint mode"
  234. depends on ARCH_KEEMBAY || COMPILE_TEST
  235. depends on PCI && PCI_MSI_IRQ_DOMAIN
  236. depends on PCI_ENDPOINT
  237. select PCIE_DW_EP
  238. select PCIE_KEEMBAY
  239. help
  240. Say 'Y' here to enable support for the PCIe controller in Keem Bay
  241. to work in endpoint mode.
  242. The PCIe controller is based on DesignWare Hardware and uses
  243. DesignWare core functions.
  244. config PCIE_KIRIN
  245. depends on OF && (ARM64 || COMPILE_TEST)
  246. tristate "HiSilicon Kirin series SoCs PCIe controllers"
  247. depends on PCI_MSI_IRQ_DOMAIN
  248. select PCIE_DW_HOST
  249. help
  250. Say Y here if you want PCIe controller support
  251. on HiSilicon Kirin series SoCs.
  252. config PCIE_HISI_STB
  253. bool "HiSilicon STB SoCs PCIe controllers"
  254. depends on ARCH_HISI || COMPILE_TEST
  255. depends on PCI_MSI_IRQ_DOMAIN
  256. select PCIE_DW_HOST
  257. help
  258. Say Y here if you want PCIe controller support on HiSilicon STB SoCs
  259. config PCI_MESON
  260. tristate "MESON PCIe controller"
  261. default m if ARCH_MESON
  262. depends on PCI_MSI_IRQ_DOMAIN
  263. select PCIE_DW_HOST
  264. select REGMAP_MMIO
  265. help
  266. Say Y here if you want to enable PCI controller support on Amlogic
  267. SoCs. The PCI controller on Amlogic is based on DesignWare hardware
  268. and therefore the driver re-uses the DesignWare core functions to
  269. implement the driver.
  270. config PCIE_TEGRA194
  271. tristate
  272. config PCIE_TEGRA194_HOST
  273. tristate "NVIDIA Tegra194 (and later) PCIe controller - Host Mode"
  274. depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
  275. depends on PCI_MSI_IRQ_DOMAIN
  276. select PCIE_DW_HOST
  277. select PHY_TEGRA194_P2U
  278. select PCIE_TEGRA194
  279. help
  280. Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
  281. work in host mode. There are two instances of PCIe controllers in
  282. Tegra194. This controller can work either as EP or RC. In order to
  283. enable host-specific features PCIE_TEGRA194_HOST must be selected and
  284. in order to enable device-specific features PCIE_TEGRA194_EP must be
  285. selected. This uses the DesignWare core.
  286. config PCIE_TEGRA194_EP
  287. tristate "NVIDIA Tegra194 (and later) PCIe controller - Endpoint Mode"
  288. depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
  289. depends on PCI_ENDPOINT
  290. select PCIE_DW_EP
  291. select PHY_TEGRA194_P2U
  292. select PCIE_TEGRA194
  293. help
  294. Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
  295. work in endpoint mode. There are two instances of PCIe controllers in
  296. Tegra194. This controller can work either as EP or RC. In order to
  297. enable host-specific features PCIE_TEGRA194_HOST must be selected and
  298. in order to enable device-specific features PCIE_TEGRA194_EP must be
  299. selected. This uses the DesignWare core.
  300. config PCIE_VISCONTI_HOST
  301. bool "Toshiba Visconti PCIe controllers"
  302. depends on ARCH_VISCONTI || COMPILE_TEST
  303. depends on PCI_MSI_IRQ_DOMAIN
  304. select PCIE_DW_HOST
  305. help
  306. Say Y here if you want PCIe controller support on Toshiba Visconti SoC.
  307. This driver supports TMPV7708 SoC.
  308. config PCIE_UNIPHIER
  309. bool "Socionext UniPhier PCIe host controllers"
  310. depends on ARCH_UNIPHIER || COMPILE_TEST
  311. depends on OF && HAS_IOMEM
  312. depends on PCI_MSI_IRQ_DOMAIN
  313. select PCIE_DW_HOST
  314. help
  315. Say Y here if you want PCIe host controller support on UniPhier SoCs.
  316. This driver supports LD20 and PXs3 SoCs.
  317. config PCIE_UNIPHIER_EP
  318. bool "Socionext UniPhier PCIe endpoint controllers"
  319. depends on ARCH_UNIPHIER || COMPILE_TEST
  320. depends on OF && HAS_IOMEM
  321. depends on PCI_ENDPOINT
  322. select PCIE_DW_EP
  323. help
  324. Say Y here if you want PCIe endpoint controller support on
  325. UniPhier SoCs. This driver supports Pro5 SoC.
  326. config PCIE_AL
  327. bool "Amazon Annapurna Labs PCIe controller"
  328. depends on OF && (ARM64 || COMPILE_TEST)
  329. depends on PCI_MSI_IRQ_DOMAIN
  330. select PCIE_DW_HOST
  331. select PCI_ECAM
  332. help
  333. Say Y here to enable support of the Amazon's Annapurna Labs PCIe
  334. controller IP on Amazon SoCs. The PCIe controller uses the DesignWare
  335. core plus Annapurna Labs proprietary hardware wrappers. This is
  336. required only for DT-based platforms. ACPI platforms with the
  337. Annapurna Labs PCIe controller don't need to enable this.
  338. config PCIE_FU740
  339. bool "SiFive FU740 PCIe host controller"
  340. depends on PCI_MSI_IRQ_DOMAIN
  341. depends on SOC_SIFIVE || COMPILE_TEST
  342. select PCIE_DW_HOST
  343. help
  344. Say Y here if you want PCIe controller support for the SiFive
  345. FU740.
  346. endmenu