/* Initialize the conversion factor and the min/max deltas of the clock event structure and register the clock event source with the framework.  */
void __init setup_mfgpt0_timer(void)
/* Initialize the conversion factor and the min/max deltas of the clock event structure and register the clock event source with the framework.  */
void __init setup_mfgpt0_timer(void)
{
	u32 basehi;
	struct clock_event_device *cd = &mfgpt_clockevent;
	unsigned int cpu = smp_processor_id();
	cd->cpumask = cpumask_of(cpu);
	clockevent_set_clock(cd, MFGPT_TICK_RATE);
	cd->max_delta_ns = clockevent_delta2ns(0xffff, cd);
	cd->min_delta_ns = clockevent_delta2ns(0xf, cd);
	_wrmsr(DIVIL_MSR_REG(MFGPT_IRQ), 0, 0x100);
	_wrmsr(DIVIL_MSR_REG(PIC_ZSEL_LOW), 0, 0x50000);
	_rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_MFGPT), &basehi, &mfgpt_base);
	clockevents_register_device(cd);
	setup_irq(CS5536_MFGPT_INTR, &irq5);
}