1 #ifndef SUNXI_HAL_TIMER_H
2 #define SUNXI_HAL_TIMER_H
3 
4 #ifdef __cplusplus
5 extern "C"
6 {
7 #endif
8 
9 #include <stddef.h>
10 #include <stdint.h>
11 
12 #ifdef CONFIG_KERNEL_FREERTOS
13 
14 #else
15 
16 #include <rtthread.h>
17 
18 typedef rt_timer_t osal_timer_t;
19 typedef void (*timeout_func)(void *parameter);
20 
21 #define OSAL_TIMER_FLAG_DEACTIVATED  RT_TIMER_FLAG_DEACTIVATED
22 #define OSAL_TIMER_FLAG_ACTIVATED    RT_TIMER_FLAG_ACTIVATED
23 #define OSAL_TIMER_FLAG_ONE_SHOT     RT_TIMER_FLAG_ONE_SHOT
24 #define OSAL_TIMER_FLAG_PERIODIC     RT_TIMER_FLAG_PERIODIC
25 
26 #define OSAL_TIMER_FLAG_HARD_TIMER   RT_TIMER_FLAG_HARD_TIMER
27 #define OSAL_TIMER_FLAG_SOFT_TIMER   RT_TIMER_FLAG_SOFT_TIMER
28 
29 #define OSAL_TIMER_CTRL_SET_TIME     RT_TIMER_CTRL_SET_TIME
30 #define OSAL_TIMER_CTRL_GET_TIME     RT_TIMER_CTRL_GET_TIME
31 #define OSAL_TIMER_CTRL_SET_ONESHOT  RT_TIMER_CTRL_SET_ONESHOT
32 #define OSAL_TIMER_CTRL_SET_PERIODIC RT_TIMER_CTRL_SET_PERIODIC
33 #define OSAL_TIMER_CTRL_GET_STATE    RT_TIMER_CTRL_GET_STATE
34 
35 osal_timer_t osal_timer_create(const char *name,
36                                timeout_func timeout,
37                                void *parameter,
38                                unsigned int time,
39                                unsigned char flag);
40 
41 int osal_timer_delete(osal_timer_t timer);
42 int osal_timer_start(osal_timer_t timer);
43 int osal_timer_stop(osal_timer_t timer);
44 int osal_timer_control(osal_timer_t timer, int cmd, void *arg);
45 
46 #endif
47 
48 int hal_sleep(unsigned int secs);
49 int hal_usleep(unsigned int usecs);
50 int hal_msleep(unsigned int msecs);
51 void udelay(unsigned int us);
52 
53 
54 #ifdef __cplusplus
55 }
56 #endif
57 #endif
58