Esempio n. 1
0
void __init sci_timer_init(void)
{
#ifdef CONFIG_LOCAL_TIMERS
#if !defined (CONFIG_HAVE_ARM_ARCH_TIMER)
	int i = 0, ret = 0;
	local_timer_register(&sprd_local_timer_ops);
	for (i = 0; i < CONFIG_NR_CPUS; i++) {
		ret = request_irq(irq_nr[i], __gptimer_interrupt,
				  IRQF_TIMER | IRQF_NOBALANCING | IRQF_DISABLED
				  | IRQF_PERCPU, "local_timer", local_evt);
		if (ret) {
			printk(KERN_ERR "request local timer irq %d failed\n",
			       irq_nr[i]);
		}
	}
#endif
#endif
	/* setup aon timer timer1 and syscnt as clocksource */
	__gptimer_clocksource_init();
	__syscnt_clocksource_init("syscnt", 1000);
	/* setup timer1 of aon timer as clockevent. */
	sprd_gptimer_clockevent_init(BC_IRQ, "bctimer", 32768);
	register_persistent_clock(NULL, sprd_read_persistent_clock);

	printk(KERN_INFO "sci_timer_init\n");
}
void __init sc8825_timer_init(void)
{
#if !defined(CONFIG_NKERNEL) || defined(CONFIG_NATIVE_LOCAL_TIMER)
#ifdef CONFIG_LOCAL_TIMERS
	twd_base = (void __iomem *)SC8825_VA_PRIVATE_TIMER;
#endif
#endif
	/* setup timer2 and syscnt as clocksource */
	__gptimer_clocksource_init("gptimer2", 26000000);
	__syscnt_clocksource_init("syscnt", 1000);

	/* setup timer1 as clockevent.  */
	sprd_gptimer_clockevent_init(IRQ_TIMER1_INT, "gptimer1", 32768);
}