Merge tag 'v3.10.55' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / timer.c
1 #include <asm/mach/time.h>
2 #include <mach/mt_timer.h>
3 #include <linux/version.h>
4
5 extern struct mt_clock mt6582_gpt;
6 extern int generic_timer_register(void);
7
8
9 struct mt_clock *mt6582_clocks[] =
10 {
11 &mt6582_gpt,
12 };
13
14 void __init mt6582_timer_init(void)
15 {
16 int i;
17 struct mt_clock *clock;
18 int err;
19
20 for (i = 0; i < ARRAY_SIZE(mt6582_clocks); i++) {
21 clock = mt6582_clocks[i];
22
23 clock->init_func();
24
25 if (clock->clocksource.name) {
26 err = clocksource_register(&(clock->clocksource));
27 if (err) {
28 pr_err("mt6582_timer_init: clocksource_register failed for %s\n", clock->clocksource.name);
29 }
30 }
31
32 err = setup_irq(clock->irq.irq, &(clock->irq));
33 if (err) {
34 pr_err("mt6582_timer_init: setup_irq failed for %s\n", clock->irq.name);
35 }
36
37 if (clock->clockevent.name)
38 clockevents_register_device(&(clock->clockevent));
39 }
40
41 #ifndef CONFIG_MT8127_FPGA
42 err = generic_timer_register();
43 if (err) {
44 pr_err("generic_timer_register failed, err=%d\n", err);
45 }
46 // printk("fwq no generic timer");
47 #endif
48 }
49
50 #if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
51 struct sys_timer mt6582_timer = {
52 .init = mt6582_timer_init,
53 };
54 #endif