1 #ifndef __DRV_TIMER_H__
2 #define __DRV_TIMER_H__
3 
4 #include "board.h"
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 #define TTC_CLK_CNTRL(hw_base)      __REG32(hw_base + 0x00)
11 #define TTC_CLK_CNTRL_PS_EN_MASK        0x00000001      /**< Prescale enable */
12 #define TTC_CLK_CNTRL_PS_VAL_MASK       0x0000001E      /**< Prescale value */
13 #define TTC_CLK_CNTRL_PS_VAL_SHIFT      1               /**< Prescale shift */
14 #define TTC_CLK_CNTRL_PS_DISABLE        16              /**< Prescale disable */
15 #define TTC_CLK_CNTRL_SRC_MASK          0x00000020      /**< Clock source */
16 #define TTC_CLK_CNTRL_EXT_EDGE_MASK     0x00000040      /**< External Clock edge */
17 
18 #define TTC_CNT_CNTRL(hw_base) __REG32(hw_base + 0x0C)
19 #define TTC_CNT_CNTRL_DIS_MASK      0x00000001      /**< Disable the counter */
20 #define TTC_CNT_CNTRL_INT_MASK      0x00000002      /**< interval mode */
21 #define TTC_CNT_CNTRL_DECR_MASK     0x00000004      /**< Decrement mode */
22 #define TTC_CNT_CNTRL_MATCH_MASK    0x00000008      /**< Match mode */
23 #define TTC_CNT_CNTRL_RST_MASK      0x00000010      /**< Reset counter */
24 #define TTC_CNT_CNTRL_EN_WAVE_MASK  0x00000020      /**< Enable waveform */
25 #define TTC_CNT_CNTRL_POL_WAVE_MASK 0x00000040      /**< Waveform polarity */
26 #define TTC_CNT_CNTRL_RESET_VALUE   0x00000021      /**< Reset value */
27 
28 #define TTC_COUNT_VALUE(hw_base)    __REG32(hw_base + 0x18)
29 #define TTC_INTERVAL_VAL(hw_base)   __REG32(hw_base + 0x24)
30 #define TTC_MATCH_0(hw_base)        __REG32(hw_base + 0x30)
31 #define TTC_MATCH_1(hw_base)        __REG32(hw_base + 0x3C)
32 #define TTC_MATCH_2(hw_base)        __REG32(hw_base + 0x48)
33 
34 #define TTC_ISR(hw_base)            __REG32(hw_base + 0x54)
35 #define TTC_IXR_INTERVAL_MASK       0x00000001      /**< interval Interrupt */
36 #define TTC_IXR_MATCH_0_MASK        0x00000002      /**< Match 1 Interrupt */
37 #define TTC_IXR_MATCH_1_MASK        0x00000004      /**< Match 2 Interrupt */
38 #define TTC_IXR_MATCH_2_MASK        0x00000008      /**< Match 3 Interrupt */
39 #define TTC_IXR_CNT_OVR_MASK        0x00000010      /**< Counter Overflow */
40 #define TTC_IXR_ALL_MASK            0x0000001F      /**< All valid Interrupts */
41 
42 #define TTC_IER(hw_base)    __REG32(hw_base + 0x60)
43 
44 #ifdef __cplusplus
45 }
46 #endif
47 
48 #endif
49