1 /*
2  * Copyright (c) 2006-2023, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2018-12-11     zylx         first version
9  * 2023-08-21     Donocean     support all timers(except advanced timer)
10  */
11 
12 #ifndef __TIM_CONFIG_H__
13 #define __TIM_CONFIG_H__
14 
15 #include <rtthread.h>
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #ifndef TIM_DEV_INFO_CONFIG
22 #define TIM_DEV_INFO_CONFIG                     \
23     {                                           \
24         .maxfreq = 1000000,                     \
25         .minfreq = 3000,                        \
26         .maxcnt  = 0xFFFF,                      \
27         .cntmode = HWTIMER_CNTMODE_UP,          \
28     }
29 #endif /* TIM_DEV_INFO_CONFIG */
30 
31 #ifdef BSP_USING_TIM2
32 #ifndef TIM2_CONFIG
33 #define TIM2_CONFIG                                         \
34     {                                                       \
35        .tim_handle.Instance     = TIM2,                     \
36        .tim_irqn                = TIM2_IRQn,                \
37        .name                    = "timer2",                 \
38     }
39 #endif /* TIM2_CONFIG */
40 #endif /* BSP_USING_TIM2 */
41 
42 #ifdef BSP_USING_TIM3
43 #ifndef TIM3_CONFIG
44 #define TIM3_CONFIG                                         \
45     {                                                       \
46        .tim_handle.Instance     = TIM3,                     \
47        .tim_irqn                = TIM3_IRQn,                \
48        .name                    = "timer3",                 \
49     }
50 #endif /* TIM3_CONFIG */
51 #endif /* BSP_USING_TIM3 */
52 
53 #ifdef BSP_USING_TIM4
54 #ifndef TIM4_CONFIG
55 #define TIM4_CONFIG                                         \
56     {                                                       \
57        .tim_handle.Instance     = TIM4,                     \
58        .tim_irqn                = TIM4_IRQn,                \
59        .name                    = "timer4",                 \
60     }
61 #endif /* TIM4_CONFIG */
62 #endif /* BSP_USING_TIM4 */
63 
64 #ifdef BSP_USING_TIM5
65 #ifndef TIM5_CONFIG
66 #define TIM5_CONFIG                                         \
67     {                                                       \
68        .tim_handle.Instance     = TIM5,                     \
69        .tim_irqn                = TIM5_IRQn,                \
70        .name                    = "timer5",                 \
71     }
72 #endif /* TIM5_CONFIG */
73 #endif /* BSP_USING_TIM5 */
74 
75 #ifdef BSP_USING_TIM6
76 #ifndef TIM6_CONFIG
77 #if defined(STM32F412Cx) || defined(STM32F412Rx) || defined(STM32F412Vx) || defined(STM32F412Zx)
78 #define TIM6_CONFIG                                         \
79     {                                                       \
80        .tim_handle.Instance     = TIM6,                     \
81        .tim_irqn                = TIM6_IRQn,                \
82        .name                    = "timer6",                 \
83     }
84 #else
85 #define TIM6_CONFIG                                         \
86     {                                                       \
87        .tim_handle.Instance     = TIM6,                     \
88        .tim_irqn                = TIM6_DAC_IRQn,            \
89        .name                    = "timer6",                 \
90     }
91 #endif /* defined(STM32F412Cx) || defined(STM32F412Rx) || defined(STM32F412Vx) || defined(STM32F412Zx) */
92 #endif /* TIM6_CONFIG */
93 #endif /* BSP_USING_TIM6 */
94 
95 #ifdef BSP_USING_TIM7
96 #ifndef TIM7_CONFIG
97 #define TIM7_CONFIG                                         \
98     {                                                       \
99        .tim_handle.Instance     = TIM7,                     \
100        .tim_irqn                = TIM7_IRQn,                \
101        .name                    = "timer7",                 \
102     }
103 #endif /* TIM7_CONFIG */
104 #endif /* BSP_USING_TIM7 */
105 
106 #ifdef BSP_USING_TIM9
107 #ifndef TIM9_CONFIG
108 #define TIM9_CONFIG                                         \
109     {                                                       \
110        .tim_handle.Instance     = TIM9,                     \
111        .tim_irqn                = TIM1_BRK_TIM9_IRQn,       \
112        .name                    = "timer9",                 \
113     }
114 #endif /* TIM9_CONFIG */
115 #endif /* BSP_USING_TIM9 */
116 
117 #ifdef BSP_USING_TIM10
118 #ifndef TIM10_CONFIG
119 #define TIM10_CONFIG                                        \
120     {                                                       \
121        .tim_handle.Instance     = TIM10,                    \
122        .tim_irqn                = TIM1_UP_TIM10_IRQn,       \
123        .name                    = "timer10",                \
124     }
125 #endif /* TIM10_CONFIG */
126 #endif /* BSP_USING_TIM10 */
127 
128 #ifdef BSP_USING_TIM11
129 #ifndef TIM11_CONFIG
130 #define TIM11_CONFIG                                        \
131     {                                                       \
132        .tim_handle.Instance     = TIM11,                    \
133        .tim_irqn                = TIM1_TRG_COM_TIM11_IRQn,  \
134        .name                    = "timer11",                \
135     }
136 #endif /* TIM11_CONFIG */
137 #endif /* BSP_USING_TIM11 */
138 
139 #ifdef BSP_USING_TIM12
140 #ifndef TIM12_CONFIG
141 #define TIM12_CONFIG                                        \
142     {                                                       \
143        .tim_handle.Instance     = TIM12,                    \
144        .tim_irqn                = TIM8_BRK_TIM12_IRQn,      \
145        .name                    = "timer12",                \
146     }
147 #endif /* TIM12_CONFIG */
148 #endif /* BSP_USING_TIM12 */
149 
150 #ifdef BSP_USING_TIM13
151 #ifndef TIM13_CONFIG
152 #define TIM13_CONFIG                                        \
153     {                                                       \
154        .tim_handle.Instance     = TIM13,                    \
155        .tim_irqn                = TIM8_UP_TIM13_IRQn,       \
156        .name                    = "timer13",                \
157     }
158 #endif /* TIM13_CONFIG */
159 #endif /* BSP_USING_TIM13 */
160 
161 #ifdef BSP_USING_TIM14
162 #ifndef TIM14_CONFIG
163 #define TIM14_CONFIG                                        \
164     {                                                       \
165        .tim_handle.Instance     = TIM14,                    \
166        .tim_irqn                = TIM8_TRG_COM_TIM14_IRQn,  \
167        .name                    = "timer14",                \
168     }
169 #endif /* TIM14_CONFIG */
170 #endif /* BSP_USING_TIM14 */
171 
172 #ifdef __cplusplus
173 }
174 #endif
175 
176 #endif /* __TIM_CONFIG_H__ */
177