0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef _SPARC_TIMER_H
0010 #define _SPARC_TIMER_H
0011
0012 #include <linux/clocksource.h>
0013 #include <linux/irqreturn.h>
0014
0015 #include <asm-generic/percpu.h>
0016
0017 #include <asm/cpu_type.h> /* For SUN4M_NCPUS */
0018
0019 #define SBUS_CLOCK_RATE 2000000
0020 #define TIMER_VALUE_SHIFT 9
0021 #define TIMER_VALUE_MASK 0x3fffff
0022 #define TIMER_LIMIT_BIT (1 << 31)
0023
0024
0025
0026
0027
0028
0029
0030
0031 static inline unsigned int timer_value(unsigned int value)
0032 {
0033 return (value + 1) << TIMER_VALUE_SHIFT;
0034 }
0035
0036 extern volatile u32 __iomem *master_l10_counter;
0037
0038 irqreturn_t notrace timer_interrupt(int dummy, void *dev_id);
0039
0040 #ifdef CONFIG_SMP
0041 DECLARE_PER_CPU(struct clock_event_device, sparc32_clockevent);
0042 void register_percpu_ce(int cpu);
0043 #endif
0044
0045 #endif