summaryrefslogtreecommitdiff
path: root/cpu/nios2/interrupts.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@pollux.denx.de>2006-06-10 01:36:27 +0200
committerWolfgang Denk <wd@pollux.denx.de>2006-06-10 01:36:27 +0200
commit9d4d3e3833ca7f4dada190ddcb3fea1da9bb9b5b (patch)
tree2e48d77afa769a4515101e4ce4ef2c6ba48cbeff /cpu/nios2/interrupts.c
parent5d7022b0418b3aab977ac51dbfd179c296ae442e (diff)
parent9cc833783206efd25b4655aa451ce81e5cc28fc2 (diff)
downloadu-boot-imx-9d4d3e3833ca7f4dada190ddcb3fea1da9bb9b5b.zip
u-boot-imx-9d4d3e3833ca7f4dada190ddcb3fea1da9bb9b5b.tar.gz
u-boot-imx-9d4d3e3833ca7f4dada190ddcb3fea1da9bb9b5b.tar.bz2
Merge with http://www.psyent.com/git/uboot (NIOS2 - Scott McNutt)
Diffstat (limited to 'cpu/nios2/interrupts.c')
-rw-r--r--cpu/nios2/interrupts.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/cpu/nios2/interrupts.c b/cpu/nios2/interrupts.c
index 4a6da58..4685161 100644
--- a/cpu/nios2/interrupts.c
+++ b/cpu/nios2/interrupts.c
@@ -27,6 +27,7 @@
#include <nios2.h>
#include <nios2-io.h>
+#include <asm/io.h>
#include <asm/ptrace.h>
#include <common.h>
#include <command.h>
@@ -79,7 +80,7 @@ void tmr_isr (void *arg)
/* Interrupt is cleared by writing anything to the
* status register.
*/
- tmr->status = 0;
+ writel (&tmr->status, 0);
timestamp += CFG_NIOS_TMRMS;
#ifdef CONFIG_STATUS_LED
status_led_tick(timestamp);
@@ -88,16 +89,17 @@ void tmr_isr (void *arg)
static void tmr_init (void)
{
- nios_timer_t *tmr =(nios_timer_t *)CACHE_BYPASS(CFG_NIOS_TMRBASE);
+ nios_timer_t *tmr =(nios_timer_t *)CFG_NIOS_TMRBASE;
+
+ writel (&tmr->status, 0);
+ writel (&tmr->control, 0);
+ writel (&tmr->control, NIOS_TIMER_STOP);
- tmr->control &= ~(NIOS_TIMER_START | NIOS_TIMER_ITO);
- tmr->control |= NIOS_TIMER_STOP;
#if defined(CFG_NIOS_TMRCNT)
- tmr->periodl = CFG_NIOS_TMRCNT & 0xffff;
- tmr->periodh = (CFG_NIOS_TMRCNT >> 16) & 0xffff;
+ writel (&tmr->periodl, CFG_NIOS_TMRCNT & 0xffff);
+ writel (&tmr->periodh, (CFG_NIOS_TMRCNT >> 16) & 0xffff);
#endif
- tmr->control |= ( NIOS_TIMER_ITO |
- NIOS_TIMER_CONT |
+ writel (&tmr->control, NIOS_TIMER_ITO | NIOS_TIMER_CONT |
NIOS_TIMER_START );
irq_install_handler (CFG_NIOS_TMRIRQ, tmr_isr, (void *)tmr);
}