1 /*
2  * Copyright (c) 2020-2021, Bluetrum Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author            Notes
8  * 2021-01-28     greedyhao         first version
9  */
10 
11 #ifndef __PWM_CONFIG_H__
12 #define __PWM_CONFIG_H__
13 
14 #include <rtthread.h>
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 enum
21 {
22     PWMxCON,
23     PWMxPR,
24     PWMxxDUT,
25     PWMyyDUT,
26     PWMxCYCNUM,
27     PWMxSTEP,
28 };
29 
30 #define PWM_BASE    ((hal_sfr_t)&PWMCON)
31 
32 #ifdef BSP_USING_T3_PWM
33 #ifndef T3_PWM_CONFIG
34 #define T3_PWM_CONFIG                         \
35     {                                       \
36        .pwm_handle          = TIM3_BASE,    \
37        .name                = "t3pwm",       \
38        .channel             = 0             \
39     }
40 #endif /* T3_PWM_CONFIG */
41 #endif /* BSP_USING_T3_PWM */
42 
43 #ifdef BSP_USING_T4_PWM
44 #ifndef T4_PWM_CONFIG
45 #define T4_PWM_CONFIG                         \
46     {                                       \
47        .pwm_handle          = TIM4_BASE,    \
48        .name                = "t4pwm",       \
49        .channel             = 0             \
50     }
51 #endif /* T4_PWM_CONFIG */
52 #endif /* BSP_USING_T4_PWM */
53 
54 #ifdef BSP_USING_T5_PWM
55 #ifndef T5_PWM_CONFIG
56 #define T5_PWM_CONFIG                         \
57     {                                       \
58        .pwm_handle          = TIM5_BASE,    \
59        .name                = "t5pwm",       \
60        .channel             = 0             \
61     }
62 #endif /* T5_PWM_CONFIG */
63 #endif /* BSP_USING_T5_PWM */
64 
65 #ifdef BSP_USING_LPWM0
66 #ifndef LPWM0_CONFIG
67 #define LPWM0_CONFIG                        \
68     {                                       \
69        .pwm_handle          = PWM_BASE,     \
70        .name                = "lpwm0",      \
71        .channel             = 0             \
72     }
73 #endif /* LPWM0_CONFIG */
74 #endif /* BSP_USING_LPWM0 */
75 
76 #ifdef BSP_USING_LPWM1
77 #ifndef LPWM1_CONFIG
78 #define LPWM1_CONFIG                        \
79     {                                       \
80        .pwm_handle          = PWM_BASE,     \
81        .name                = "lpwm1",      \
82        .channel             = 0             \
83     }
84 #endif /* LPWM1_CONFIG */
85 #endif /* BSP_USING_LPWM1 */
86 
87 #ifdef BSP_USING_LPWM2
88 #ifndef LPWM2_CONFIG
89 #define LPWM2_CONFIG                        \
90     {                                       \
91        .pwm_handle          = PWM_BASE,     \
92        .name                = "lpwm2",      \
93        .channel             = 0             \
94     }
95 #endif /* LPWM2_CONFIG */
96 #endif /* BSP_USING_LPWM2 */
97 
98 #ifdef BSP_USING_LPWM3
99 #ifndef LPWM3_CONFIG
100 #define LPWM3_CONFIG                        \
101     {                                       \
102        .pwm_handle          = PWM_BASE,     \
103        .name                = "lpwm3",      \
104        .channel             = 0             \
105     }
106 #endif /* LPWM3_CONFIG */
107 #endif /* BSP_USING_LPWM3 */
108 
109 #ifdef __cplusplus
110 }
111 #endif
112 
113 #endif /* __PWM_CONFIG_H__ */
114