summaryrefslogtreecommitdiff
path: root/firmware/target/arm/gigabeat
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/gigabeat')
-rw-r--r--firmware/target/arm/gigabeat/meg-fx/system-meg-fx.c41
1 files changed, 34 insertions, 7 deletions
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 d1c736e91f..b8bcda3c95 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 @@
5#include "lcd.h" 5#include "lcd.h"
6#include <stdio.h> 6#include <stdio.h>
7 7
8const int TIMER4_MASK = 1 << 14; 8const int TIMER4_MASK = (1 << 14);
9 9const int LCD_MASK = (1 << 16);
10int system_memory_guard(int newmode) 10const int DMA0_MASK = (1 << 17);
11const int DMA1_MASK = (1 << 18);
12const int DMA2_MASK = (1 << 19);
13const int DMA3_MASK = (1 << 20);
14
15int system_memory_guard(int newmode)
11{ 16{
12 (void)newmode; 17 (void)newmode;
13 return 0; 18 return 0;
14} 19}
15 20
16extern void timer4(void); 21extern void timer4(void);
22extern void dma0(void);
23extern void dma1(void);
24extern void dma3(void);
17 25
18void irq(void) 26void irq(void)
19{ 27{
20 int intpending = INTPND; 28 int intpending = INTPND;
21 29
@@ -24,12 +32,31 @@ void irq(void)
24 32
25 /* Timer 4 */ 33 /* Timer 4 */
26 if ((intpending & TIMER4_MASK) != 0) 34 if ((intpending & TIMER4_MASK) != 0)
27 {
28 timer4(); 35 timer4();
29 } 36 else
30 else
31 { 37 {
32 /* unexpected interrupt */ 38 /* unexpected interrupt */
33 } 39 }
34} 40}
35 41
42void system_reboot(void)
43{
44 WTCON = 0;
45 WTCNT = WTDAT = 1 ;
46 WTCON = 0x21;
47 for(;;)
48 ;
49}
50
51void system_init(void)
52{
53 /* Turn off un-needed devices */
54
55 /* Turn off all of the UARTS */
56 CLKCON &= ~( (1<<10) | (1<<11) |(1<<12) );
57
58 /* Turn off AC97 and Camera */
59 CLKCON &= ~( (1<<19) | (1<<20) );
60}
61
62