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 <drv_config.h>
16 #include "hal_data.h"
17 
18 #ifdef __cplusplus
19 extern "C"
20 {
21 #endif
22 
23 #define PLCKD_PRESCALER_MAX_SELECT     7
24 
25 /* RA6M3: Frequency ratio: PCLKA:PCLKD = 1:N (N = 1/2/4/8/16/32/64) */
26 #define PLCKD_PRESCALER_120M           (BSP_FEATURE_GPT_ODC_FREQ_MAX)
27 #define PLCKD_PRESCALER_60M            (BSP_FEATURE_GPT_ODC_FREQ_MAX / 2)
28 #define PLCKD_PRESCALER_30M            (BSP_FEATURE_GPT_ODC_FREQ_MAX / 4)
29 #define PLCKD_PRESCALER_15M            (BSP_FEATURE_GPT_ODC_FREQ_MAX / 8)
30 #define PLCKD_PRESCALER_7_5M           (BSP_FEATURE_GPT_ODC_FREQ_MAX / 16)
31 #define PLCKD_PRESCALER_3_75M          (BSP_FEATURE_GPT_ODC_FREQ_MAX / 32)
32 #define PLCKD_PRESCALER_1_875M         (BSP_FEATURE_GPT_ODC_FREQ_MAX / 64)
33 
34 #ifndef TMR_DEV_INFO_CONFIG
35 #define TMR_DEV_INFO_CONFIG                     \
36     {                                           \
37         .maxfreq = 120000000,                   \
38         .minfreq = 1875000,                     \
39         .maxcnt  = 0XFFFFFFFF,                  \
40         .cntmode = HWTIMER_CNTMODE_UP,          \
41     }
42 #endif /* TIM_DEV_INFO_CONFIG */
43 
44 enum
45 {
46 #ifdef BSP_USING_TIM0
47     BSP_TIMER0_INDEX,
48 #endif
49 #ifdef BSP_USING_TIM1
50     BSP_TIMER1_INDEX,
51 #endif
52     BSP_TIMERS_NUM
53 };
54 
55 #define TIMER_DRV_INITIALIZER(num)      \
56     {                                   \
57         .name = "timer" #num,           \
58         .g_cfg = &g_timer##num##_cfg,   \
59         .g_ctrl = &g_timer##num##_ctrl, \
60         .g_timer = &g_timer##num,       \
61     }
62 
63 #ifdef __cplusplus
64 }
65 #endif
66 
67 #endif /* __TIMER_CONFIG_H__ */
68