summaryrefslogtreecommitdiff
path: root/firmware/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/kernel.c')
-rw-r--r--firmware/kernel.c20
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
600void tick_start(unsigned int interval_in_ms) 600void 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
616void tick_start(unsigned int interval_in_ms) 614void tick_start(unsigned int interval_in_ms)