# SPDX-License-Identifier: GPL-2.0
#
# PCI Endpoint Functions
#

config PCI_EPF_TEST
	tristate "PCI Endpoint Test driver"
	depends on PCI_ENDPOINT
	select CRC32
	help
	   Enable this configuration option to enable the test driver
	   for PCI Endpoint.

	   If in doubt, say "N" to disable Endpoint test driver.

config PCI_EPF_NTB
	tristate "PCI Endpoint NTB driver"
	depends on PCI_ENDPOINT
	select CONFIGFS_FS
	help
	  Select this configuration option to enable the Non-Transparent
	  Bridge (NTB) driver for PCI Endpoint. NTB driver implements NTB
	  controller functionality using multiple PCIe endpoint instances.
	  It can support NTB endpoint function devices created using
	  device tree.

	  If in doubt, say "N" to disable Endpoint NTB driver.

config PCI_EPF_VNTB
	tristate "PCI Endpoint Virtual NTB driver"
	depends on PCI_ENDPOINT
	depends on NTB
	select CONFIGFS_FS
	help
	  Select this configuration option to enable the Non-Transparent
	  Bridge (NTB) driver for PCIe Endpoint. NTB driver implements NTB
	  between PCI Root Port and PCIe Endpoint.

	  If in doubt, say "N" to disable Endpoint NTB driver.

config PCI_EPF_MHI
	tristate "PCI Endpoint driver for MHI bus"
	depends on PCI_ENDPOINT && MHI_BUS_EP
	help
	   Enable this configuration option to enable the PCI Endpoint
	   driver for Modem Host Interface (MHI) bus in Qualcomm Endpoint
	   devices such as SDX55.

	   If in doubt, say "N" to disable Endpoint driver for MHI bus.
