nios2: check number of timer instances
authorLey Foon Tan <lftan@altera.com>
Wed, 24 Jun 2015 09:52:44 +0000 (17:52 +0800)
committerLey Foon Tan <lftan@altera.com>
Wed, 24 Jun 2015 09:52:44 +0000 (17:52 +0800)
Display error message if number of timers is less than 2.

Signed-off-by: Ley Foon Tan <lftan@altera.com>
arch/nios2/kernel/time.c

index 7f45474..bea8839 100644 (file)
@@ -18,7 +18,9 @@
 #include <linux/io.h>
 #include <linux/slab.h>
 
-#define ALTERA_TIMER_STATUS_REG                0
+#define ALTR_TIMER_COMPATIBLE          "altr,timer-1.0"
+
+#define ALTERA_TIMER_STATUS_REG        0
 #define ALTERA_TIMER_CONTROL_REG       4
 #define ALTERA_TIMER_PERIODL_REG       8
 #define ALTERA_TIMER_PERIODH_REG       12
@@ -302,7 +304,16 @@ void read_persistent_clock(struct timespec *ts)
 
 void __init time_init(void)
 {
+       struct device_node *np;
+       int count = 0;
+
+       for_each_compatible_node(np, NULL,  ALTR_TIMER_COMPATIBLE)
+               count++;
+
+       if (count < 2)
+               panic("%d timer is found, it needs 2 timers in system\n", count);
+
        clocksource_of_init();
 }
 
-CLOCKSOURCE_OF_DECLARE(nios2_timer, "altr,timer-1.0", nios2_time_init);
+CLOCKSOURCE_OF_DECLARE(nios2_timer, ALTR_TIMER_COMPATIBLE, nios2_time_init);