diff options
| author | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-09-30 23:49:17 +0200 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-09-30 23:49:17 +0200 | 
| commit | 1c27059a2f7158a9c9a8778535b030935d75179d (patch) | |
| tree | bf577d5c9f0da21c5d57feed1091214e54c39dec /arch/m68k/cpu/mcf52x2/interrupts.c | |
| parent | 8f0732ac3dc3bdbbcada313dc4b4b38d5d2c376a (diff) | |
| parent | 4668a086bb0a769b741e3a4ffab85f1c41c7cdb8 (diff) | |
| download | olio-uboot-2014.01-1c27059a2f7158a9c9a8778535b030935d75179d.tar.xz olio-uboot-2014.01-1c27059a2f7158a9c9a8778535b030935d75179d.zip  | |
Merge remote-tracking branch 'u-boot/master'
Diffstat (limited to 'arch/m68k/cpu/mcf52x2/interrupts.c')
| -rw-r--r-- | arch/m68k/cpu/mcf52x2/interrupts.c | 40 | 
1 files changed, 21 insertions, 19 deletions
diff --git a/arch/m68k/cpu/mcf52x2/interrupts.c b/arch/m68k/cpu/mcf52x2/interrupts.c index dff8c6aa8..915eb7023 100644 --- a/arch/m68k/cpu/mcf52x2/interrupts.c +++ b/arch/m68k/cpu/mcf52x2/interrupts.c @@ -2,7 +2,7 @@   * (C) Copyright 2000-2004   * Wolfgang Denk, DENX Software Engineering, wd@denx.de.   * - * Copyright (C) 2004-2007 Freescale Semiconductor, Inc. + * Copyright (C) 2004-2007, 2012 Freescale Semiconductor, Inc.   * TsiChung Liew (Tsi-Chung.Liew@freescale.com)   *   * See file CREDITS for list of people who contributed to this @@ -28,20 +28,22 @@  #include <watchdog.h>  #include <asm/processor.h>  #include <asm/immap.h> +#include <asm/io.h>  #ifdef	CONFIG_M5272  int interrupt_init(void)  { -	volatile intctrl_t *intp = (intctrl_t *) (MMAP_INTC); +	intctrl_t *intp = (intctrl_t *) (MMAP_INTC);  	/* disable all external interrupts */ -	intp->int_icr1 = 0x88888888; -	intp->int_icr2 = 0x88888888; -	intp->int_icr3 = 0x88888888; -	intp->int_icr4 = 0x88888888; -	intp->int_pitr = 0x00000000; +	out_be32(&intp->int_icr1, 0x88888888); +	out_be32(&intp->int_icr2, 0x88888888); +	out_be32(&intp->int_icr3, 0x88888888); +	out_be32(&intp->int_icr4, 0x88888888); +	out_be32(&intp->int_pitr, 0x00000000); +  	/* initialize vector register */ -	intp->int_pivr = 0x40; +	out_8(&intp->int_pivr, 0x40);  	enable_interrupts(); @@ -51,10 +53,10 @@ int interrupt_init(void)  #if defined(CONFIG_MCFTMR)  void dtimer_intr_setup(void)  { -	volatile intctrl_t *intp = (intctrl_t *) (CONFIG_SYS_INTR_BASE); +	intctrl_t *intp = (intctrl_t *) (CONFIG_SYS_INTR_BASE); -	intp->int_icr1 &= ~INT_ICR1_TMR3MASK; -	intp->int_icr1 |= CONFIG_SYS_TMRINTR_PRI; +	clrbits_be32(&intp->int_icr1, INT_ICR1_TMR3MASK); +	setbits_be32(&intp->int_icr1, CONFIG_SYS_TMRINTR_PRI);  }  #endif				/* CONFIG_MCFTMR */  #endif				/* CONFIG_M5272 */ @@ -63,14 +65,14 @@ void dtimer_intr_setup(void)      defined(CONFIG_M5271) || defined(CONFIG_M5275)  int interrupt_init(void)  { -	volatile int0_t *intp = (int0_t *) (CONFIG_SYS_INTR_BASE); +	int0_t *intp = (int0_t *) (CONFIG_SYS_INTR_BASE);  	/* Make sure all interrupts are disabled */  #if defined(CONFIG_M5208) -	intp->imrl0 = 0xFFFFFFFF; -	intp->imrh0 = 0xFFFFFFFF; +	out_be32(&intp->imrl0, 0xffffffff); +	out_be32(&intp->imrh0, 0xffffffff);  #else -	intp->imrl0 |= 0x1; +	setbits_be32(&intp->imrl0, 0x1);  #endif  	enable_interrupts(); @@ -80,11 +82,11 @@ int interrupt_init(void)  #if defined(CONFIG_MCFTMR)  void dtimer_intr_setup(void)  { -	volatile int0_t *intp = (int0_t *) (CONFIG_SYS_INTR_BASE); +	int0_t *intp = (int0_t *) (CONFIG_SYS_INTR_BASE); -	intp->icr0[CONFIG_SYS_TMRINTR_NO] = CONFIG_SYS_TMRINTR_PRI; -	intp->imrl0 &= 0xFFFFFFFE; -	intp->imrl0 &= ~CONFIG_SYS_TMRINTR_MASK; +	out_8(&intp->icr0[CONFIG_SYS_TMRINTR_NO], CONFIG_SYS_TMRINTR_PRI); +	clrbits_be32(&intp->imrl0, 0x00000001); +	clrbits_be32(&intp->imrl0, CONFIG_SYS_TMRINTR_MASK);  }  #endif				/* CONFIG_MCFTMR */  #endif				/* CONFIG_M5282 | CONFIG_M5271 | CONFIG_M5275 */  |