162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Xillybus devices
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig XILLYBUS_CLASS
762306a36Sopenharmony_ci	tristate
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciconfig XILLYBUS
1062306a36Sopenharmony_ci	tristate "Xillybus generic FPGA interface"
1162306a36Sopenharmony_ci	depends on PCI || OF
1262306a36Sopenharmony_ci	select CRC32
1362306a36Sopenharmony_ci	select XILLYBUS_CLASS
1462306a36Sopenharmony_ci	help
1562306a36Sopenharmony_ci	  Xillybus is a generic interface for peripherals designed on
1662306a36Sopenharmony_ci	  programmable logic (FPGA). The driver probes the hardware for
1762306a36Sopenharmony_ci	  its capabilities, and creates device files accordingly.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci	  If unsure, say N.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciif XILLYBUS
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciconfig XILLYBUS_PCIE
2462306a36Sopenharmony_ci	tristate "Xillybus over PCIe"
2562306a36Sopenharmony_ci	depends on PCI_MSI
2662306a36Sopenharmony_ci	help
2762306a36Sopenharmony_ci	  Set to M if you want Xillybus to use PCI Express for communicating
2862306a36Sopenharmony_ci	  with the FPGA. The module will be called xillybus_pcie.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciconfig XILLYBUS_OF
3162306a36Sopenharmony_ci	tristate "Xillybus over Device Tree"
3262306a36Sopenharmony_ci	depends on OF && HAS_DMA && HAS_IOMEM
3362306a36Sopenharmony_ci	help
3462306a36Sopenharmony_ci	  Set to M if you want Xillybus to find its resources from the
3562306a36Sopenharmony_ci	  Open Firmware Flattened Device Tree. If the target is an embedded
3662306a36Sopenharmony_ci	  system, say M. The module will be called xillybus_of.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciendif # if XILLYBUS
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci# XILLYUSB doesn't depend on XILLYBUS
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciconfig XILLYUSB
4362306a36Sopenharmony_ci	tristate "XillyUSB: Xillybus generic FPGA interface for USB"
4462306a36Sopenharmony_ci	depends on USB
4562306a36Sopenharmony_ci	select CRC32
4662306a36Sopenharmony_ci	select XILLYBUS_CLASS
4762306a36Sopenharmony_ci	help
4862306a36Sopenharmony_ci	  XillyUSB is the Xillybus variant which uses USB for communicating
4962306a36Sopenharmony_ci	  with the FPGA.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci	  Set to M if you want Xillybus to use USB for communicating with
5262306a36Sopenharmony_ci	  the FPGA. The module will be called xillyusb.
53