summaryrefslogtreecommitdiffstats
path: root/include/lh7a404.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lh7a404.h')
-rw-r--r--include/lh7a404.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/include/lh7a404.h b/include/lh7a404.h
new file mode 100644
index 0000000..4098af3
--- /dev/null
+++ b/include/lh7a404.h
@@ -0,0 +1,83 @@
+/*
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * lh7a404 SoC interface
+ */
+
+#ifndef __LH7A404_H__
+#define __LH7A404_H__
+
+#include "lh7a40x.h"
+
+/* Interrupt Controller (userguide 8.2.1) */
+typedef struct {
+ volatile u32 irqstatus;
+ volatile u32 fiqstatus;
+ volatile u32 rawintr;
+ volatile u32 intsel;
+ volatile u32 inten;
+ volatile u32 intenclr;
+ volatile u32 softint;
+ volatile u32 softintclr;
+ volatile u32 protect;
+ volatile u32 unused1;
+ volatile u32 unused2;
+ volatile u32 vectaddr;
+ volatile u32 nvaddr;
+ volatile u32 unused3[32];
+ volatile u32 vad[16];
+ volatile u32 unused4[44];
+ volatile u32 vectcntl[16];
+ volatile u32 unused5[44];
+ volatile u32 itcr;
+ volatile u32 itip1;
+ volatile u32 itip2;
+ volatile u32 itop1;
+ volatile u32 itop2;
+ volatile u32 unused6[333];
+ volatile u32 periphid[4];
+ volatile u32 pcellid[4];
+} /*__attribute__((__packed__))*/ lh7a404_vic_t;
+#define LH7A404_VIC_BASE (0x80008000)
+#define LH7A400_VIC_PTR(x) ((lh7a404_vic_t*)(LH7A400_VIC_BASE + (x*0x2000)))
+
+
+typedef struct {
+ lh7a40x_dmachan_t m2p0_tx;
+ lh7a40x_dmachan_t m2p1_rx;
+ lh7a40x_dmachan_t m2p2_tx;
+ lh7a40x_dmachan_t m2p3_rx;
+ lh7a40x_dmachan_t m2m0;
+ lh7a40x_dmachan_t m2m1;
+ lh7a40x_dmachan_t unused1;
+ lh7a40x_dmachan_t unused2;
+ lh7a40x_dmachan_t m2p5_rx;
+ lh7a40x_dmachan_t m2p4_tx;
+ lh7a40x_dmachan_t m2p7_rx;
+ lh7a40x_dmachan_t m2p6_tx;
+ lh7a40x_dmachan_t m2p9_rx;
+ lh7a40x_dmachan_t m2p8_tx;
+ volatile u32 chanarb;
+ volatile u32 glblint;
+} /*__attribute__((__packed__))*/ lh7a400_dma_t;
+
+
+#endif /* __LH7A404_H__ */