/* Set up the clock source and clock events devices  */
void __init mps_timer_init(unsigned int timer_irq)
/* Set up the clock source and clock events devices  */
void __init mps_timer_init(unsigned int timer_irq)
{
	u32 val;
	val = readl(__io_address(MPS_SCTL_BASE));
	writel((MPS_TIMCLK << MPS_TIMER1_EnSel) |
	       (MPS_TIMCLK << MPS_TIMER2_EnSel) | 
	       (MPS_TIMCLK << MPS_TIMER3_EnSel) |
	       (MPS_TIMCLK << MPS_TIMER4_EnSel) | val,
	       __io_address(MPS_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, &mps_timer_irq);
	mps_clocksource_init();
	mps_clockevents_init(timer_irq);
}