mirror_ubuntu-kernels/arch/arm/mach-orion5x/ts78xx-fpga.h

43 lines
1.1 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
#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;
};