X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=carlfw%2Finclude%2Ftimer.h;h=1b9d1c17f74f00f73eb92a57b5764555e43403f7;hb=dbb81597c39e9ecf9a76420ac374a179d5b94c91;hp=7f6c491d87247cd5ce1461919db4ae852f82aff3;hpb=12d3f1ba6ba522cd1ef11483d813fe2c2e64f04b;p=carl9170fw.git diff --git a/carlfw/include/timer.h b/carlfw/include/timer.h index 7f6c491..1b9d1c1 100644 --- a/carlfw/include/timer.h +++ b/carlfw/include/timer.h @@ -47,7 +47,7 @@ static inline __inline uint32_t get_clock_counter(void) */ static inline __inline bool is_after_msecs(const uint32_t t0, const uint32_t msecs) { - return ((get_clock_counter() - t0) / 1000) > (msecs * fw.ticks_per_msec); + return ((get_clock_counter() - t0) / 1000) > (msecs * fw.ticks_per_usec); } /* @@ -60,7 +60,7 @@ static inline __inline void delay(const uint32_t msec) { uint32_t t1, t2, dt, wt; - wt = msec * fw.ticks_per_msec; + wt = msec * fw.ticks_per_usec; t1 = get_clock_counter(); while (1) { @@ -79,22 +79,13 @@ static inline __inline void udelay(const uint32_t usec) while (1) { t2 = get_clock_counter(); dt = (t2 - t1); - if (dt >= (usec * fw.ticks_per_msec)) + if (dt >= (usec * fw.ticks_per_usec)) break; } } -static inline void clock_set(enum cpu_clock_t _clock, bool on) -{ - /* - * Word of Warning! - * This setting does more than just mess with the CPU Clock. - * So watch out, if you need _stable_ timer interrupts. - */ - - fw.ticks_per_msec = GET_VAL(AR9170_PWR_PLL_ADDAC_DIV, get(AR9170_PWR_REG_PLL_ADDAC)) >> 1; - - set(AR9170_PWR_REG_CLOCK_SEL, (uint32_t) ((on ? 0x70 : 0x600) | _clock)); -} +void clock_set(enum cpu_clock_t _clock, bool on); +void handle_timer(void); +void timer_init(const unsigned int timer, const unsigned int interval); #endif /* __CARL9170FW_TIMER_H */