1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /*
3  * Copyright (c) 2020-2021 Rockchip Electronics Co., Ltd.
4  */
5 
6 #include "hal_conf.h"
7 
8 #ifdef HAL_TIMER_MODULE_ENABLED
9 
10 /** @addtogroup RK_HAL_Driver
11  *  @{
12  */
13 
14 /** @addtogroup TIMER
15  *  @{
16  */
17 
18 #ifndef _HAL_TIMER_H_
19 #define _HAL_TIMER_H_
20 
21 #include "hal_def.h"
22 
23 /***************************** MACRO Definition ******************************/
24 
25 /** @defgroup TIMER_Exported_Definition_Group1 Basic Definition
26  *  @{
27  */
28 
29 typedef enum {
30     TIMER_FREE_RUNNING = 0,
31     TIMER_USER_DEFINED,
32     TIMER_MODE_MAX
33 } eTIMER_MODE;
34 
35 /***************************** Structure Definition **************************/
36 
37 /** @} */
38 /***************************** Function Declare ******************************/
39 /** @defgroup TIMER_Public_Function_Declare Public Function Declare
40  *  @{
41  */
42 
43 HAL_Status HAL_TIMER_Stop(struct TIMER_REG *pReg);
44 HAL_Status HAL_TIMER_Start(struct TIMER_REG *pReg);
45 HAL_Status HAL_TIMER_Stop_IT(struct TIMER_REG *pReg);
46 HAL_Status HAL_TIMER_Start_IT(struct TIMER_REG *pReg);
47 HAL_Status HAL_TIMER_SetCount(struct TIMER_REG *pReg, uint64_t usTick);
48 uint64_t HAL_TIMER_GetCount(struct TIMER_REG *pReg);
49 HAL_Status HAL_TIMER0_Handler(void);
50 HAL_Status HAL_TIMER1_Handler(void);
51 HAL_Status HAL_TIMER_Init(struct TIMER_REG *pReg, eTIMER_MODE mode);
52 HAL_Status HAL_TIMER_SysTimerInit(struct TIMER_REG *pReg);
53 HAL_Status HAL_TIMER_DeInit(struct TIMER_REG *pReg);
54 HAL_Status HAL_TIMER_ClrInt(struct TIMER_REG *pReg);
55 
56 /** @} */
57 
58 #endif
59 
60 /** @} */
61 
62 /** @} */
63 
64 #endif /* HAL_TIMER_MODULE_ENABLED */
65