summaryrefslogtreecommitdiffstats
path: root/include/asm-arm/arch-vnc/system.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-arm/arch-vnc/system.h')
-rw-r--r--include/asm-arm/arch-vnc/system.h35
1 files changed, 24 insertions, 11 deletions
diff --git a/include/asm-arm/arch-vnc/system.h b/include/asm-arm/arch-vnc/system.h
index a3fed312c..dc21f08d8 100644
--- a/include/asm-arm/arch-vnc/system.h
+++ b/include/asm-arm/arch-vnc/system.h
@@ -1,24 +1,37 @@
/*
- * linux/include/asm-arm/arch-ebsa285/system.h
+ * linux/include/asm-arm/arch-vnc/system.h
*
* Copyright (c) 1996,1997,1998 Russell King.
+ * Copyright (c) 1998 Corel Computer Corp.
*/
#include <asm/hardware.h>
+#include <asm/dec21285.h>
#include <asm/leds.h>
+#include <asm/io.h>
-/* To reboot, we set up the 21285 watchdog and enable it.
- * We then wait for it to timeout.
- */
-extern __inline__ void arch_hard_reset (void)
+extern __inline__ void arch_reset(char mode)
{
cli();
- *CSR_TIMER4_LOAD = 0x8000;
- *CSR_TIMER4_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_AUTORELOAD | TIMER_CNTL_DIV16;
- *CSR_SA110_CNTL |= 1 << 13;
- while(1);
-}
-#define ARCH_IDLE_OK
+ /* open up the SuperIO chip
+ */
+ outb(0x87, 0x370);
+ outb(0x87, 0x370);
+
+ /* aux function group 1 (Logical Device 7)
+ */
+ outb(0x07, 0x370);
+ outb(0x07, 0x371);
+
+ /* set GP16 for WD-TIMER output
+ */
+ outb(0xE6, 0x370);
+ outb(0x00, 0x371);
+
+ /* set a RED LED and toggle WD_TIMER for rebooting...
+ */
+ outb(0xC4, 0x338);
+}
#define arch_start_idle() leds_event(led_idle_start)
#define arch_end_idle() leds_event(led_idle_end)