diff options
author | Wolfgang Denk <wd@pollux.denx.de> | 2006-06-10 01:36:27 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@pollux.denx.de> | 2006-06-10 01:36:27 +0200 |
commit | 9d4d3e3833ca7f4dada190ddcb3fea1da9bb9b5b (patch) | |
tree | 2e48d77afa769a4515101e4ce4ef2c6ba48cbeff /cpu/nios2/interrupts.c | |
parent | 5d7022b0418b3aab977ac51dbfd179c296ae442e (diff) | |
parent | 9cc833783206efd25b4655aa451ce81e5cc28fc2 (diff) | |
download | u-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.c | 18 |
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); } |