Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
timex.h
Go to the documentation of this file.
1 /*
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 
23 unsigned long get_ns_in_jiffie(void);
24 
25 static inline unsigned long get_us_in_jiffie_highres(void)
26 {
27  return get_ns_in_jiffie()/1000;
28 }
29 
30 #endif