summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s3c2440/gigabeat-fx/kernel-meg-fx.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s3c2440/gigabeat-fx/kernel-meg-fx.c')
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/kernel-meg-fx.c29
1 files changed, 7 insertions, 22 deletions
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/kernel-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/kernel-meg-fx.c
index 6a750c32e2..6cabc8dc81 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/kernel-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/kernel-meg-fx.c
@@ -24,7 +24,7 @@
24#include "timer.h" 24#include "timer.h"
25#include "thread.h" 25#include "thread.h"
26 26
27static inline void tick_set(unsigned int interval_in_ms) 27void tick_start(unsigned int interval_in_ms)
28{ 28{
29 /* 29 /*
30 * Based on default PCLK of 49.1568MHz - scaling chosen to give 30 * Based on default PCLK of 49.1568MHz - scaling chosen to give
@@ -49,11 +49,6 @@ static inline void tick_set(unsigned int interval_in_ms)
49 TCON |= 1 << 21; 49 TCON |= 1 << 21;
50 /* reset manual bit */ 50 /* reset manual bit */
51 TCON &= ~(1 << 21); 51 TCON &= ~(1 << 21);
52}
53
54void tick_start(unsigned int interval_in_ms)
55{
56 tick_set(interval_in_ms);
57 52
58 /* interval mode */ 53 /* interval mode */
59 TCON |= 1 << 22; 54 TCON |= 1 << 22;
@@ -65,24 +60,14 @@ void tick_start(unsigned int interval_in_ms)
65} 60}
66 61
67#ifdef BOOTLOADER 62#ifdef BOOTLOADER
68void delay(int ticks) 63void tick_stop(void)
69{ 64{
70 volatile unsigned long counter; 65 s3c_regset32(&INTMSK, TIMER4_MASK);
71 66 TCON &= ~(1 << 20);
72 INTMSK |= TIMER4_MASK; 67 SRCPND = TIMER4_MASK;
73 68 INTPND = TIMER4_MASK;
74 tick_set(1000 * ticks / HZ);
75
76 /* autoreload Off */
77 TCON &= ~(1 << 22);
78 /* start timer 4 */
79 TCON |= (1 << 20);
80
81 do {
82 counter = TCNTO4;
83 } while(counter > 0);
84} 69}
85#endif /* BOOTLOADER */ 70#endif
86 71
87void TIMER4(void) 72void TIMER4(void)
88{ 73{