summaryrefslogtreecommitdiff
path: root/firmware/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/kernel.c')
-rw-r--r--firmware/kernel.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/firmware/kernel.c b/firmware/kernel.c
index 979dbb4759..7c5c74c662 100644
--- a/firmware/kernel.c
+++ b/firmware/kernel.c
@@ -415,7 +415,31 @@ void tick_start(unsigned int interval_in_ms)
415 415
416 TIMERR08 |= 0x80; 416 TIMERR08 |= 0x80;
417} 417}
418#elif CONFIG_CPU == S3C2440
419void tick_start(unsigned int interval_in_ms)
420{
421 unsigned long count;
422
423 /* period = (n + 1) / 128 , n = tick time count (1~127)*/
424 count = interval_in_ms / 1000 * 128 - 1;
418 425
426 if(count > 127)
427 {
428 panicf("Error! The tick interval is too long (%d ms)\n",
429 interval_in_ms);
430 return;
431 }
432
433 /* Disable the tick */
434 TICNT &= ~(1<<7);
435 /* Set the count value */
436 TICNT |= count;
437 /* Start up the ticker */
438 TICNT |= (1<<7);
439
440 /* need interrupt handler ??? */
441
442}
419#endif 443#endif
420 444
421int tick_add_task(void (*f)(void)) 445int tick_add_task(void (*f)(void))