diff options
| author | Michal Simek <monstr@monstr.eu> | 2010-04-16 11:37:41 +0200 | 
|---|---|---|
| committer | Michal Simek <monstr@monstr.eu> | 2010-04-16 12:15:31 +0200 | 
| commit | 5bbcb6cf22b1121d8c3e56b0e1fb84366e903ac7 (patch) | |
| tree | b8c12a6559a58957d2f6bfd792690bad5b3ee5fa | |
| parent | cc53690e05f47b4c25e0a528de50e024fc0164ad (diff) | |
| download | olio-uboot-2014.01-5bbcb6cf22b1121d8c3e56b0e1fb84366e903ac7.tar.xz olio-uboot-2014.01-5bbcb6cf22b1121d8c3e56b0e1fb84366e903ac7.zip | |
microblaze: Move timer initialization to board.c
I would like to handle case where system doesn't contain
intc that's why I need timer initialization out of intc code.
Signed-off-by: Michal Simek <monstr@monstr.eu>
| -rw-r--r-- | arch/microblaze/cpu/interrupts.c | 6 | ||||
| -rw-r--r-- | arch/microblaze/cpu/timer.c | 3 | ||||
| -rw-r--r-- | arch/microblaze/lib/board.c | 7 | 
3 files changed, 9 insertions, 7 deletions
| diff --git a/arch/microblaze/cpu/interrupts.c b/arch/microblaze/cpu/interrupts.c index a6021c99c..b8db68afd 100644 --- a/arch/microblaze/cpu/interrupts.c +++ b/arch/microblaze/cpu/interrupts.c @@ -46,9 +46,6 @@ int disable_interrupts (void)  }  #ifdef CONFIG_SYS_INTC_0 -#ifdef CONFIG_SYS_TIMER_0 -extern void timer_init (void); -#endif  #ifdef CONFIG_SYS_FSL_2  extern void fsl_init2 (void);  #endif @@ -142,9 +139,6 @@ int interrupts_init (void)  	}  	/* initialize intc controller */  	intc_init (); -#ifdef CONFIG_SYS_TIMER_0 -	timer_init (); -#endif  #ifdef CONFIG_SYS_FSL_2  	fsl_init2 ();  #endif diff --git a/arch/microblaze/cpu/timer.c b/arch/microblaze/cpu/timer.c index a91eabc64..4936c628a 100644 --- a/arch/microblaze/cpu/timer.c +++ b/arch/microblaze/cpu/timer.c @@ -60,7 +60,7 @@ void timer_isr (void *arg)  	tmr->control = tmr->control | TIMER_INTERRUPT;  } -void timer_init (void) +int timer_init (void)  {  	tmr->loadreg = CONFIG_SYS_TIMER_0_PRELOAD;  	tmr->control = TIMER_INTERRUPT | TIMER_RESET; @@ -68,6 +68,7 @@ void timer_init (void)  	    TIMER_ENABLE | TIMER_ENABLE_INTR | TIMER_RELOAD | TIMER_DOWN_COUNT;  	reset_timer ();  	install_interrupt_handler (CONFIG_SYS_TIMER_0_IRQ, timer_isr, (void *)tmr); +	return 0;  }  #endif  #endif diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c index d4baea930..7dfa71c0f 100644 --- a/arch/microblaze/lib/board.c +++ b/arch/microblaze/lib/board.c @@ -44,6 +44,10 @@ extern int interrupts_init (void);  #if defined(CONFIG_CMD_NET)  extern int eth_init (bd_t * bis);  #endif +#ifdef CONFIG_SYS_TIMER_0 +extern int timer_init (void); +#endif +  /*   * All attempts to come up with a "common" initialization sequence @@ -68,6 +72,9 @@ init_fnc_t *init_sequence[] = {  #ifdef CONFIG_SYS_INTC_0  	interrupts_init,  #endif +#ifdef CONFIG_SYS_TIMER_0 +	timer_init, +#endif  	NULL,  }; |