# SPDX-License-Identifier: GPL-2.0-only
#
# Xillybus devices
#

config XILLYBUS_CLASS
	tristate

config XILLYBUS
	tristate "Xillybus generic FPGA interface"
	depends on PCI || OF
	select CRC32
	select XILLYBUS_CLASS
	help
	  Xillybus is a generic interface for peripherals designed on
	  programmable logic (FPGA). The driver probes the hardware for
	  its capabilities, and creates device files accordingly.

	  If unsure, say N.

if XILLYBUS

config XILLYBUS_PCIE
	tristate "Xillybus over PCIe"
	depends on PCI_MSI
	help
	  Set to M if you want Xillybus to use PCI Express for communicating
	  with the FPGA. The module will be called xillybus_pcie.

config XILLYBUS_OF
	tristate "Xillybus over Device Tree"
	depends on OF && HAS_DMA && HAS_IOMEM
	help
	  Set to M if you want Xillybus to find its resources from the
	  Open Firmware Flattened Device Tree. If the target is an embedded
	  system, say M. The module will be called xillybus_of.

endif # if XILLYBUS

# XILLYUSB doesn't depend on XILLYBUS

config XILLYUSB
	tristate "XillyUSB: Xillybus generic FPGA interface for USB"
	depends on USB
	select CRC32
	select XILLYBUS_CLASS
	help
	  XillyUSB is the Xillybus variant which uses USB for communicating
	  with the FPGA.

	  Set to M if you want Xillybus to use USB for communicating with
	  the FPGA. The module will be called xillyusb.
