HPM SDK
HPMicro Software Development Kit
hpm_trgm_regs.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021-2024 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 
9 #ifndef HPM_TRGM_H
10 #define HPM_TRGM_H
11 
12 typedef struct {
13  __RW uint32_t FILTCFG[20]; /* 0x0 - 0x4C: Filter configure register */
14  __R uint8_t RESERVED0[176]; /* 0x50 - 0xFF: Reserved */
15  __RW uint32_t TRGOCFG[68]; /* 0x100 - 0x20C: Trigger manager output configure register */
16  __R uint8_t RESERVED1[240]; /* 0x210 - 0x2FF: Reserved */
17  __RW uint32_t DMACFG[4]; /* 0x300 - 0x30C: DMA request configure register */
18  __R uint8_t RESERVED2[240]; /* 0x310 - 0x3FF: Reserved */
19  __RW uint32_t GCR; /* 0x400: General Control Register */
20 } TRGM_Type;
21 
22 
23 /* Bitfield definition for register array: FILTCFG */
24 /*
25  * OUTINV (RW)
26  *
27  * 1- Filter will invert the output
28  * 0- Filter will not invert the output
29  */
30 #define TRGM_FILTCFG_OUTINV_MASK (0x10000UL)
31 #define TRGM_FILTCFG_OUTINV_SHIFT (16U)
32 #define TRGM_FILTCFG_OUTINV_SET(x) (((uint32_t)(x) << TRGM_FILTCFG_OUTINV_SHIFT) & TRGM_FILTCFG_OUTINV_MASK)
33 #define TRGM_FILTCFG_OUTINV_GET(x) (((uint32_t)(x) & TRGM_FILTCFG_OUTINV_MASK) >> TRGM_FILTCFG_OUTINV_SHIFT)
34 
35 /*
36  * MODE (RW)
37  *
38  * This bitfields defines the filter mode
39  * 000-bypass;
40  * 100-rapid change mode;
41  * 101-delay filter mode;
42  * 110-stalbe low mode;
43  * 111-stable high mode
44  */
45 #define TRGM_FILTCFG_MODE_MASK (0xE000U)
46 #define TRGM_FILTCFG_MODE_SHIFT (13U)
47 #define TRGM_FILTCFG_MODE_SET(x) (((uint32_t)(x) << TRGM_FILTCFG_MODE_SHIFT) & TRGM_FILTCFG_MODE_MASK)
48 #define TRGM_FILTCFG_MODE_GET(x) (((uint32_t)(x) & TRGM_FILTCFG_MODE_MASK) >> TRGM_FILTCFG_MODE_SHIFT)
49 
50 /*
51  * SYNCEN (RW)
52  *
53  * set to enable sychronization input signal with TRGM clock
54  */
55 #define TRGM_FILTCFG_SYNCEN_MASK (0x1000U)
56 #define TRGM_FILTCFG_SYNCEN_SHIFT (12U)
57 #define TRGM_FILTCFG_SYNCEN_SET(x) (((uint32_t)(x) << TRGM_FILTCFG_SYNCEN_SHIFT) & TRGM_FILTCFG_SYNCEN_MASK)
58 #define TRGM_FILTCFG_SYNCEN_GET(x) (((uint32_t)(x) & TRGM_FILTCFG_SYNCEN_MASK) >> TRGM_FILTCFG_SYNCEN_SHIFT)
59 
60 /*
61  * FILTLEN (RW)
62  *
63  * This bitfields defines the filter counter length.
64  */
65 #define TRGM_FILTCFG_FILTLEN_MASK (0xFFFU)
66 #define TRGM_FILTCFG_FILTLEN_SHIFT (0U)
67 #define TRGM_FILTCFG_FILTLEN_SET(x) (((uint32_t)(x) << TRGM_FILTCFG_FILTLEN_SHIFT) & TRGM_FILTCFG_FILTLEN_MASK)
68 #define TRGM_FILTCFG_FILTLEN_GET(x) (((uint32_t)(x) & TRGM_FILTCFG_FILTLEN_MASK) >> TRGM_FILTCFG_FILTLEN_SHIFT)
69 
70 /* Bitfield definition for register array: TRGOCFG */
71 /*
72  * OUTINV (RW)
73  *
74  * 1- Invert the output
75  */
76 #define TRGM_TRGOCFG_OUTINV_MASK (0x200U)
77 #define TRGM_TRGOCFG_OUTINV_SHIFT (9U)
78 #define TRGM_TRGOCFG_OUTINV_SET(x) (((uint32_t)(x) << TRGM_TRGOCFG_OUTINV_SHIFT) & TRGM_TRGOCFG_OUTINV_MASK)
79 #define TRGM_TRGOCFG_OUTINV_GET(x) (((uint32_t)(x) & TRGM_TRGOCFG_OUTINV_MASK) >> TRGM_TRGOCFG_OUTINV_SHIFT)
80 
81 /*
82  * FEDG2PEN (RW)
83  *
84  * 1- The selected input signal falling edge will be convert to an pulse on output.
85  */
86 #define TRGM_TRGOCFG_FEDG2PEN_MASK (0x100U)
87 #define TRGM_TRGOCFG_FEDG2PEN_SHIFT (8U)
88 #define TRGM_TRGOCFG_FEDG2PEN_SET(x) (((uint32_t)(x) << TRGM_TRGOCFG_FEDG2PEN_SHIFT) & TRGM_TRGOCFG_FEDG2PEN_MASK)
89 #define TRGM_TRGOCFG_FEDG2PEN_GET(x) (((uint32_t)(x) & TRGM_TRGOCFG_FEDG2PEN_MASK) >> TRGM_TRGOCFG_FEDG2PEN_SHIFT)
90 
91 /*
92  * REDG2PEN (RW)
93  *
94  * 1- The selected input signal rising edge will be convert to an pulse on output.
95  */
96 #define TRGM_TRGOCFG_REDG2PEN_MASK (0x80U)
97 #define TRGM_TRGOCFG_REDG2PEN_SHIFT (7U)
98 #define TRGM_TRGOCFG_REDG2PEN_SET(x) (((uint32_t)(x) << TRGM_TRGOCFG_REDG2PEN_SHIFT) & TRGM_TRGOCFG_REDG2PEN_MASK)
99 #define TRGM_TRGOCFG_REDG2PEN_GET(x) (((uint32_t)(x) & TRGM_TRGOCFG_REDG2PEN_MASK) >> TRGM_TRGOCFG_REDG2PEN_SHIFT)
100 
101 /*
102  * TRIGOSEL (RW)
103  *
104  * This bitfield selects one of the TRGM inputs as output.
105  */
106 #define TRGM_TRGOCFG_TRIGOSEL_MASK (0x7FU)
107 #define TRGM_TRGOCFG_TRIGOSEL_SHIFT (0U)
108 #define TRGM_TRGOCFG_TRIGOSEL_SET(x) (((uint32_t)(x) << TRGM_TRGOCFG_TRIGOSEL_SHIFT) & TRGM_TRGOCFG_TRIGOSEL_MASK)
109 #define TRGM_TRGOCFG_TRIGOSEL_GET(x) (((uint32_t)(x) & TRGM_TRGOCFG_TRIGOSEL_MASK) >> TRGM_TRGOCFG_TRIGOSEL_SHIFT)
110 
111 /* Bitfield definition for register array: DMACFG */
112 /*
113  * DMASRCSEL (RW)
114  *
115  * This field selects one of the DMA requests as the DMA request output.
116  */
117 #define TRGM_DMACFG_DMASRCSEL_MASK (0x1FU)
118 #define TRGM_DMACFG_DMASRCSEL_SHIFT (0U)
119 #define TRGM_DMACFG_DMASRCSEL_SET(x) (((uint32_t)(x) << TRGM_DMACFG_DMASRCSEL_SHIFT) & TRGM_DMACFG_DMASRCSEL_MASK)
120 #define TRGM_DMACFG_DMASRCSEL_GET(x) (((uint32_t)(x) & TRGM_DMACFG_DMASRCSEL_MASK) >> TRGM_DMACFG_DMASRCSEL_SHIFT)
121 
122 /* Bitfield definition for register: GCR */
123 /*
124  * TRGOPEN (RW)
125  *
126  * The bitfield enable the TRGM outputs.
127  */
128 #define TRGM_GCR_TRGOPEN_MASK (0xFFFU)
129 #define TRGM_GCR_TRGOPEN_SHIFT (0U)
130 #define TRGM_GCR_TRGOPEN_SET(x) (((uint32_t)(x) << TRGM_GCR_TRGOPEN_SHIFT) & TRGM_GCR_TRGOPEN_MASK)
131 #define TRGM_GCR_TRGOPEN_GET(x) (((uint32_t)(x) & TRGM_GCR_TRGOPEN_MASK) >> TRGM_GCR_TRGOPEN_SHIFT)
132 
133 
134 
135 /* FILTCFG register group index macro definition */
136 #define TRGM_FILTCFG_PWM_IN0 (0UL)
137 #define TRGM_FILTCFG_PWM_IN1 (1UL)
138 #define TRGM_FILTCFG_PWM_IN2 (2UL)
139 #define TRGM_FILTCFG_PWM_IN3 (3UL)
140 #define TRGM_FILTCFG_PWM_IN4 (4UL)
141 #define TRGM_FILTCFG_PWM_IN5 (5UL)
142 #define TRGM_FILTCFG_PWM_IN6 (6UL)
143 #define TRGM_FILTCFG_PWM_IN7 (7UL)
144 #define TRGM_FILTCFG_TRGM_IN0 (8UL)
145 #define TRGM_FILTCFG_TRGM_IN1 (9UL)
146 #define TRGM_FILTCFG_TRGM_IN2 (10UL)
147 #define TRGM_FILTCFG_TRGM_IN3 (11UL)
148 #define TRGM_FILTCFG_TRGM_IN4 (12UL)
149 #define TRGM_FILTCFG_TRGM_IN5 (13UL)
150 #define TRGM_FILTCFG_TRGM_IN6 (14UL)
151 #define TRGM_FILTCFG_TRGM_IN7 (15UL)
152 #define TRGM_FILTCFG_TRGM_IN8 (16UL)
153 #define TRGM_FILTCFG_TRGM_IN9 (17UL)
154 #define TRGM_FILTCFG_TRGM_IN10 (18UL)
155 #define TRGM_FILTCFG_TRGM_IN11 (19UL)
156 
157 /* TRGOCFG register group index macro definition */
158 #define TRGM_TRGOCFG_TRGM_OUT0 (0UL)
159 #define TRGM_TRGOCFG_TRGM_OUT1 (1UL)
160 #define TRGM_TRGOCFG_TRGM_OUT2 (2UL)
161 #define TRGM_TRGOCFG_TRGM_OUT3 (3UL)
162 #define TRGM_TRGOCFG_TRGM_OUT4 (4UL)
163 #define TRGM_TRGOCFG_TRGM_OUT5 (5UL)
164 #define TRGM_TRGOCFG_TRGM_OUT6 (6UL)
165 #define TRGM_TRGOCFG_TRGM_OUT7 (7UL)
166 #define TRGM_TRGOCFG_TRGM_OUT8 (8UL)
167 #define TRGM_TRGOCFG_TRGM_OUT9 (9UL)
168 #define TRGM_TRGOCFG_TRGM_OUT10 (10UL)
169 #define TRGM_TRGOCFG_TRGM_OUT11 (11UL)
170 #define TRGM_TRGOCFG_TRGM_OUTX0 (12UL)
171 #define TRGM_TRGOCFG_TRGM_OUTX1 (13UL)
172 #define TRGM_TRGOCFG_PWM_SYNCI (14UL)
173 #define TRGM_TRGOCFG_PWM_FRCI (15UL)
174 #define TRGM_TRGOCFG_PWM_FRCSYNCI (16UL)
175 #define TRGM_TRGOCFG_PWM_SHRLDSYNCI (17UL)
176 #define TRGM_TRGOCFG_PWM_FAULTI0 (18UL)
177 #define TRGM_TRGOCFG_PWM_FAULTI1 (19UL)
178 #define TRGM_TRGOCFG_PWM_FAULTI2 (20UL)
179 #define TRGM_TRGOCFG_PWM_FAULTI3 (21UL)
180 #define TRGM_TRGOCFG_PWM_IN8 (22UL)
181 #define TRGM_TRGOCFG_PWM_IN9 (23UL)
182 #define TRGM_TRGOCFG_PWM_IN10 (24UL)
183 #define TRGM_TRGOCFG_PWM_IN11 (25UL)
184 #define TRGM_TRGOCFG_PWM_IN12 (26UL)
185 #define TRGM_TRGOCFG_PWM_IN13 (27UL)
186 #define TRGM_TRGOCFG_PWM_IN14 (28UL)
187 #define TRGM_TRGOCFG_PWM_IN15 (29UL)
188 #define TRGM_TRGOCFG_PLA_IN0 (30UL)
189 #define TRGM_TRGOCFG_PLA_IN1 (31UL)
190 #define TRGM_TRGOCFG_PLA_IN2 (32UL)
191 #define TRGM_TRGOCFG_PLA_IN3 (33UL)
192 #define TRGM_TRGOCFG_PLA_IN4 (34UL)
193 #define TRGM_TRGOCFG_PLA_IN5 (35UL)
194 #define TRGM_TRGOCFG_PLA_IN6 (36UL)
195 #define TRGM_TRGOCFG_PLA_IN7 (37UL)
196 #define TRGM_TRGOCFG_QEI_A (38UL)
197 #define TRGM_TRGOCFG_QEI_B (39UL)
198 #define TRGM_TRGOCFG_QEI_Z (40UL)
199 #define TRGM_TRGOCFG_QEI_H (41UL)
200 #define TRGM_TRGOCFG_QEI_PAUSE (42UL)
201 #define TRGM_TRGOCFG_QEI_SNAPI (43UL)
202 #define TRGM_TRGOCFG_HALL_U (44UL)
203 #define TRGM_TRGOCFG_HALL_V (45UL)
204 #define TRGM_TRGOCFG_HALL_W (46UL)
205 #define TRGM_TRGOCFG_HALL_SNAPI (47UL)
206 #define TRGM_TRGOCFG_ADC0_STRGI (48UL)
207 #define TRGM_TRGOCFG_ADC1_STRGI (49UL)
208 #define TRGM_TRGOCFG_ADC2_STRGI (50UL)
209 #define TRGM_TRGOCFG_ADCX_PTRGI0A (52UL)
210 #define TRGM_TRGOCFG_ADCX_PTRGI0B (53UL)
211 #define TRGM_TRGOCFG_ADCX_PTRGI0C (54UL)
212 #define TRGM_TRGOCFG_GPTMRA_SYNCI (55UL)
213 #define TRGM_TRGOCFG_GPTMRA_IN2 (56UL)
214 #define TRGM_TRGOCFG_GPTMRA_IN3 (57UL)
215 #define TRGM_TRGOCFG_DAC_BUF_TRIG (58UL)
216 #define TRGM_TRGOCFG_DAC0_STEP_TRIG (59UL)
217 #define TRGM_TRGOCFG_DAC1_STEP_TRIG (60UL)
218 #define TRGM_TRGOCFG_CMPX_WIN (61UL)
219 #define TRGM_TRGOCFG_CAN_PTPC0_CAP (62UL)
220 #define TRGM_TRGOCFG_CAN_PTPC1_CAP (63UL)
221 #define TRGM_TRGOCFG_SDFM_EVT0 (64UL)
222 #define TRGM_TRGOCFG_SDFM_EVT1 (65UL)
223 #define TRGM_TRGOCFG_SDFM_EVT2 (66UL)
224 #define TRGM_TRGOCFG_SDFM_EVT3 (67UL)
225 
226 /* DMACFG register group index macro definition */
227 #define TRGM_DMACFG_0 (0UL)
228 #define TRGM_DMACFG_1 (1UL)
229 #define TRGM_DMACFG_2 (2UL)
230 #define TRGM_DMACFG_3 (3UL)
231 
232 
233 #endif /* HPM_TRGM_H */
Definition: hpm_trgm_regs.h:12