Lines Matching refs:timer

42 	struct nios2_timer timer;  member
47 struct nios2_timer timer; member
63 static u16 timer_readw(struct nios2_timer *timer, u32 offs) in timer_readw() argument
65 return readw(timer->base + offs); in timer_readw()
68 static void timer_writew(struct nios2_timer *timer, u16 val, u32 offs) in timer_writew() argument
70 writew(val, timer->base + offs); in timer_writew()
73 static inline unsigned long read_timersnapshot(struct nios2_timer *timer) in read_timersnapshot() argument
77 timer_writew(timer, 0, ALTERA_TIMER_SNAPL_REG); in read_timersnapshot()
78 count = timer_readw(timer, ALTERA_TIMER_SNAPH_REG) << 16 | in read_timersnapshot()
79 timer_readw(timer, ALTERA_TIMER_SNAPL_REG); in read_timersnapshot()
91 count = read_timersnapshot(&nios2_cs->timer); in nios2_timer_read()
111 if (nios2_cs.timer.base) in get_cycles()
117 static void nios2_timer_start(struct nios2_timer *timer) in nios2_timer_start() argument
121 ctrl = timer_readw(timer, ALTERA_TIMER_CONTROL_REG); in nios2_timer_start()
123 timer_writew(timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_timer_start()
126 static void nios2_timer_stop(struct nios2_timer *timer) in nios2_timer_stop() argument
130 ctrl = timer_readw(timer, ALTERA_TIMER_CONTROL_REG); in nios2_timer_stop()
132 timer_writew(timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_timer_stop()
135 static void nios2_timer_config(struct nios2_timer *timer, unsigned long period, in nios2_timer_config() argument
144 ctrl = timer_readw(timer, ALTERA_TIMER_CONTROL_REG); in nios2_timer_config()
146 timer_writew(timer, ctrl | ALTERA_TIMER_CONTROL_STOP_MSK, in nios2_timer_config()
150 timer_writew(timer, period, ALTERA_TIMER_PERIODL_REG); in nios2_timer_config()
151 timer_writew(timer, period >> 16, ALTERA_TIMER_PERIODH_REG); in nios2_timer_config()
158 timer_writew(timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_timer_config()
166 nios2_timer_config(&nios2_ced->timer, delta, false); in nios2_timer_set_next_event()
174 struct nios2_timer *timer = &nios2_ced->timer; in nios2_timer_shutdown() local
176 nios2_timer_stop(timer); in nios2_timer_shutdown()
184 struct nios2_timer *timer = &nios2_ced->timer; in nios2_timer_set_periodic() local
186 period = DIV_ROUND_UP(timer->freq, HZ); in nios2_timer_set_periodic()
187 nios2_timer_config(timer, period, true); in nios2_timer_set_periodic()
194 struct nios2_timer *timer = &nios2_ced->timer; in nios2_timer_resume() local
196 nios2_timer_start(timer); in nios2_timer_resume()
206 timer_writew(&nios2_ced->timer, 0, ALTERA_TIMER_STATUS_REG); in timer_interrupt()
243 static __init int nios2_clockevent_init(struct device_node *timer) in nios2_clockevent_init() argument
249 ret = nios2_timer_get_base_and_freq(timer, &iobase, &freq); in nios2_clockevent_init()
253 irq = irq_of_parse_and_map(timer, 0); in nios2_clockevent_init()
259 nios2_ce.timer.base = iobase; in nios2_clockevent_init()
260 nios2_ce.timer.freq = freq; in nios2_clockevent_init()
265 nios2_timer_stop(&nios2_ce.timer); in nios2_clockevent_init()
267 timer_writew(&nios2_ce.timer, 0, ALTERA_TIMER_STATUS_REG); in nios2_clockevent_init()
269 ret = request_irq(irq, timer_interrupt, IRQF_TIMER, timer->name, in nios2_clockevent_init()
281 static __init int nios2_clocksource_init(struct device_node *timer) in nios2_clocksource_init() argument
288 ret = nios2_timer_get_base_and_freq(timer, &iobase, &freq); in nios2_clocksource_init()
292 nios2_cs.timer.base = iobase; in nios2_clocksource_init()
293 nios2_cs.timer.freq = freq; in nios2_clocksource_init()
299 timer_writew(&nios2_cs.timer, USHRT_MAX, ALTERA_TIMER_PERIODL_REG); in nios2_clocksource_init()
300 timer_writew(&nios2_cs.timer, USHRT_MAX, ALTERA_TIMER_PERIODH_REG); in nios2_clocksource_init()
304 timer_writew(&nios2_cs.timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_clocksource_init()
317 static int __init nios2_time_init(struct device_node *timer) in nios2_time_init() argument
324 ret = nios2_clockevent_init(timer); in nios2_time_init()
327 ret = nios2_clocksource_init(timer); in nios2_time_init()