Lines Matching refs:timer

61     struct rk_timer *timer;  member
76 rt_inline void rk_timer_disable(struct rk_timer *timer) in rk_timer_disable() argument
78 HWREG32(timer->ctrl) = TIMER_DISABLE; in rk_timer_disable()
81 rt_inline void rk_timer_enable(struct rk_timer *timer, rt_uint32_t flags) in rk_timer_enable() argument
83 HWREG32(timer->ctrl) = TIMER_ENABLE | flags; in rk_timer_enable()
86 rt_inline rt_uint32_t rk_timer_current_value(struct rk_timer *timer) in rk_timer_current_value() argument
88 return HWREG32(timer->base + TIMER_CURRENT_VALUE0); in rk_timer_current_value()
91 static void rk_timer_update_counter(unsigned long cycles, struct rk_timer *timer) in rk_timer_update_counter() argument
93 HWREG32(timer->base + TIMER_LOAD_COUNT0) = cycles; in rk_timer_update_counter()
94 HWREG32(timer->base + TIMER_LOAD_COUNT1) = 0; in rk_timer_update_counter()
97 static void rk_timer_interrupt_clear(struct rk_timer *timer) in rk_timer_interrupt_clear() argument
99 HWREG32(timer->base + TIMER_INT_STATUS) = 1; in rk_timer_interrupt_clear()
102 static void rk_timer_init(struct rt_hwtimer_device *timer, rt_uint32_t state) in rk_timer_init() argument
106 static rt_err_t rk_timer_start(struct rt_hwtimer_device *timer, rt_uint32_t cnt, rt_hwtimer_mode_t … in rk_timer_start() argument
109 struct rk_timer *rk_timer = raw_to_rk_timer(timer); in rk_timer_start()
139 static void rk_timer_stop(struct rt_hwtimer_device *timer) in rk_timer_stop() argument
141 struct rk_timer *rk_timer = raw_to_rk_timer(timer); in rk_timer_stop()
147 static rt_uint32_t rk_timer_count_get(struct rt_hwtimer_device *timer) in rk_timer_count_get() argument
149 struct rk_timer *rk_timer = raw_to_rk_timer(timer); in rk_timer_count_get()
154 static rt_err_t rk_timer_ctrl(struct rt_hwtimer_device *timer, rt_uint32_t cmd, void *args) in rk_timer_ctrl() argument
157 struct rk_timer *rk_timer = raw_to_rk_timer(timer); in rk_timer_ctrl()
166 rk_timer_stop(timer); in rk_timer_ctrl()
181 err = rk_timer_start(timer, rk_timer->cycle, (rt_hwtimer_mode_t)args); in rk_timer_ctrl()
203 struct hrt_timer *timer = &_timer0; in rk_timer_isr() local
204 struct rk_timer *time = timer->timer; in rk_timer_isr()
213 struct rk_timer *timer = _timer0.timer; in rt_ktime_hrtimer_bind() local
215 if (rt_pic_irq_set_affinity(timer->irq, affinity) == -RT_ENOSYS) in rt_ktime_hrtimer_bind()
221 LOG_D("timer irq(%d) binding done\n", timer->irq); in rt_ktime_hrtimer_bind()
230 struct rk_timer *timer = rt_calloc(1, sizeof(*timer)); in rk_timer_probe() local
232 if (!timer) in rk_timer_probe()
237 _timer0.timer = timer; in rk_timer_probe()
240 if (!(timer->pclk = rt_clk_get_by_name(dev, "pclk"))) in rk_timer_probe()
247 if (!(timer->clk = rt_clk_get_by_name(dev, "timer"))) in rk_timer_probe()
254 timer->base = rt_dm_dev_iomap(dev, 0); in rk_timer_probe()
256 if (!timer->base) in rk_timer_probe()
263 timer->ctrl = timer->base + timer_data->ctrl_reg; in rk_timer_probe()
265 rt_clk_enable(timer->pclk); in rk_timer_probe()
266 rt_clk_enable(timer->clk); in rk_timer_probe()
267 timer->freq = rt_clk_get_rate(timer->clk); in rk_timer_probe()
268 timer->irq = rt_dm_dev_get_irq(dev, 0); in rk_timer_probe()
270 rk_timer_interrupt_clear(timer); in rk_timer_probe()
271 rk_timer_disable(timer); in rk_timer_probe()
273 timer->parent.ops = &rk_timer_ops; in rk_timer_probe()
274 timer->parent.info = &timer->info; in rk_timer_probe()
276 timer->info.maxfreq = timer->freq; in rk_timer_probe()
277 timer->info.minfreq = timer->freq; in rk_timer_probe()
278 timer->info.maxcnt = 0xffffffff; in rk_timer_probe()
279 timer->info.cntmode = HWTIMER_CNTMODE_DW; in rk_timer_probe()
281 rt_dm_dev_set_name_auto(&timer->parent.parent, "timer"); in rk_timer_probe()
282 dev_name = rt_dm_dev_get_name(&timer->parent.parent); in rk_timer_probe()
284 rt_device_hwtimer_register(&timer->parent, dev_name, RT_NULL); in rk_timer_probe()
290 rt_pic_attach_irq(timer->irq, rk_timer_isr, timer, dev_name, RT_IRQ_F_NONE); in rk_timer_probe()
291 rt_pic_irq_unmask(timer->irq); in rk_timer_probe()
296 rt_pic_irq_set_affinity(timer->irq, affinity); in rk_timer_probe()
302 if (timer->base) in rk_timer_probe()
304 rt_iounmap(timer->base); in rk_timer_probe()
306 if (timer->pclk) in rk_timer_probe()
308 rt_clk_put(timer->pclk); in rk_timer_probe()
310 if (timer->clk) in rk_timer_probe()
312 rt_clk_put(timer->clk); in rk_timer_probe()
314 rt_free(timer); in rk_timer_probe()
343 return rk_timer_current_value(_timer0.timer); in rt_ktime_hrtimer_getcnt()
356 struct hrt_timer *timer = &_timer0; in rt_ktime_hrtimer_settimeout() local
357 struct rk_timer *time = timer->timer; in rt_ktime_hrtimer_settimeout()
359 timer->cnt = cnt; in rt_ktime_hrtimer_settimeout()