summaryrefslogtreecommitdiff
path: root/firmware/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/kernel.c')
-rw-r--r--firmware/kernel.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/firmware/kernel.c b/firmware/kernel.c
index dc960b6e51..730484ed51 100644
--- a/firmware/kernel.c
+++ b/firmware/kernel.c
@@ -245,19 +245,8 @@ void timeout_register(struct timeout *tmo, timeout_cb_type callback,
245void sleep(int ticks) 245void sleep(int ticks)
246{ 246{
247#if CONFIG_CPU == S3C2440 && defined(BOOTLOADER) 247#if CONFIG_CPU == S3C2440 && defined(BOOTLOADER)
248 volatile int counter; 248 extern void delay(int ticks);
249 TCON &= ~(1 << 20); // stop timer 4 249 delay(ticks);
250 // TODO: this constant depends on dividers settings inherited from
251 // firmware. Set them explicitly somwhere.
252 TCNTB4 = 12193 * ticks / HZ;
253 TCON |= 1 << 21; // set manual bit
254 TCON &= ~(1 << 21); // reset manual bit
255 TCON &= ~(1 << 22); //autoreload Off
256 TCON |= (1 << 20); // start timer 4
257 do {
258 counter = TCNTO4;
259 } while(counter > 0);
260
261#elif defined(CPU_PP) && defined(BOOTLOADER) 250#elif defined(CPU_PP) && defined(BOOTLOADER)
262 unsigned stop = USEC_TIMER + ticks * (1000000/HZ); 251 unsigned stop = USEC_TIMER + ticks * (1000000/HZ);
263 while (TIME_BEFORE(USEC_TIMER, stop)) 252 while (TIME_BEFORE(USEC_TIMER, stop))