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