diff options
Diffstat (limited to 'firmware/kernel.c')
-rw-r--r-- | firmware/kernel.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/firmware/kernel.c b/firmware/kernel.c index 192728bdb2..c5e47a81ff 100644 --- a/firmware/kernel.c +++ b/firmware/kernel.c | |||
@@ -594,23 +594,21 @@ void timer_handler(void) | |||
594 | 594 | ||
595 | current_tick++; | 595 | current_tick++; |
596 | 596 | ||
597 | TIMERR0C = 1; | 597 | TIMER0.clr = 0; |
598 | } | 598 | } |
599 | 599 | ||
600 | void tick_start(unsigned int interval_in_ms) | 600 | void tick_start(unsigned int interval_in_ms) |
601 | { | 601 | { |
602 | TIMERR08 &= ~0x80; | 602 | TIMER0.ctrl &= ~0x80; /* Disable the counter */ |
603 | TIMERR0C = 1; | 603 | TIMER0.ctrl |= 0x40; /* Reload after counting down to zero */ |
604 | TIMERR08 &= ~0x80; | 604 | TIMER0.load = 3000000 * interval_in_ms / 1000; |
605 | TIMERR08 |= 0x40; | 605 | TIMER0.ctrl &= ~0xc; /* No prescaler */ |
606 | TIMERR00 = 3000000 * interval_in_ms / 1000; | 606 | TIMER0.clr = 1; /* Clear the interrupt request */ |
607 | TIMERR08 &= ~0xc; | ||
608 | TIMERR0C = 1; | ||
609 | 607 | ||
610 | irq_set_int_handler(4, timer_handler); | 608 | irq_set_int_handler(IRQ_TIMER0, timer_handler); |
611 | irq_enable_int(4); | 609 | irq_enable_int(IRQ_TIMER0); |
612 | 610 | ||
613 | TIMERR08 |= 0x80; | 611 | TIMER0.ctrl |= 0x80; /* Enable the counter */ |
614 | } | 612 | } |
615 | #elif CONFIG_CPU == S3C2440 | 613 | #elif CONFIG_CPU == S3C2440 |
616 | void tick_start(unsigned int interval_in_ms) | 614 | void tick_start(unsigned int interval_in_ms) |