|
@@ -182,3 +182,157 @@
|
|
|
|
|
|
/*
|
|
|
* System Controller
|
|
|
+ *
|
|
|
+ */
|
|
|
+#define INTEGRATOR_SC_ID_OFFSET 0x00
|
|
|
+#define INTEGRATOR_SC_OSC_OFFSET 0x04
|
|
|
+#define INTEGRATOR_SC_CTRLS_OFFSET 0x08
|
|
|
+#define INTEGRATOR_SC_CTRLC_OFFSET 0x0C
|
|
|
+#define INTEGRATOR_SC_DEC_OFFSET 0x10
|
|
|
+#define INTEGRATOR_SC_ARB_OFFSET 0x14
|
|
|
+#define INTEGRATOR_SC_LOCK_OFFSET 0x1C
|
|
|
+
|
|
|
+#define INTEGRATOR_SC_BASE 0x11000000
|
|
|
+#define INTEGRATOR_SC_ID (INTEGRATOR_SC_BASE + INTEGRATOR_SC_ID_OFFSET)
|
|
|
+#define INTEGRATOR_SC_OSC (INTEGRATOR_SC_BASE + INTEGRATOR_SC_OSC_OFFSET)
|
|
|
+#define INTEGRATOR_SC_CTRLS (INTEGRATOR_SC_BASE + INTEGRATOR_SC_CTRLS_OFFSET)
|
|
|
+#define INTEGRATOR_SC_CTRLC (INTEGRATOR_SC_BASE + INTEGRATOR_SC_CTRLC_OFFSET)
|
|
|
+#define INTEGRATOR_SC_DEC (INTEGRATOR_SC_BASE + INTEGRATOR_SC_DEC_OFFSET)
|
|
|
+#define INTEGRATOR_SC_ARB (INTEGRATOR_SC_BASE + INTEGRATOR_SC_ARB_OFFSET)
|
|
|
+#define INTEGRATOR_SC_PCIENABLE (INTEGRATOR_SC_BASE + INTEGRATOR_SC_PCIENABLE_OFFSET)
|
|
|
+#define INTEGRATOR_SC_LOCK (INTEGRATOR_SC_BASE + INTEGRATOR_SC_LOCK_OFFSET)
|
|
|
+
|
|
|
+#define INTEGRATOR_SC_OSC_SYS_10MHz 0x20
|
|
|
+#define INTEGRATOR_SC_OSC_SYS_15MHz 0x34
|
|
|
+#define INTEGRATOR_SC_OSC_SYS_20MHz 0x48
|
|
|
+#define INTEGRATOR_SC_OSC_SYS_25MHz 0x5C
|
|
|
+#define INTEGRATOR_SC_OSC_SYS_33MHz 0x7C
|
|
|
+#define INTEGRATOR_SC_OSC_SYS_MASK 0xFF
|
|
|
+
|
|
|
+#define INTEGRATOR_SC_OSC_PCI_25MHz 0x100
|
|
|
+#define INTEGRATOR_SC_OSC_PCI_33MHz 0x0
|
|
|
+#define INTEGRATOR_SC_OSC_PCI_MASK 0x100
|
|
|
+
|
|
|
+#define INTEGRATOR_SC_CTRL_SOFTRST (1 << 0)
|
|
|
+#define INTEGRATOR_SC_CTRL_nFLVPPEN (1 << 1)
|
|
|
+#define INTEGRATOR_SC_CTRL_nFLWP (1 << 2)
|
|
|
+#define INTEGRATOR_SC_CTRL_URTS0 (1 << 4)
|
|
|
+#define INTEGRATOR_SC_CTRL_UDTR0 (1 << 5)
|
|
|
+#define INTEGRATOR_SC_CTRL_URTS1 (1 << 6)
|
|
|
+#define INTEGRATOR_SC_CTRL_UDTR1 (1 << 7)
|
|
|
+
|
|
|
+/*
|
|
|
+ * External Bus Interface
|
|
|
+ *
|
|
|
+ */
|
|
|
+#define INTEGRATOR_EBI_BASE 0x12000000
|
|
|
+
|
|
|
+#define INTEGRATOR_EBI_CSR0_OFFSET 0x00
|
|
|
+#define INTEGRATOR_EBI_CSR1_OFFSET 0x04
|
|
|
+#define INTEGRATOR_EBI_CSR2_OFFSET 0x08
|
|
|
+#define INTEGRATOR_EBI_CSR3_OFFSET 0x0C
|
|
|
+#define INTEGRATOR_EBI_LOCK_OFFSET 0x20
|
|
|
+
|
|
|
+#define INTEGRATOR_EBI_CSR0 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR0_OFFSET)
|
|
|
+#define INTEGRATOR_EBI_CSR1 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR1_OFFSET)
|
|
|
+#define INTEGRATOR_EBI_CSR2 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR2_OFFSET)
|
|
|
+#define INTEGRATOR_EBI_CSR3 (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_CSR3_OFFSET)
|
|
|
+#define INTEGRATOR_EBI_LOCK (INTEGRATOR_EBI_BASE + INTEGRATOR_EBI_LOCK_OFFSET)
|
|
|
+
|
|
|
+#define INTEGRATOR_EBI_8_BIT 0x00
|
|
|
+#define INTEGRATOR_EBI_16_BIT 0x01
|
|
|
+#define INTEGRATOR_EBI_32_BIT 0x02
|
|
|
+#define INTEGRATOR_EBI_WRITE_ENABLE 0x04
|
|
|
+#define INTEGRATOR_EBI_SYNC 0x08
|
|
|
+#define INTEGRATOR_EBI_WS_2 0x00
|
|
|
+#define INTEGRATOR_EBI_WS_3 0x10
|
|
|
+#define INTEGRATOR_EBI_WS_4 0x20
|
|
|
+#define INTEGRATOR_EBI_WS_5 0x30
|
|
|
+#define INTEGRATOR_EBI_WS_6 0x40
|
|
|
+#define INTEGRATOR_EBI_WS_7 0x50
|
|
|
+#define INTEGRATOR_EBI_WS_8 0x60
|
|
|
+#define INTEGRATOR_EBI_WS_9 0x70
|
|
|
+#define INTEGRATOR_EBI_WS_10 0x80
|
|
|
+#define INTEGRATOR_EBI_WS_11 0x90
|
|
|
+#define INTEGRATOR_EBI_WS_12 0xA0
|
|
|
+#define INTEGRATOR_EBI_WS_13 0xB0
|
|
|
+#define INTEGRATOR_EBI_WS_14 0xC0
|
|
|
+#define INTEGRATOR_EBI_WS_15 0xD0
|
|
|
+#define INTEGRATOR_EBI_WS_16 0xE0
|
|
|
+#define INTEGRATOR_EBI_WS_17 0xF0
|
|
|
+
|
|
|
+
|
|
|
+#define INTEGRATOR_CT_BASE 0x13000000 /* Counter/Timers */
|
|
|
+#define INTEGRATOR_IC_BASE 0x14000000 /* Interrupt Controller */
|
|
|
+#define INTEGRATOR_RTC_BASE 0x15000000 /* Real Time Clock */
|
|
|
+#define INTEGRATOR_UART0_BASE 0x16000000 /* UART 0 */
|
|
|
+#define INTEGRATOR_UART1_BASE 0x17000000 /* UART 1 */
|
|
|
+#define INTEGRATOR_KBD_BASE 0x18000000 /* Keyboard */
|
|
|
+#define INTEGRATOR_MOUSE_BASE 0x19000000 /* Mouse */
|
|
|
+
|
|
|
+/*
|
|
|
+ * LED's & Switches
|
|
|
+ *
|
|
|
+ */
|
|
|
+#define INTEGRATOR_DBG_ALPHA_OFFSET 0x00
|
|
|
+#define INTEGRATOR_DBG_LEDS_OFFSET 0x04
|
|
|
+#define INTEGRATOR_DBG_SWITCH_OFFSET 0x08
|
|
|
+
|
|
|
+#define INTEGRATOR_DBG_BASE 0x1A000000
|
|
|
+#define INTEGRATOR_DBG_ALPHA (INTEGRATOR_DBG_BASE + INTEGRATOR_DBG_ALPHA_OFFSET)
|
|
|
+#define INTEGRATOR_DBG_LEDS (INTEGRATOR_DBG_BASE + INTEGRATOR_DBG_LEDS_OFFSET)
|
|
|
+#define INTEGRATOR_DBG_SWITCH (INTEGRATOR_DBG_BASE + INTEGRATOR_DBG_SWITCH_OFFSET)
|
|
|
+
|
|
|
+#define INTEGRATOR_AP_GPIO_BASE 0x1B000000 /* GPIO */
|
|
|
+
|
|
|
+#define INTEGRATOR_CP_MMC_BASE 0x1C000000 /* MMC */
|
|
|
+#define INTEGRATOR_CP_AACI_BASE 0x1D000000 /* AACI */
|
|
|
+#define INTEGRATOR_CP_ETH_BASE 0xC8000000 /* Ethernet */
|
|
|
+#define INTEGRATOR_CP_GPIO_BASE 0xC9000000 /* GPIO */
|
|
|
+#define INTEGRATOR_CP_SIC_BASE 0xCA000000 /* SIC */
|
|
|
+#define INTEGRATOR_CP_CTL_BASE 0xCB000000 /* CP system control */
|
|
|
+
|
|
|
+/* ------------------------------------------------------------------------
|
|
|
+ * KMI keyboard/mouse definitions
|
|
|
+ * ------------------------------------------------------------------------
|
|
|
+ */
|
|
|
+/* PS2 Keyboard interface */
|
|
|
+#define KMI0_BASE INTEGRATOR_KBD_BASE
|
|
|
+
|
|
|
+/* PS2 Mouse interface */
|
|
|
+#define KMI1_BASE INTEGRATOR_MOUSE_BASE
|
|
|
+
|
|
|
+/* KMI definitions are now in include/asm-arm/hardware/amba_kmi.h -- rmk */
|
|
|
+
|
|
|
+/* ------------------------------------------------------------------------
|
|
|
+ * Where in the memory map does PCI live?
|
|
|
+ * ------------------------------------------------------------------------
|
|
|
+ * This represents a fairly liberal usage of address space. Even though
|
|
|
+ * the V3 only has two windows (therefore we need to map stuff on the fly),
|
|
|
+ * we maintain the same addresses, even if they're not mapped.
|
|
|
+ *
|
|
|
+ */
|
|
|
+#define PHYS_PCI_MEM_BASE 0x40000000 /* 512M to xxx */
|
|
|
+/* unused 256M from A0000000-AFFFFFFF might be used for I2O ???
|
|
|
+ */
|
|
|
+#define PHYS_PCI_IO_BASE 0x60000000 /* 16M to xxx */
|
|
|
+/* unused (128-16)M from B1000000-B7FFFFFF
|
|
|
+ */
|
|
|
+#define PHYS_PCI_CONFIG_BASE 0x61000000 /* 16M to xxx */
|
|
|
+/* unused ((128-16)M - 64K) from XXX
|
|
|
+ */
|
|
|
+#define PHYS_PCI_V3_BASE 0x62000000
|
|
|
+
|
|
|
+#define PCI_MEMORY_VADDR IOMEM(0xe8000000)
|
|
|
+#define PCI_CONFIG_VADDR IOMEM(0xec000000)
|
|
|
+#define PCI_V3_VADDR IOMEM(0xed000000)
|
|
|
+
|
|
|
+/* ------------------------------------------------------------------------
|
|
|
+ * Integrator Interrupt Controllers
|
|
|
+ * ------------------------------------------------------------------------
|
|
|
+ *
|
|
|
+ * Offsets from interrupt controller base
|
|
|
+ *
|
|
|
+ * System Controller interrupt controller base is
|
|
|
+ *
|
|
|
+ * INTEGRATOR_IC_BASE + (header_number << 6)
|