blob: e48447d94faf093f380dfa2f6e944099f8d316d5 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * Use prescale timer at 25000 Hz instead of the baudrate timer at
3 * 19200 to get rid of the 64ppm to fast timer (and we get better
4 * resolution within a jiffie as well.
5 */
6#ifndef _ASM_CRIS_ARCH_TIMEX_H
7#define _ASM_CRIS_ARCH_TIMEX_H
8
9/* The prescaler clock runs at 25MHz, we divide it by 1000 in the prescaler */
10/* If you change anything here you must check time.c as well... */
11#define PRESCALE_FREQ 25000000
12#define PRESCALE_VALUE 1000
13#define CLOCK_TICK_RATE 25000 /* Underlying frequency of the HZ timer */
14/* The timer0 values gives 40us resolution (1/25000) but interrupts at HZ*/
15#define TIMER0_FREQ (CLOCK_TICK_RATE)
16#define TIMER0_CLKSEL flexible
17#define TIMER0_DIV (TIMER0_FREQ/(HZ))
18
19
20#define GET_JIFFIES_USEC() \
21 ( (TIMER0_DIV - *R_TIMER0_DATA) * (1000000/HZ)/TIMER0_DIV )
22
23unsigned long get_ns_in_jiffie(void);
24
Adrian Bunkd9b54442005-11-07 00:58:44 -080025static inline unsigned long get_us_in_jiffie_highres(void)
Linus Torvalds1da177e2005-04-16 15:20:36 -070026{
27 return get_ns_in_jiffie()/1000;
28}
29
30#endif