/* Set up the clock source and clock events devices  */
void __init realview_timer_init(unsigned int timer_irq)
/* Set up the clock source and clock events devices  */
void __init realview_timer_init(unsigned int timer_irq)
{
	u32 val;
	val = readl(__io_address(REALVIEW_SCTL_BASE));
	writel((REALVIEW_TIMCLK << REALVIEW_TIMER1_EnSel) |
	       (REALVIEW_TIMCLK << REALVIEW_TIMER2_EnSel) | 
	       (REALVIEW_TIMCLK << REALVIEW_TIMER3_EnSel) |
	       (REALVIEW_TIMCLK << REALVIEW_TIMER4_EnSel) | val,
	       __io_address(REALVIEW_SCTL_BASE));
	writel(0, timer0_va_base + TIMER_CTRL);
	writel(0, timer1_va_base + TIMER_CTRL);
	writel(0, timer2_va_base + TIMER_CTRL);
	writel(0, timer3_va_base + TIMER_CTRL);
	setup_irq(timer_irq, &realview_timer_irq);
	realview_clocksource_init();
	realview_clockevents_init(timer_irq);
}