[PATCH V2] clockevents: rockchip: Add rockchip timer for rk3288
Daniel Lezcano
daniel.lezcano at linaro.org
Mon Jan 26 01:33:23 PST 2015
On 01/26/2015 02:25 AM, Kever Yang wrote:
> Hi Daniel,
Hi Kever,
[ ... ]
>> +static inline int rk_timer_set_next_event(unsigned long cycles,
>> + struct clock_event_device *ce)
>> +{
>> + rk_timer_disable(ce);
>> + rk_timer_update_counter(cycles, ce);
>> + rk_timer_enable(ce, TIMER_MODE_USER_DEFINED_COUNT);
>> + return 0;
>> +}
>> +
>> +static inline void rk_timer_set_mode(enum clock_event_mode mode,
>> + struct clock_event_device *ce)
>> +{
>> + switch (mode) {
>> + case CLOCK_EVT_MODE_PERIODIC:
>> + rk_timer_disable(ce);
>> + rk_timer_update_counter(rk_timer(ce)->freq / HZ - 1, ce);
>> + rk_timer_enable(ce, TIMER_MODE_FREE_RUNNING);
>> + case CLOCK_EVT_MODE_ONESHOT:
> This driver seems init the timer as ONE SHOT mode, and we can
> set to PERIODIC by this code, but what if user set the timer
> as PERIODIC mode and then want to set back to ONESHOT mode?
Mmh, I think that will be followed by a call set_next_event, hence
disabling the timer and set the right mode with the next event.
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
More information about the Linux-rockchip
mailing list