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()
114 static void nios2_timer_start(struct nios2_timer *timer) in nios2_timer_start() argument
118 ctrl = timer_readw(timer, ALTERA_TIMER_CONTROL_REG); in nios2_timer_start()
120 timer_writew(timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_timer_start()
123 static void nios2_timer_stop(struct nios2_timer *timer) in nios2_timer_stop() argument
127 ctrl = timer_readw(timer, ALTERA_TIMER_CONTROL_REG); in nios2_timer_stop()
129 timer_writew(timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_timer_stop()
132 static void nios2_timer_config(struct nios2_timer *timer, unsigned long period, in nios2_timer_config() argument
141 ctrl = timer_readw(timer, ALTERA_TIMER_CONTROL_REG); in nios2_timer_config()
143 timer_writew(timer, ctrl | ALTERA_TIMER_CONTROL_STOP_MSK, in nios2_timer_config()
147 timer_writew(timer, period, ALTERA_TIMER_PERIODL_REG); in nios2_timer_config()
148 timer_writew(timer, period >> 16, ALTERA_TIMER_PERIODH_REG); in nios2_timer_config()
155 timer_writew(timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_timer_config()
163 nios2_timer_config(&nios2_ced->timer, delta, false); in nios2_timer_set_next_event()
171 struct nios2_timer *timer = &nios2_ced->timer; in nios2_timer_shutdown() local
173 nios2_timer_stop(timer); in nios2_timer_shutdown()
181 struct nios2_timer *timer = &nios2_ced->timer; in nios2_timer_set_periodic() local
183 period = DIV_ROUND_UP(timer->freq, HZ); in nios2_timer_set_periodic()
184 nios2_timer_config(timer, period, true); in nios2_timer_set_periodic()
191 struct nios2_timer *timer = &nios2_ced->timer; in nios2_timer_resume() local
193 nios2_timer_start(timer); in nios2_timer_resume()
203 timer_writew(&nios2_ced->timer, 0, ALTERA_TIMER_STATUS_REG); in timer_interrupt()
234 static __init void nios2_clockevent_init(struct device_node *timer) in nios2_clockevent_init() argument
240 nios2_timer_get_base_and_freq(timer, &iobase, &freq); in nios2_clockevent_init()
242 irq = irq_of_parse_and_map(timer, 0); in nios2_clockevent_init()
246 nios2_ce.timer.base = iobase; in nios2_clockevent_init()
247 nios2_ce.timer.freq = freq; in nios2_clockevent_init()
252 nios2_timer_stop(&nios2_ce.timer); in nios2_clockevent_init()
254 timer_writew(&nios2_ce.timer, 0, ALTERA_TIMER_STATUS_REG); in nios2_clockevent_init()
256 if (request_irq(irq, timer_interrupt, IRQF_TIMER, timer->name, in nios2_clockevent_init()
263 static __init void nios2_clocksource_init(struct device_node *timer) in nios2_clocksource_init() argument
269 nios2_timer_get_base_and_freq(timer, &iobase, &freq); in nios2_clocksource_init()
271 nios2_cs.timer.base = iobase; in nios2_clocksource_init()
272 nios2_cs.timer.freq = freq; in nios2_clocksource_init()
276 timer_writew(&nios2_cs.timer, USHRT_MAX, ALTERA_TIMER_PERIODL_REG); in nios2_clocksource_init()
277 timer_writew(&nios2_cs.timer, USHRT_MAX, ALTERA_TIMER_PERIODH_REG); in nios2_clocksource_init()
281 timer_writew(&nios2_cs.timer, ctrl, ALTERA_TIMER_CONTROL_REG); in nios2_clocksource_init()
292 static void __init nios2_time_init(struct device_node *timer) in nios2_time_init() argument
298 nios2_clockevent_init(timer); in nios2_time_init()
301 nios2_clocksource_init(timer); in nios2_time_init()