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