14 #include <linux/kernel.h>
16 #include <linux/sched.h>
22 #include <asm/traps.h>
23 #include <asm/machdep.h>
30 #ifdef CONFIG_HIGHPROFILE
35 #define PA(a) (MCFSLT_TIMER1 + (a))
41 #define PROFILEHZ 1013
52 static struct irqaction mcfslt_profile_irq = {
53 .
name =
"profile timer",
55 .handler = mcfslt_profile_tick,
58 void mcfslt_profile_init(
void)
79 #define TA(a) (MCFSLT_TIMER0 + (a))
81 static u32 mcfslt_cycles_per_jiffy;
82 static u32 mcfslt_cnt;
86 static irqreturn_t mcfslt_tick(
int irq,
void *dummy)
90 mcfslt_cnt += mcfslt_cycles_per_jiffy;
91 return timer_interrupt(irq, dummy);
94 static struct irqaction mcfslt_timer_irq = {
97 .handler = mcfslt_tick,
109 cycles += mcfslt_cycles_per_jiffy;
115 return cycles + ((mcfslt_cycles_per_jiffy - 1) - scnt);
121 .read = mcfslt_read_clk,
139 mcfslt_cnt = mcfslt_cycles_per_jiffy;
141 timer_interrupt = handler;
144 clocksource_register_hz(&mcfslt_clk,
MCF_BUSCLK);
146 #ifdef CONFIG_HIGHPROFILE
147 mcfslt_profile_init();