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>
This commit is contained in:
@@ -46,9 +46,6 @@ int disable_interrupts (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_SYS_INTC_0
|
#ifdef CONFIG_SYS_INTC_0
|
||||||
#ifdef CONFIG_SYS_TIMER_0
|
|
||||||
extern void timer_init (void);
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_SYS_FSL_2
|
#ifdef CONFIG_SYS_FSL_2
|
||||||
extern void fsl_init2 (void);
|
extern void fsl_init2 (void);
|
||||||
#endif
|
#endif
|
||||||
@@ -142,9 +139,6 @@ int interrupts_init (void)
|
|||||||
}
|
}
|
||||||
/* initialize intc controller */
|
/* initialize intc controller */
|
||||||
intc_init ();
|
intc_init ();
|
||||||
#ifdef CONFIG_SYS_TIMER_0
|
|
||||||
timer_init ();
|
|
||||||
#endif
|
|
||||||
#ifdef CONFIG_SYS_FSL_2
|
#ifdef CONFIG_SYS_FSL_2
|
||||||
fsl_init2 ();
|
fsl_init2 ();
|
||||||
#endif
|
#endif
|
||||||
|
@@ -60,7 +60,7 @@ void timer_isr (void *arg)
|
|||||||
tmr->control = tmr->control | TIMER_INTERRUPT;
|
tmr->control = tmr->control | TIMER_INTERRUPT;
|
||||||
}
|
}
|
||||||
|
|
||||||
void timer_init (void)
|
int timer_init (void)
|
||||||
{
|
{
|
||||||
tmr->loadreg = CONFIG_SYS_TIMER_0_PRELOAD;
|
tmr->loadreg = CONFIG_SYS_TIMER_0_PRELOAD;
|
||||||
tmr->control = TIMER_INTERRUPT | TIMER_RESET;
|
tmr->control = TIMER_INTERRUPT | TIMER_RESET;
|
||||||
@@ -68,6 +68,7 @@ void timer_init (void)
|
|||||||
TIMER_ENABLE | TIMER_ENABLE_INTR | TIMER_RELOAD | TIMER_DOWN_COUNT;
|
TIMER_ENABLE | TIMER_ENABLE_INTR | TIMER_RELOAD | TIMER_DOWN_COUNT;
|
||||||
reset_timer ();
|
reset_timer ();
|
||||||
install_interrupt_handler (CONFIG_SYS_TIMER_0_IRQ, timer_isr, (void *)tmr);
|
install_interrupt_handler (CONFIG_SYS_TIMER_0_IRQ, timer_isr, (void *)tmr);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@@ -44,6 +44,10 @@ extern int interrupts_init (void);
|
|||||||
#if defined(CONFIG_CMD_NET)
|
#if defined(CONFIG_CMD_NET)
|
||||||
extern int eth_init (bd_t * bis);
|
extern int eth_init (bd_t * bis);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_SYS_TIMER_0
|
||||||
|
extern int timer_init (void);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* All attempts to come up with a "common" initialization sequence
|
* All attempts to come up with a "common" initialization sequence
|
||||||
@@ -67,6 +71,9 @@ init_fnc_t *init_sequence[] = {
|
|||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_SYS_INTC_0
|
#ifdef CONFIG_SYS_INTC_0
|
||||||
interrupts_init,
|
interrupts_init,
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_SYS_TIMER_0
|
||||||
|
timer_init,
|
||||||
#endif
|
#endif
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user