#
# FMC (ANSI-VITA 57.1) bus support
#

menuconfig FMC
	tristate "FMC support"
	help

	  FMC (FPGA Mezzanine Carrier) is a mechanical and electrical
	  standard for mezzanine cards that plug into a carrier board.
	  This kernel subsystem supports the matching between carrier
	  and mezzanine based on identifiers stored in the internal I2C
	  EEPROM, as well as having carrier-independent drivers.

	  The framework was born outside of the kernel and at this time
	  the off-tree code base is more complete.  Code and documentation
	  is at git://ohwr.org/fmc-projects/fmc-bus.git .

if FMC

config FMC_FAKEDEV
	tristate "FMC fake device (software testing)"
	help
	  This is a fake carrier, bringing a default EEPROM content
	  that can be rewritten at run time and usef for matching
	  mezzanines.

config FMC_TRIVIAL
	tristate "FMC trivial mezzanine driver (software testing)"
	help
	  This is a fake mezzanine driver, to show how FMC works and test it.
	  The driver also handles interrupts (we used it with a real carrier
	  before the mezzanines were produced)

config FMC_WRITE_EEPROM
	tristate "FMC mezzanine driver to write I2C EEPROM"
	help
	  This driver matches every mezzanine device and can write the
	  internal EEPROM of the PCB, using the firmware loader to get
	  its binary and the function carrier->reprogram to actually do it.
	  It is useful when the mezzanines are produced.

config FMC_CHARDEV
	tristate "FMC mezzanine driver that registers a char device"
	help
	  This driver matches every mezzanine device and allows user
	  space to read and write registers using a char device. It
	  can be used to write user-space drivers, or just get
	  acquainted with a mezzanine before writing its specific driver.

endif # FMC
