Lines Matching refs:ce

32 	struct clock_event_device ce;  member
39 static inline struct bc_timer *rk_timer(struct clock_event_device *ce) in rk_timer() argument
41 return container_of(ce, struct bc_timer, ce); in rk_timer()
44 static inline void __iomem *rk_base(struct clock_event_device *ce) in rk_base() argument
46 return rk_timer(ce)->base; in rk_base()
49 static inline void rk_timer_disable(struct clock_event_device *ce) in rk_timer_disable() argument
51 writel_relaxed(TIMER_DISABLE, rk_base(ce) + TIMER_CONTROL_REG); in rk_timer_disable()
55 static inline void rk_timer_enable(struct clock_event_device *ce, u32 flags) in rk_timer_enable() argument
58 rk_base(ce) + TIMER_CONTROL_REG); in rk_timer_enable()
63 struct clock_event_device *ce) in rk_timer_update_counter() argument
65 writel_relaxed(cycles, rk_base(ce) + TIMER_LOAD_COUNT0); in rk_timer_update_counter()
66 writel_relaxed(0, rk_base(ce) + TIMER_LOAD_COUNT1); in rk_timer_update_counter()
70 static void rk_timer_interrupt_clear(struct clock_event_device *ce) in rk_timer_interrupt_clear() argument
72 writel_relaxed(1, rk_base(ce) + TIMER_INT_STATUS); in rk_timer_interrupt_clear()
77 struct clock_event_device *ce) in rk_timer_set_next_event() argument
79 rk_timer_disable(ce); in rk_timer_set_next_event()
80 rk_timer_update_counter(cycles, ce); in rk_timer_set_next_event()
81 rk_timer_enable(ce, TIMER_MODE_USER_DEFINED_COUNT); in rk_timer_set_next_event()
85 static int rk_timer_shutdown(struct clock_event_device *ce) in rk_timer_shutdown() argument
87 rk_timer_disable(ce); in rk_timer_shutdown()
91 static int rk_timer_set_periodic(struct clock_event_device *ce) in rk_timer_set_periodic() argument
93 rk_timer_disable(ce); in rk_timer_set_periodic()
94 rk_timer_update_counter(rk_timer(ce)->freq / HZ - 1, ce); in rk_timer_set_periodic()
95 rk_timer_enable(ce, TIMER_MODE_FREE_RUNNING); in rk_timer_set_periodic()
101 struct clock_event_device *ce = dev_id; in rk_timer_interrupt() local
103 rk_timer_interrupt_clear(ce); in rk_timer_interrupt()
105 if (clockevent_state_oneshot(ce)) in rk_timer_interrupt()
106 rk_timer_disable(ce); in rk_timer_interrupt()
108 ce->event_handler(ce); in rk_timer_interrupt()
115 struct clock_event_device *ce = &bc_timer.ce; in rk_timer_init() local
156 ce->name = TIMER_NAME; in rk_timer_init()
157 ce->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT; in rk_timer_init()
158 ce->set_next_event = rk_timer_set_next_event; in rk_timer_init()
159 ce->set_state_shutdown = rk_timer_shutdown; in rk_timer_init()
160 ce->set_state_periodic = rk_timer_set_periodic; in rk_timer_init()
161 ce->irq = irq; in rk_timer_init()
162 ce->cpumask = cpumask_of(0); in rk_timer_init()
163 ce->rating = 250; in rk_timer_init()
165 rk_timer_interrupt_clear(ce); in rk_timer_init()
166 rk_timer_disable(ce); in rk_timer_init()
168 ret = request_irq(irq, rk_timer_interrupt, IRQF_TIMER, TIMER_NAME, ce); in rk_timer_init()
174 clockevents_config_and_register(ce, bc_timer.freq, 1, UINT_MAX); in rk_timer_init()