summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg White <gwhite@rockbox.org>2007-01-04 11:33:13 +0000
committerGreg White <gwhite@rockbox.org>2007-01-04 11:33:13 +0000
commit0b4f3d9cfa3bc9f86f8e86e196b9f9534515e870 (patch)
treecaead7fdd12fa973dff8b5936d700355d4c16643
parent6c62f2f32a74c60a82024f666594b3bfd3ef8d94 (diff)
downloadrockbox-0b4f3d9cfa3bc9f86f8e86e196b9f9534515e870.zip
rockbox-0b4f3d9cfa3bc9f86f8e86e196b9f9534515e870.tar.gz
rockbox-0b4f3d9cfa3bc9f86f8e86e196b9f9534515e870.tar.bz2
rockbox-0b4f3d9cfa3bc9f86f8e86e196b9f9534515e870.tar.xz
Move system specific reboot
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11903 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/system.c17
-rw-r--r--firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c41
2 files changed, 34 insertions, 24 deletions
diff --git a/firmware/system.c b/firmware/system.c
index 2bbcd06..4ab47fa 100644
--- a/firmware/system.c
+++ b/firmware/system.c
@@ -81,23 +81,6 @@ void cpu_idle_mode(bool on_off)
}
#endif /* HAVE_ADJUSTABLE_CPU_FREQ */
-#if CONFIG_CPU == S3C2440
-
-void system_reboot(void) {
-}
-
-void system_init(void)
-{
- /* Turn off un-needed devices */
-
- /* Turn off all of the UARTS */
- CLKCON &= ~( (1<<10) | (1<<11) |(1<<12) );
-
- /* Turn off AC97 and Camera */
- CLKCON &= ~( (1<<19) | (1<<20) );
-}
-
-#endif
bool detect_flashed_rockbox(void)
{
diff --git a/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c
index d1c736e..b8bcda3 100644
--- a/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c
+++ b/firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c
@@ -5,17 +5,25 @@
#include "lcd.h"
#include <stdio.h>
-const int TIMER4_MASK = 1 << 14;
-
-int system_memory_guard(int newmode)
+const int TIMER4_MASK = (1 << 14);
+const int LCD_MASK = (1 << 16);
+const int DMA0_MASK = (1 << 17);
+const int DMA1_MASK = (1 << 18);
+const int DMA2_MASK = (1 << 19);
+const int DMA3_MASK = (1 << 20);
+
+int system_memory_guard(int newmode)
{
(void)newmode;
return 0;
}
extern void timer4(void);
+extern void dma0(void);
+extern void dma1(void);
+extern void dma3(void);
-void irq(void)
+void irq(void)
{
int intpending = INTPND;
@@ -24,12 +32,31 @@ void irq(void)
/* Timer 4 */
if ((intpending & TIMER4_MASK) != 0)
- {
timer4();
- }
- else
+ else
{
/* unexpected interrupt */
}
}
+void system_reboot(void)
+{
+ WTCON = 0;
+ WTCNT = WTDAT = 1 ;
+ WTCON = 0x21;
+ for(;;)
+ ;
+}
+
+void system_init(void)
+{
+ /* Turn off un-needed devices */
+
+ /* Turn off all of the UARTS */
+ CLKCON &= ~( (1<<10) | (1<<11) |(1<<12) );
+
+ /* Turn off AC97 and Camera */
+ CLKCON &= ~( (1<<19) | (1<<20) );
+}
+
+