# SPDX-License-Identifier: GPL-2.0

menu "Cadence-based PCIe controllers"
	depends on PCI

config PCIE_CADENCE
	bool

config PCIE_CADENCE_HOST
	bool
	depends on OF
	select IRQ_DOMAIN
	select PCIE_CADENCE

config PCIE_CADENCE_EP
	bool
	depends on OF
	depends on PCI_ENDPOINT
	select PCIE_CADENCE

config PCIE_CADENCE_PLAT
	bool

config PCIE_CADENCE_PLAT_HOST
	bool "Cadence platform PCIe controller (host mode)"
	depends on OF
	select PCIE_CADENCE_HOST
	select PCIE_CADENCE_PLAT
	help
	  Say Y here if you want to support the Cadence PCIe platform controller in
	  host mode. This PCIe controller may be embedded into many different
	  vendors SoCs.

config PCIE_CADENCE_PLAT_EP
	bool "Cadence platform PCIe controller (endpoint mode)"
	depends on OF
	depends on PCI_ENDPOINT
	select PCIE_CADENCE_EP
	select PCIE_CADENCE_PLAT
	help
	  Say Y here if you want to support the Cadence PCIe platform controller in
	  endpoint mode. This PCIe controller may be embedded into many
	  different vendors SoCs.

config PCI_J721E
	bool

config PCI_J721E_HOST
	bool "TI J721E PCIe controller (host mode)"
	depends on ARCH_K3 || COMPILE_TEST
	depends on OF
	select PCIE_CADENCE_HOST
	select PCI_J721E
	help
	  Say Y here if you want to support the TI J721E PCIe platform
	  controller in host mode. TI J721E PCIe controller uses Cadence PCIe
	  core.

config PCI_J721E_EP
	bool "TI J721E PCIe controller (endpoint mode)"
	depends on ARCH_K3 || COMPILE_TEST
	depends on OF
	depends on PCI_ENDPOINT
	select PCIE_CADENCE_EP
	select PCI_J721E
	help
	  Say Y here if you want to support the TI J721E PCIe platform
	  controller in endpoint mode. TI J721E PCIe controller uses Cadence PCIe
	  core.
endmenu
