xref: /linux/arch/arm/mach-orion5x/ts78xx-fpga.h (revision ca55b2fef3a9373fcfc30f82fd26bc7fccbda732)
1 #define TS7800_FPGA_MAGIC 0x00b480
2 #define FPGAID(_magic, _rev) ((_magic << 8) + _rev)
3 
4 /*
5  * get yer id's from http://ts78xx.digriz.org.uk/
6  * do *not* make up your own or 'borrow' any!
7  */
8 enum fpga_ids {
9 	/* Technologic Systems */
10 	TS7800_REV_1	= FPGAID(TS7800_FPGA_MAGIC, 0x01),
11 	TS7800_REV_2	= FPGAID(TS7800_FPGA_MAGIC, 0x02),
12 	TS7800_REV_3	= FPGAID(TS7800_FPGA_MAGIC, 0x03),
13 	TS7800_REV_4	= FPGAID(TS7800_FPGA_MAGIC, 0x04),
14 	TS7800_REV_5	= FPGAID(TS7800_FPGA_MAGIC, 0x05),
15 	TS7800_REV_6	= FPGAID(TS7800_FPGA_MAGIC, 0x06),
16 	TS7800_REV_7	= FPGAID(TS7800_FPGA_MAGIC, 0x07),
17 	TS7800_REV_8	= FPGAID(TS7800_FPGA_MAGIC, 0x08),
18 	TS7800_REV_9	= FPGAID(TS7800_FPGA_MAGIC, 0x09),
19 
20 	/* Unaffordable & Expensive */
21 	UAE_DUMMY	= FPGAID(0xffffff, 0x01),
22 };
23 
24 struct fpga_device {
25 	unsigned		present:1;
26 	unsigned		init:1;
27 };
28 
29 struct fpga_devices {
30 	/* Technologic Systems */
31 	struct fpga_device	ts_rtc;
32 	struct fpga_device	ts_nand;
33 	struct fpga_device	ts_rng;
34 };
35 
36 struct ts78xx_fpga_data {
37 	unsigned int		id;
38 	int			state;
39 
40 	struct fpga_devices	supports;
41 };
42