1 /*
2  * Copyright (c) 2006-2025, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2023-09-04     Rbb666       first version
9  */
10 
11 #ifndef __TIMER_CONFIG_H__
12 #define __TIMER_CONFIG_H__
13 
14 #include <rtthread.h>
15 #include "hal_data.h"
16 
17 #ifdef __cplusplus
18 extern "C"
19 {
20 #endif
21 
22 #define PLCKD_PRESCALER_MAX_SELECT     9
23 
24 /* RSK-RZN2L: Frequency ratio: PCLKA:PCLKD = 1:N (N = 1/2/4/8/16/32/64) */
25 #define PLCKD_PRESCALER_400M           (BSP_PRV_PCLKGPTL_FREQ_400_MHZ)
26 #define PLCKD_PRESCALER_200M           (BSP_PRV_PCLKGPTL_FREQ_400_MHZ / 2)
27 #define PLCKD_PRESCALER_100M           (BSP_PRV_PCLKGPTL_FREQ_400_MHZ / 4)
28 #define PLCKD_PRESCALER_50M            (BSP_PRV_PCLKGPTL_FREQ_400_MHZ / 8)
29 #define PLCKD_PRESCALER_25M            (BSP_PRV_PCLKGPTL_FREQ_400_MHZ / 16)
30 #define PLCKD_PRESCALER_12_5M          (BSP_PRV_PCLKGPTL_FREQ_400_MHZ / 32)
31 #define PLCKD_PRESCALER_6_25M          (BSP_PRV_PCLKGPTL_FREQ_400_MHZ / 64)
32 #define PLCKD_PRESCALER_3_125M         (BSP_PRV_PCLKGPTL_FREQ_400_MHZ / 128)
33 #define PLCKD_PRESCALER_1_5625M        (BSP_PRV_PCLKGPTL_FREQ_400_MHZ / 256)
34 
35 #ifndef TMR_DEV_INFO_CONFIG
36 #define TMR_DEV_INFO_CONFIG                     \
37     {                                           \
38         .maxfreq = 400000000,                   \
39         .minfreq = 1562500,                     \
40         .maxcnt  = 0XFFFFFFFF,                  \
41         .cntmode = HWTIMER_CNTMODE_UP,          \
42     }
43 #endif /* TIM_DEV_INFO_CONFIG */
44 
45 enum
46 {
47 #ifdef BSP_USING_TIM0
48     BSP_TIMER0_INDEX,
49 #endif
50 #ifdef BSP_USING_TIM1
51     BSP_TIMER1_INDEX,
52 #endif
53     BSP_TIMERS_NUM
54 };
55 
56 #define TIMER_DRV_INITIALIZER(num)      \
57     {                                   \
58         .name = "timer" #num,           \
59         .g_cfg = &g_timer##num##_cfg,   \
60         .g_ctrl = &g_timer##num##_ctrl, \
61         .g_timer = &g_timer##num,       \
62     }
63 
64 #ifdef __cplusplus
65 }
66 #endif
67 
68 #endif /* __TIMER_CONFIG_H__ */
69