Lines Matching refs:timer

39 	struct nios2_timer timer;  member
44 struct nios2_timer timer; member
60 static u16 timer_readw(struct nios2_timer *timer, u32 offs) in timer_readw() argument
62 return readw(timer->base + offs); in timer_readw()
65 static void timer_writew(struct nios2_timer *timer, u16 val, u32 offs) in timer_writew() argument
67 writew(val, timer->base + offs); in timer_writew()
70 static inline unsigned long read_timersnapshot(struct nios2_timer *timer) in read_timersnapshot() argument
74 timer_writew(timer, 0, ALTERA_TIMER_SNAPL_REG); in read_timersnapshot()
75 count = timer_readw(timer, ALTERA_TIMER_SNAPH_REG) << 16 | in read_timersnapshot()
76 timer_readw(timer, ALTERA_TIMER_SNAPL_REG); in read_timersnapshot()
88 count = read_timersnapshot(&nios2_cs->timer); in nios2_timer_read()
110 static void nios2_timer_start(struct nios2_timer *timer) in nios2_timer_start() argument
114 ctrl = timer_readw(timer, ALTERA_TIMER_CONTROL_REG); in nios2_timer_start()
116 timer_writew(timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_timer_start()
119 static void nios2_timer_stop(struct nios2_timer *timer) in nios2_timer_stop() argument
123 ctrl = timer_readw(timer, ALTERA_TIMER_CONTROL_REG); in nios2_timer_stop()
125 timer_writew(timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_timer_stop()
128 static void nios2_timer_config(struct nios2_timer *timer, unsigned long period, in nios2_timer_config() argument
137 ctrl = timer_readw(timer, ALTERA_TIMER_CONTROL_REG); in nios2_timer_config()
139 timer_writew(timer, ctrl | ALTERA_TIMER_CONTROL_STOP_MSK, in nios2_timer_config()
143 timer_writew(timer, period, ALTERA_TIMER_PERIODL_REG); in nios2_timer_config()
144 timer_writew(timer, period >> 16, ALTERA_TIMER_PERIODH_REG); in nios2_timer_config()
151 timer_writew(timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_timer_config()
159 nios2_timer_config(&nios2_ced->timer, delta, evt->mode); in nios2_timer_set_next_event()
169 struct nios2_timer *timer = &nios2_ced->timer; in nios2_timer_set_mode() local
173 period = DIV_ROUND_UP(timer->freq, HZ); in nios2_timer_set_mode()
174 nios2_timer_config(timer, period, CLOCK_EVT_MODE_PERIODIC); in nios2_timer_set_mode()
179 nios2_timer_stop(timer); in nios2_timer_set_mode()
182 nios2_timer_start(timer); in nios2_timer_set_mode()
193 timer_writew(&nios2_ced->timer, 0, ALTERA_TIMER_STATUS_REG); in timer_interrupt()
221 static __init void nios2_clockevent_init(struct device_node *timer) in nios2_clockevent_init() argument
227 nios2_timer_get_base_and_freq(timer, &iobase, &freq); in nios2_clockevent_init()
229 irq = irq_of_parse_and_map(timer, 0); in nios2_clockevent_init()
233 nios2_ce.timer.base = iobase; in nios2_clockevent_init()
234 nios2_ce.timer.freq = freq; in nios2_clockevent_init()
239 nios2_timer_stop(&nios2_ce.timer); in nios2_clockevent_init()
241 timer_writew(&nios2_ce.timer, 0, ALTERA_TIMER_STATUS_REG); in nios2_clockevent_init()
243 if (request_irq(irq, timer_interrupt, IRQF_TIMER, timer->name, in nios2_clockevent_init()
250 static __init void nios2_clocksource_init(struct device_node *timer) in nios2_clocksource_init() argument
256 nios2_timer_get_base_and_freq(timer, &iobase, &freq); in nios2_clocksource_init()
258 nios2_cs.timer.base = iobase; in nios2_clocksource_init()
259 nios2_cs.timer.freq = freq; in nios2_clocksource_init()
263 timer_writew(&nios2_cs.timer, USHRT_MAX, ALTERA_TIMER_PERIODL_REG); in nios2_clocksource_init()
264 timer_writew(&nios2_cs.timer, USHRT_MAX, ALTERA_TIMER_PERIODH_REG); in nios2_clocksource_init()
268 timer_writew(&nios2_cs.timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_clocksource_init()
279 static void __init nios2_time_init(struct device_node *timer) in nios2_time_init() argument
285 nios2_clockevent_init(timer); in nios2_time_init()
288 nios2_clocksource_init(timer); in nios2_time_init()