1b3882330843650b751817712db57b9a7061e7879Alexander Clouter#define TS7800_FPGA_MAGIC 0x00b480
239008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter#define FPGAID(_magic, _rev) ((_magic << 8) + _rev)
339008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter
439008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter/*
539008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter * get yer id's from http://ts78xx.digriz.org.uk/
639008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter * do *not* make up your own or 'borrow' any!
739008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter */
839008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouterenum fpga_ids {
939008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter	/* Technologic Systems */
10b3882330843650b751817712db57b9a7061e7879Alexander Clouter	TS7800_REV_1	= FPGAID(TS7800_FPGA_MAGIC, 0x01),
11b3882330843650b751817712db57b9a7061e7879Alexander Clouter	TS7800_REV_2	= FPGAID(TS7800_FPGA_MAGIC, 0x02),
12b3882330843650b751817712db57b9a7061e7879Alexander Clouter	TS7800_REV_3	= FPGAID(TS7800_FPGA_MAGIC, 0x03),
13b3882330843650b751817712db57b9a7061e7879Alexander Clouter	TS7800_REV_4	= FPGAID(TS7800_FPGA_MAGIC, 0x04),
14b3882330843650b751817712db57b9a7061e7879Alexander Clouter	TS7800_REV_5	= FPGAID(TS7800_FPGA_MAGIC, 0x05),
15b3882330843650b751817712db57b9a7061e7879Alexander Clouter	TS7800_REV_6	= FPGAID(TS7800_FPGA_MAGIC, 0x06),
16b3882330843650b751817712db57b9a7061e7879Alexander Clouter	TS7800_REV_7	= FPGAID(TS7800_FPGA_MAGIC, 0x07),
17b3882330843650b751817712db57b9a7061e7879Alexander Clouter	TS7800_REV_8	= FPGAID(TS7800_FPGA_MAGIC, 0x08),
18b3882330843650b751817712db57b9a7061e7879Alexander Clouter	TS7800_REV_9	= FPGAID(TS7800_FPGA_MAGIC, 0x09),
190c1355e36fdc304b102851312d80a1e69c01f5a2Alexander Clouter
200c1355e36fdc304b102851312d80a1e69c01f5a2Alexander Clouter	/* Unaffordable & Expensive */
210c1355e36fdc304b102851312d80a1e69c01f5a2Alexander Clouter	UAE_DUMMY	= FPGAID(0xffffff, 0x01),
2239008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter};
2339008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter
2439008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouterstruct fpga_device {
2539008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter	unsigned		present:1;
2639008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter	unsigned		init:1;
2739008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter};
2839008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter
2939008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouterstruct fpga_devices {
3039008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter	/* Technologic Systems */
3139008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter	struct fpga_device 	ts_rtc;
3275bb6b9aab3255f440ef4e72a31978d1681105d6Alexander Clouter	struct fpga_device 	ts_nand;
33a914d4309c4cf6e7c4d0dbce4822dcad38a7cf27Alexander Clouter	struct fpga_device 	ts_rng;
3439008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter};
3539008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter
3639008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouterstruct ts78xx_fpga_data {
3739008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter	unsigned int		id;
3839008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter	int			state;
3939008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter
4039008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter	struct fpga_devices	supports;
4139008f959f4f3b60eecc5cec0ca077146c1f366bAlexander Clouter};
42