summaryrefslogtreecommitdiff
path: root/arch/arm/mach-orion5x/ts78xx-fpga.h
diff options
context:
space:
mode:
authorAlexander Clouter <alex@digriz.org.uk>2009-02-07 01:16:55 +0300
committerAlexander Clouter <alex@digriz.org.uk>2009-02-07 01:16:55 +0300
commit39008f959f4f3b60eecc5cec0ca077146c1f366b (patch)
tree35d9aaf4c722f0b9c9f8f2e7ef33a60a4ab28fff /arch/arm/mach-orion5x/ts78xx-fpga.h
parentf54128609c4e7792fb52b03c3db0da78627ce607 (diff)
downloadlinux-39008f959f4f3b60eecc5cec0ca077146c1f366b.tar.xz
[ARM] orion5x: TS-78xx support for 'hotplug' of FPGA devices
the FPGA on the TS-7800 provides access to a number of devices and so we have to be careful when reprogramming it. As we are effectively turning a bus off/on we have to inform the kernel that it should stop using anything provided by the FPGA (currently only the RTC however the NAND, LCD, etc is to come) before it's reprogrammed. Once reprogramed, we can tell the kernel to (re)enable things by checking the FPGA ID against a lookup table for what a particular FPGA bitstream can provide. Signed-off-by: Alexander Clouter <alex@digriz.org.uk>
Diffstat (limited to 'arch/arm/mach-orion5x/ts78xx-fpga.h')
-rw-r--r--arch/arm/mach-orion5x/ts78xx-fpga.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/arm/mach-orion5x/ts78xx-fpga.h b/arch/arm/mach-orion5x/ts78xx-fpga.h
new file mode 100644
index 000000000000..0b8e30faff14
--- /dev/null
+++ b/arch/arm/mach-orion5x/ts78xx-fpga.h
@@ -0,0 +1,27 @@
+#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_B = FPGAID(0x00b480, 0x03),
+};
+
+struct fpga_device {
+ unsigned present:1;
+ unsigned init:1;
+};
+
+struct fpga_devices {
+ /* Technologic Systems */
+ struct fpga_device ts_rtc;
+};
+
+struct ts78xx_fpga_data {
+ unsigned int id;
+ int state;
+
+ struct fpga_devices supports;
+};