aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/asm-sh/overdrive/overdrive.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-sh/overdrive/overdrive.h')
-rw-r--r--include/asm-sh/overdrive/overdrive.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/include/asm-sh/overdrive/overdrive.h b/include/asm-sh/overdrive/overdrive.h
new file mode 100644
index 000000000000..aa62ae68c55c
--- /dev/null
+++ b/include/asm-sh/overdrive/overdrive.h
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2000 David J. Mckay (david.mckay@st.com)
+ *
+ * May be copied or modified under the terms of the GNU General Public
+ * License. See linux/COPYING for more information.
+ *
+ */
+
+#include <linux/config.h>
+
+#ifndef __OVERDRIVE_H__
+#define __OVERDRIVE_H__
+
+#define OVERDRIVE_INT_CT 0xa3a00000
+#define OVERDRIVE_INT_DT 0xa3b00000
+
+#define OVERDRIVE_CTRL 0xa3000000
+
+/* Shoving all these bits into the same register is not a good idea.
+ * As soon as I get a spare moment, I'll change the FPGA and put each
+ * bit in a separate register
+ */
+
+#define VALID_CTRL_BITS 0x1f
+
+#define ENABLE_RS232_MASK 0x1e
+#define DISABLE_RS232_BIT 0x01
+
+#define ENABLE_NMI_MASK 0x1d
+#define DISABLE_NMI_BIT 0x02
+
+#define RESET_PCI_MASK 0x1b
+#define ENABLE_PCI_BIT 0x04
+
+#define ENABLE_LED_MASK 0x17
+#define DISABLE_LED_BIT 0x08
+
+#define RESET_FPGA_MASK 0x0f
+#define ENABLE_FPGA_BIT 0x10
+
+
+#define FPGA_DCLK_ADDRESS 0xA3C00000
+
+#define FPGA_DATA 0x01 /* W */
+#define FPGA_CONFDONE 0x02 /* R */
+#define FPGA_NOT_STATUS 0x04 /* R */
+#define FPGA_INITDONE 0x08 /* R */
+
+#define FPGA_TIMEOUT 100000
+
+
+/* Interrupts for the overdrive. Note that these numbers have
+ * nothing to do with the actual IRQ numbers they appear on,
+ * this is all programmable. This is simply the position in the
+ * INT_CT register.
+ */
+
+#define OVERDRIVE_PCI_INTA 0
+#define OVERDRIVE_PCI_INTB 1
+#define OVERDRIVE_PCI_INTC 2
+#define OVERDRIVE_PCI_INTD 3
+#define OVERDRIVE_GALILEO_INT 4
+#define OVERDRIVE_GALILEO_LOCAL_INT 5
+#define OVERDRIVE_AUDIO_INT 6
+#define OVERDRIVE_KEYBOARD_INT 7
+
+/* Which Linux IRQ should we assign to each interrupt source? */
+#define OVERDRIVE_PCI_IRQ1 2
+#ifdef CONFIG_HACKED_NE2K
+#define OVERDRIVE_PCI_IRQ2 7
+#else
+#define OVERDRIVE_PCI_IRQ2 2
+#undef OVERDRIVE_PCI_INTB
+#define OVERDRIVE_PCI_INTB OVERDRIVE_PCI_INTA
+
+#endif
+
+/* Put the ESS solo audio chip on IRQ 4 */
+#define OVERDRIVE_ESS_IRQ 4
+
+/* Where the memory behind the PCI bus appears */
+#define PCI_DRAM_BASE 0xb7000000
+#define PCI_DRAM_SIZE (16*1024*1024)
+#define PCI_DRAM_FINISH (PCI_DRAM_BASE+PCI_DRAM_SIZE-1)
+
+/* Where the IO region appears in the memory */
+#define PCI_GTIO_BASE 0xb8000000
+
+#endif