diff options
Diffstat (limited to 'firmware/kernel.c')
-rw-r--r-- | firmware/kernel.c | 24 |
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 | ||
419 | void 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 | ||
421 | int tick_add_task(void (*f)(void)) | 445 | int tick_add_task(void (*f)(void)) |