summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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) );
+}
+
+