# 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.