static int __init bfin_clockevent_init(void) { unsigned long timer_clk; timer_clk = bfin_clockevent_check(); bfin_timer_init(); clockevent_bfin.mult = div_sc(timer_clk, NSEC_PER_SEC, clockevent_bfin.shift); clockevent_bfin.max_delta_ns = clockevent_delta2ns(-1, &clockevent_bfin); clockevent_bfin.min_delta_ns = clockevent_delta2ns(100, &clockevent_bfin); clockevent_bfin.cpumask = cpumask_of(0); clockevents_register_device(&clockevent_bfin); return 0; }
static int __init bfin_clockevent_init(void) { unsigned long timer_clk; timer_clk = get_cclk() / TIME_SCALE; setup_irq(IRQ_CORETMR, &bfin_timer_irq); bfin_timer_init(); clockevent_bfin.mult = div_sc(timer_clk, NSEC_PER_SEC, clockevent_bfin.shift); clockevent_bfin.max_delta_ns = clockevent_delta2ns(-1, &clockevent_bfin); clockevent_bfin.min_delta_ns = clockevent_delta2ns(100, &clockevent_bfin); clockevents_register_device(&clockevent_bfin); return 0; }
void __init setup_core_timer(void) { bfin_timer_init(); bfin_timer_set_mode(CLOCK_EVT_MODE_PERIODIC, NULL); }