Lines Matching defs:timer
16 #include <platsupport/timer.h>
19 int meson_init(meson_timer_t *timer, meson_timer_config_t config)
21 if (timer == NULL || config.vaddr == NULL) {
25 timer->regs = (void *)((uintptr_t) config.vaddr + (TIMER_BASE + TIMER_REG_START * 4 - TIMER_MAP_BASE));
27 timer->regs->mux = TIMER_A_EN | (TIMESTAMP_TIMEBASE_1_US << TIMER_E_INPUT_CLK) |
30 timer->regs->timer_e = 0;
35 uint64_t meson_get_time(meson_timer_t *timer)
37 uint64_t initial_high = timer->regs->timer_e_hi;
38 uint64_t low = timer->regs->timer_e;
39 uint64_t high = timer->regs->timer_e_hi;
41 low = timer->regs->timer_e;
49 void meson_set_timeout(meson_timer_t *timer, uint16_t timeout, bool periodic)
52 timer->regs->mux |= TIMER_A_MODE;
54 timer->regs->mux &= ~TIMER_A_MODE;
57 timer->regs->timer_a = timeout;
59 if (timer->disable) {
60 timer->regs->mux |= TIMER_A_EN;
61 timer->disable = false;
65 void meson_stop_timer(meson_timer_t *timer)
67 timer->regs->mux &= ~TIMER_A_EN;
68 timer->disable = true;