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); }