#define TS7800_FPGA_MAGIC 0x00b480 #define FPGAID(_magic, _rev) ((_magic << 8) + _rev) /* * get yer id's from http://ts78xx.digriz.org.uk/ * do *not* make up your own or 'borrow' any! */ enum fpga_ids { /* Technologic Systems */ TS7800_REV_1 = FPGAID(TS7800_FPGA_MAGIC, 0x01), TS7800_REV_2 = FPGAID(TS7800_FPGA_MAGIC, 0x02), TS7800_REV_3 = FPGAID(TS7800_FPGA_MAGIC, 0x03), TS7800_REV_4 = FPGAID(TS7800_FPGA_MAGIC, 0x04), TS7800_REV_5 = FPGAID(TS7800_FPGA_MAGIC, 0x05), TS7800_REV_6 = FPGAID(TS7800_FPGA_MAGIC, 0x06), TS7800_REV_7 = FPGAID(TS7800_FPGA_MAGIC, 0x07), TS7800_REV_8 = FPGAID(TS7800_FPGA_MAGIC, 0x08), TS7800_REV_9 = FPGAID(TS7800_FPGA_MAGIC, 0x09), /* Unaffordable & Expensive */ UAE_DUMMY = FPGAID(0xffffff, 0x01), }; struct fpga_device { unsigned present:1; unsigned init:1; }; struct fpga_devices { /* Technologic Systems */ struct fpga_device ts_rtc; struct fpga_device ts_nand; struct fpga_device ts_rng; }; struct ts78xx_fpga_data { unsigned int id; int state; struct fpga_devices supports; };