Lines Matching refs:timer

95 static void grlib_gptimer_tx_begin(GPTimer *timer)  in grlib_gptimer_tx_begin()  argument
97 ptimer_transaction_begin(timer->ptimer); in grlib_gptimer_tx_begin()
100 static void grlib_gptimer_tx_commit(GPTimer *timer) in grlib_gptimer_tx_commit() argument
102 ptimer_transaction_commit(timer->ptimer); in grlib_gptimer_tx_commit()
106 static void grlib_gptimer_enable(GPTimer *timer) in grlib_gptimer_enable() argument
108 assert(timer != NULL); in grlib_gptimer_enable()
111 ptimer_stop(timer->ptimer); in grlib_gptimer_enable()
113 if (!(timer->config & GPTIMER_ENABLE)) { in grlib_gptimer_enable()
115 trace_grlib_gptimer_disabled(timer->id, timer->config); in grlib_gptimer_enable()
122 trace_grlib_gptimer_enable(timer->id, timer->counter); in grlib_gptimer_enable()
124 ptimer_set_count(timer->ptimer, (uint64_t)timer->counter + 1); in grlib_gptimer_enable()
125 ptimer_run(timer->ptimer, 1); in grlib_gptimer_enable()
129 static void grlib_gptimer_restart(GPTimer *timer) in grlib_gptimer_restart() argument
131 assert(timer != NULL); in grlib_gptimer_restart()
133 trace_grlib_gptimer_restart(timer->id, timer->reload); in grlib_gptimer_restart()
135 timer->counter = timer->reload; in grlib_gptimer_restart()
136 grlib_gptimer_enable(timer); in grlib_gptimer_restart()
163 GPTimer *timer = opaque; in grlib_gptimer_hit() local
164 assert(timer != NULL); in grlib_gptimer_hit()
166 trace_grlib_gptimer_hit(timer->id); in grlib_gptimer_hit()
170 if (timer->config & GPTIMER_INT_ENABLE) { in grlib_gptimer_hit()
172 timer->config |= GPTIMER_INT_PENDING; in grlib_gptimer_hit()
173 qemu_irq_pulse(timer->irq); in grlib_gptimer_hit()
176 if (timer->config & GPTIMER_RESTART) { in grlib_gptimer_hit()
177 grlib_gptimer_restart(timer); in grlib_gptimer_hit()
359 GPTimer *timer = &unit->timers[i]; in grlib_gptimer_reset() local
361 timer->counter = 0; in grlib_gptimer_reset()
362 timer->reload = 0; in grlib_gptimer_reset()
363 timer->config = 0; in grlib_gptimer_reset()
364 ptimer_transaction_begin(timer->ptimer); in grlib_gptimer_reset()
365 ptimer_stop(timer->ptimer); in grlib_gptimer_reset()
366 ptimer_set_count(timer->ptimer, 0); in grlib_gptimer_reset()
367 ptimer_set_freq(timer->ptimer, unit->freq_hz); in grlib_gptimer_reset()
368 ptimer_transaction_commit(timer->ptimer); in grlib_gptimer_reset()
384 GPTimer *timer = &unit->timers[i]; in grlib_gptimer_realize() local
386 timer->unit = unit; in grlib_gptimer_realize()
387 timer->ptimer = ptimer_init(grlib_gptimer_hit, timer, in grlib_gptimer_realize()
389 timer->id = i; in grlib_gptimer_realize()
392 sysbus_init_irq(sbd, &timer->irq); in grlib_gptimer_realize()
394 ptimer_transaction_begin(timer->ptimer); in grlib_gptimer_realize()
395 ptimer_set_freq(timer->ptimer, unit->freq_hz); in grlib_gptimer_realize()
396 ptimer_transaction_commit(timer->ptimer); in grlib_gptimer_realize()