summaryrefslogtreecommitdiff
path: root/firmware/target
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 /firmware/target
parent6c62f2f32a74c60a82024f666594b3bfd3ef8d94 (diff)
downloadrockbox-0b4f3d9cfa3bc9f86f8e86e196b9f9534515e870.tar.gz
rockbox-0b4f3d9cfa3bc9f86f8e86e196b9f9534515e870.zip
Move system specific reboot
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11903 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target')
-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