Initial commit
[wrt350n-kernel.git] / include / asm-mips / mach-excite / excite_fpga.h
blob0a1ef69bece76c54c356537506021da904c4611a
1 #ifndef EXCITE_FPGA_H_INCLUDED
2 #define EXCITE_FPGA_H_INCLUDED
5 /**
6 * Address alignment of the individual FPGA bytes.
7 * The address arrangement of the individual bytes of the FPGA is two
8 * byte aligned at the embedded MK2 platform.
9 */
10 #ifdef EXCITE_CCI_FPGA_MK2
11 typedef unsigned char excite_cci_fpga_align_t __attribute__ ((aligned(2)));
12 #else
13 typedef unsigned char excite_cci_fpga_align_t;
14 #endif
17 /**
18 * Size of Dual Ported RAM.
20 #define EXCITE_DPR_SIZE 263
23 /**
24 * Size of Reserved Status Fields in Dual Ported RAM.
26 #define EXCITE_DPR_STATUS_SIZE 7
30 /**
31 * FPGA.
32 * Hardware register layout of the FPGA interface. The FPGA must accessed
33 * byte wise solely.
34 * @see EXCITE_CCI_DPR_MK2
36 typedef struct excite_fpga {
38 /**
39 * Dual Ported RAM.
41 excite_cci_fpga_align_t dpr[EXCITE_DPR_SIZE];
43 /**
44 * Status.
46 excite_cci_fpga_align_t status[EXCITE_DPR_STATUS_SIZE];
48 #ifdef EXCITE_CCI_FPGA_MK2
49 /**
50 * RM9000 Interrupt.
51 * Write access initiates interrupt at the RM9000 (MIPS) processor of the eXcite.
53 excite_cci_fpga_align_t rm9k_int;
54 #else
55 /**
56 * MK2 Interrupt.
57 * Write access initiates interrupt at the ARM processor of the MK2.
59 excite_cci_fpga_align_t mk2_int;
61 excite_cci_fpga_align_t gap[0x1000-0x10f];
63 /**
64 * IRQ Source/Acknowledge.
66 excite_cci_fpga_align_t rm9k_irq_src;
68 /**
69 * IRQ Mask.
70 * Set bits enable the related interrupt.
72 excite_cci_fpga_align_t rm9k_irq_mask;
73 #endif
76 } excite_fpga;
80 #endif /* ndef EXCITE_FPGA_H_INCLUDED */