HPM SDK
HPMicro Software Development Kit
hpm_gptmr_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_GPTMR_H
10 #define HPM_GPTMR_H
11 
12 typedef struct {
13  struct {
14  __RW uint32_t CR; /* 0x0: Control Register */
15  __RW uint32_t CMP[2]; /* 0x4 - 0x8: Comparator register 0 */
16  __RW uint32_t RLD; /* 0xC: Reload register */
17  __RW uint32_t CNTUPTVAL; /* 0x10: Counter update value register */
18  __R uint8_t RESERVED0[12]; /* 0x14 - 0x1F: Reserved */
19  __R uint32_t CAPPOS; /* 0x20: Capture rising edge register */
20  __R uint32_t CAPNEG; /* 0x24: Capture falling edge register */
21  __R uint32_t CAPPRD; /* 0x28: PWM period measure register */
22  __R uint32_t CAPDTY; /* 0x2C: PWM duty cycle measure register */
23  __R uint32_t CNT; /* 0x30: Counter */
24  __R uint8_t RESERVED1[12]; /* 0x34 - 0x3F: Reserved */
25  } CHANNEL[4];
26  __R uint8_t RESERVED0[256]; /* 0x100 - 0x1FF: Reserved */
27  __RW uint32_t SR; /* 0x200: Status register */
28  __RW uint32_t IRQEN; /* 0x204: Interrupt request enable register */
29  __RW uint32_t GCR; /* 0x208: Global control register */
30 } GPTMR_Type;
31 
32 
33 /* Bitfield definition for register of struct array CHANNEL: CR */
34 /*
35  * CNTUPT (WO)
36  *
37  * 1- update counter to new value as CNTUPTVAL
38  * This bit will be auto cleared after 1 cycle
39  */
40 #define GPTMR_CHANNEL_CR_CNTUPT_MASK (0x80000000UL)
41 #define GPTMR_CHANNEL_CR_CNTUPT_SHIFT (31U)
42 #define GPTMR_CHANNEL_CR_CNTUPT_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_CNTUPT_SHIFT) & GPTMR_CHANNEL_CR_CNTUPT_MASK)
43 #define GPTMR_CHANNEL_CR_CNTUPT_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_CNTUPT_MASK) >> GPTMR_CHANNEL_CR_CNTUPT_SHIFT)
44 
45 /*
46  * CNTRST (RW)
47  *
48  * 1- reset counter
49  */
50 #define GPTMR_CHANNEL_CR_CNTRST_MASK (0x4000U)
51 #define GPTMR_CHANNEL_CR_CNTRST_SHIFT (14U)
52 #define GPTMR_CHANNEL_CR_CNTRST_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_CNTRST_SHIFT) & GPTMR_CHANNEL_CR_CNTRST_MASK)
53 #define GPTMR_CHANNEL_CR_CNTRST_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_CNTRST_MASK) >> GPTMR_CHANNEL_CR_CNTRST_SHIFT)
54 
55 /*
56  * SYNCFLW (RW)
57  *
58  * 1- enable this channel to reset counter to reload(RLD) together with its previous channel.
59  * This bit is not valid for channel 0.
60  */
61 #define GPTMR_CHANNEL_CR_SYNCFLW_MASK (0x2000U)
62 #define GPTMR_CHANNEL_CR_SYNCFLW_SHIFT (13U)
63 #define GPTMR_CHANNEL_CR_SYNCFLW_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_SYNCFLW_SHIFT) & GPTMR_CHANNEL_CR_SYNCFLW_MASK)
64 #define GPTMR_CHANNEL_CR_SYNCFLW_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_SYNCFLW_MASK) >> GPTMR_CHANNEL_CR_SYNCFLW_SHIFT)
65 
66 /*
67  * SYNCIFEN (RW)
68  *
69  * 1- SYNCI is valid on its falling edge
70  */
71 #define GPTMR_CHANNEL_CR_SYNCIFEN_MASK (0x1000U)
72 #define GPTMR_CHANNEL_CR_SYNCIFEN_SHIFT (12U)
73 #define GPTMR_CHANNEL_CR_SYNCIFEN_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_SYNCIFEN_SHIFT) & GPTMR_CHANNEL_CR_SYNCIFEN_MASK)
74 #define GPTMR_CHANNEL_CR_SYNCIFEN_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_SYNCIFEN_MASK) >> GPTMR_CHANNEL_CR_SYNCIFEN_SHIFT)
75 
76 /*
77  * SYNCIREN (RW)
78  *
79  * 1- SYNCI is valid on its rising edge
80  */
81 #define GPTMR_CHANNEL_CR_SYNCIREN_MASK (0x800U)
82 #define GPTMR_CHANNEL_CR_SYNCIREN_SHIFT (11U)
83 #define GPTMR_CHANNEL_CR_SYNCIREN_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_SYNCIREN_SHIFT) & GPTMR_CHANNEL_CR_SYNCIREN_MASK)
84 #define GPTMR_CHANNEL_CR_SYNCIREN_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_SYNCIREN_MASK) >> GPTMR_CHANNEL_CR_SYNCIREN_SHIFT)
85 
86 /*
87  * CEN (RW)
88  *
89  * 1- counter enable
90  */
91 #define GPTMR_CHANNEL_CR_CEN_MASK (0x400U)
92 #define GPTMR_CHANNEL_CR_CEN_SHIFT (10U)
93 #define GPTMR_CHANNEL_CR_CEN_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_CEN_SHIFT) & GPTMR_CHANNEL_CR_CEN_MASK)
94 #define GPTMR_CHANNEL_CR_CEN_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_CEN_MASK) >> GPTMR_CHANNEL_CR_CEN_SHIFT)
95 
96 /*
97  * CMPINIT (RW)
98  *
99  * Output compare initial poliarity
100  * 1- The channel output initial level is high
101  * 0- The channel output initial level is low
102  * User should set this bit before set CMPEN to 1.
103  */
104 #define GPTMR_CHANNEL_CR_CMPINIT_MASK (0x200U)
105 #define GPTMR_CHANNEL_CR_CMPINIT_SHIFT (9U)
106 #define GPTMR_CHANNEL_CR_CMPINIT_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_CMPINIT_SHIFT) & GPTMR_CHANNEL_CR_CMPINIT_MASK)
107 #define GPTMR_CHANNEL_CR_CMPINIT_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_CMPINIT_MASK) >> GPTMR_CHANNEL_CR_CMPINIT_SHIFT)
108 
109 /*
110  * CMPEN (RW)
111  *
112  * 1- Enable the channel output compare function. The output signal can be generated per comparator (CMPx) settings.
113  */
114 #define GPTMR_CHANNEL_CR_CMPEN_MASK (0x100U)
115 #define GPTMR_CHANNEL_CR_CMPEN_SHIFT (8U)
116 #define GPTMR_CHANNEL_CR_CMPEN_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_CMPEN_SHIFT) & GPTMR_CHANNEL_CR_CMPEN_MASK)
117 #define GPTMR_CHANNEL_CR_CMPEN_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_CMPEN_MASK) >> GPTMR_CHANNEL_CR_CMPEN_SHIFT)
118 
119 /*
120  * DMASEL (RW)
121  *
122  * select one of DMA request:
123  * 00- CMP0 flag
124  * 01- CMP1 flag
125  * 10- Input signal toggle captured
126  * 11- RLD flag, counter reload;
127  */
128 #define GPTMR_CHANNEL_CR_DMASEL_MASK (0xC0U)
129 #define GPTMR_CHANNEL_CR_DMASEL_SHIFT (6U)
130 #define GPTMR_CHANNEL_CR_DMASEL_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_DMASEL_SHIFT) & GPTMR_CHANNEL_CR_DMASEL_MASK)
131 #define GPTMR_CHANNEL_CR_DMASEL_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_DMASEL_MASK) >> GPTMR_CHANNEL_CR_DMASEL_SHIFT)
132 
133 /*
134  * DMAEN (RW)
135  *
136  * 1- enable dma
137  */
138 #define GPTMR_CHANNEL_CR_DMAEN_MASK (0x20U)
139 #define GPTMR_CHANNEL_CR_DMAEN_SHIFT (5U)
140 #define GPTMR_CHANNEL_CR_DMAEN_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_DMAEN_SHIFT) & GPTMR_CHANNEL_CR_DMAEN_MASK)
141 #define GPTMR_CHANNEL_CR_DMAEN_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_DMAEN_MASK) >> GPTMR_CHANNEL_CR_DMAEN_SHIFT)
142 
143 /*
144  * SWSYNCIEN (RW)
145  *
146  * 1- enable software sync. When this bit is set, counter will reset to RLD when swsynct bit is set
147  */
148 #define GPTMR_CHANNEL_CR_SWSYNCIEN_MASK (0x10U)
149 #define GPTMR_CHANNEL_CR_SWSYNCIEN_SHIFT (4U)
150 #define GPTMR_CHANNEL_CR_SWSYNCIEN_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_SWSYNCIEN_SHIFT) & GPTMR_CHANNEL_CR_SWSYNCIEN_MASK)
151 #define GPTMR_CHANNEL_CR_SWSYNCIEN_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_SWSYNCIEN_MASK) >> GPTMR_CHANNEL_CR_SWSYNCIEN_SHIFT)
152 
153 /*
154  * DBGPAUSE (RW)
155  *
156  * 1- counter will pause if chip is in debug mode
157  */
158 #define GPTMR_CHANNEL_CR_DBGPAUSE_MASK (0x8U)
159 #define GPTMR_CHANNEL_CR_DBGPAUSE_SHIFT (3U)
160 #define GPTMR_CHANNEL_CR_DBGPAUSE_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_DBGPAUSE_SHIFT) & GPTMR_CHANNEL_CR_DBGPAUSE_MASK)
161 #define GPTMR_CHANNEL_CR_DBGPAUSE_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_DBGPAUSE_MASK) >> GPTMR_CHANNEL_CR_DBGPAUSE_SHIFT)
162 
163 /*
164  * CAPMODE (RW)
165  *
166  * This bitfield define the input capture mode
167  * 100: width measure mode, timer will calculate the input signal period and duty cycle
168  * 011: capture at both rising edge and falling edge
169  * 010: capture at falling edge
170  * 001: capture at rising edge
171  * 000: No capture
172  */
173 #define GPTMR_CHANNEL_CR_CAPMODE_MASK (0x7U)
174 #define GPTMR_CHANNEL_CR_CAPMODE_SHIFT (0U)
175 #define GPTMR_CHANNEL_CR_CAPMODE_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CR_CAPMODE_SHIFT) & GPTMR_CHANNEL_CR_CAPMODE_MASK)
176 #define GPTMR_CHANNEL_CR_CAPMODE_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CR_CAPMODE_MASK) >> GPTMR_CHANNEL_CR_CAPMODE_SHIFT)
177 
178 /* Bitfield definition for register of struct array CHANNEL: CMP0 */
179 /*
180  * CMP (RW)
181  *
182  * compare value 0
183  */
184 #define GPTMR_CHANNEL_CMP_CMP_MASK (0xFFFFFFFFUL)
185 #define GPTMR_CHANNEL_CMP_CMP_SHIFT (0U)
186 #define GPTMR_CHANNEL_CMP_CMP_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CMP_CMP_SHIFT) & GPTMR_CHANNEL_CMP_CMP_MASK)
187 #define GPTMR_CHANNEL_CMP_CMP_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CMP_CMP_MASK) >> GPTMR_CHANNEL_CMP_CMP_SHIFT)
188 
189 /* Bitfield definition for register of struct array CHANNEL: RLD */
190 /*
191  * RLD (RW)
192  *
193  * reload value
194  */
195 #define GPTMR_CHANNEL_RLD_RLD_MASK (0xFFFFFFFFUL)
196 #define GPTMR_CHANNEL_RLD_RLD_SHIFT (0U)
197 #define GPTMR_CHANNEL_RLD_RLD_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_RLD_RLD_SHIFT) & GPTMR_CHANNEL_RLD_RLD_MASK)
198 #define GPTMR_CHANNEL_RLD_RLD_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_RLD_RLD_MASK) >> GPTMR_CHANNEL_RLD_RLD_SHIFT)
199 
200 /* Bitfield definition for register of struct array CHANNEL: CNTUPTVAL */
201 /*
202  * CNTUPTVAL (RW)
203  *
204  * counter will be set to this value when software write cntupt bit in CR
205  */
206 #define GPTMR_CHANNEL_CNTUPTVAL_CNTUPTVAL_MASK (0xFFFFFFFFUL)
207 #define GPTMR_CHANNEL_CNTUPTVAL_CNTUPTVAL_SHIFT (0U)
208 #define GPTMR_CHANNEL_CNTUPTVAL_CNTUPTVAL_SET(x) (((uint32_t)(x) << GPTMR_CHANNEL_CNTUPTVAL_CNTUPTVAL_SHIFT) & GPTMR_CHANNEL_CNTUPTVAL_CNTUPTVAL_MASK)
209 #define GPTMR_CHANNEL_CNTUPTVAL_CNTUPTVAL_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CNTUPTVAL_CNTUPTVAL_MASK) >> GPTMR_CHANNEL_CNTUPTVAL_CNTUPTVAL_SHIFT)
210 
211 /* Bitfield definition for register of struct array CHANNEL: CAPPOS */
212 /*
213  * CAPPOS (RO)
214  *
215  * This register contains the counter value captured at input signal rising edge
216  */
217 #define GPTMR_CHANNEL_CAPPOS_CAPPOS_MASK (0xFFFFFFFFUL)
218 #define GPTMR_CHANNEL_CAPPOS_CAPPOS_SHIFT (0U)
219 #define GPTMR_CHANNEL_CAPPOS_CAPPOS_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CAPPOS_CAPPOS_MASK) >> GPTMR_CHANNEL_CAPPOS_CAPPOS_SHIFT)
220 
221 /* Bitfield definition for register of struct array CHANNEL: CAPNEG */
222 /*
223  * CAPNEG (RO)
224  *
225  * This register contains the counter value captured at input signal falling edge
226  */
227 #define GPTMR_CHANNEL_CAPNEG_CAPNEG_MASK (0xFFFFFFFFUL)
228 #define GPTMR_CHANNEL_CAPNEG_CAPNEG_SHIFT (0U)
229 #define GPTMR_CHANNEL_CAPNEG_CAPNEG_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CAPNEG_CAPNEG_MASK) >> GPTMR_CHANNEL_CAPNEG_CAPNEG_SHIFT)
230 
231 /* Bitfield definition for register of struct array CHANNEL: CAPPRD */
232 /*
233  * CAPPRD (RO)
234  *
235  * This register contains the input signal period when channel is configured to input capture measure mode.
236  */
237 #define GPTMR_CHANNEL_CAPPRD_CAPPRD_MASK (0xFFFFFFFFUL)
238 #define GPTMR_CHANNEL_CAPPRD_CAPPRD_SHIFT (0U)
239 #define GPTMR_CHANNEL_CAPPRD_CAPPRD_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CAPPRD_CAPPRD_MASK) >> GPTMR_CHANNEL_CAPPRD_CAPPRD_SHIFT)
240 
241 /* Bitfield definition for register of struct array CHANNEL: CAPDTY */
242 /*
243  * MEAS_HIGH (RO)
244  *
245  * This register contains the input signal duty cycle when channel is configured to input capture measure mode.
246  */
247 #define GPTMR_CHANNEL_CAPDTY_MEAS_HIGH_MASK (0xFFFFFFFFUL)
248 #define GPTMR_CHANNEL_CAPDTY_MEAS_HIGH_SHIFT (0U)
249 #define GPTMR_CHANNEL_CAPDTY_MEAS_HIGH_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CAPDTY_MEAS_HIGH_MASK) >> GPTMR_CHANNEL_CAPDTY_MEAS_HIGH_SHIFT)
250 
251 /* Bitfield definition for register of struct array CHANNEL: CNT */
252 /*
253  * COUNTER (RO)
254  *
255  * 32 bit counter value
256  */
257 #define GPTMR_CHANNEL_CNT_COUNTER_MASK (0xFFFFFFFFUL)
258 #define GPTMR_CHANNEL_CNT_COUNTER_SHIFT (0U)
259 #define GPTMR_CHANNEL_CNT_COUNTER_GET(x) (((uint32_t)(x) & GPTMR_CHANNEL_CNT_COUNTER_MASK) >> GPTMR_CHANNEL_CNT_COUNTER_SHIFT)
260 
261 /* Bitfield definition for register: SR */
262 /*
263  * CH3CMP1F (W1C)
264  *
265  * channel 3 compare value 1 match flag
266  */
267 #define GPTMR_SR_CH3CMP1F_MASK (0x8000U)
268 #define GPTMR_SR_CH3CMP1F_SHIFT (15U)
269 #define GPTMR_SR_CH3CMP1F_SET(x) (((uint32_t)(x) << GPTMR_SR_CH3CMP1F_SHIFT) & GPTMR_SR_CH3CMP1F_MASK)
270 #define GPTMR_SR_CH3CMP1F_GET(x) (((uint32_t)(x) & GPTMR_SR_CH3CMP1F_MASK) >> GPTMR_SR_CH3CMP1F_SHIFT)
271 
272 /*
273  * CH3CMP0F (W1C)
274  *
275  * channel 3 compare value 1 match flag
276  */
277 #define GPTMR_SR_CH3CMP0F_MASK (0x4000U)
278 #define GPTMR_SR_CH3CMP0F_SHIFT (14U)
279 #define GPTMR_SR_CH3CMP0F_SET(x) (((uint32_t)(x) << GPTMR_SR_CH3CMP0F_SHIFT) & GPTMR_SR_CH3CMP0F_MASK)
280 #define GPTMR_SR_CH3CMP0F_GET(x) (((uint32_t)(x) & GPTMR_SR_CH3CMP0F_MASK) >> GPTMR_SR_CH3CMP0F_SHIFT)
281 
282 /*
283  * CH3CAPF (W1C)
284  *
285  * channel 3 capture flag, the flag will be set at the valid capture edge per CAPMODE setting. If the capture channel is set to measure mode, the flag will be set at rising edge.
286  */
287 #define GPTMR_SR_CH3CAPF_MASK (0x2000U)
288 #define GPTMR_SR_CH3CAPF_SHIFT (13U)
289 #define GPTMR_SR_CH3CAPF_SET(x) (((uint32_t)(x) << GPTMR_SR_CH3CAPF_SHIFT) & GPTMR_SR_CH3CAPF_MASK)
290 #define GPTMR_SR_CH3CAPF_GET(x) (((uint32_t)(x) & GPTMR_SR_CH3CAPF_MASK) >> GPTMR_SR_CH3CAPF_SHIFT)
291 
292 /*
293  * CH3RLDF (W1C)
294  *
295  * channel 3 counter reload flag
296  */
297 #define GPTMR_SR_CH3RLDF_MASK (0x1000U)
298 #define GPTMR_SR_CH3RLDF_SHIFT (12U)
299 #define GPTMR_SR_CH3RLDF_SET(x) (((uint32_t)(x) << GPTMR_SR_CH3RLDF_SHIFT) & GPTMR_SR_CH3RLDF_MASK)
300 #define GPTMR_SR_CH3RLDF_GET(x) (((uint32_t)(x) & GPTMR_SR_CH3RLDF_MASK) >> GPTMR_SR_CH3RLDF_SHIFT)
301 
302 /*
303  * CH2CMP1F (W1C)
304  *
305  * channel 2 compare value 1 match flag
306  */
307 #define GPTMR_SR_CH2CMP1F_MASK (0x800U)
308 #define GPTMR_SR_CH2CMP1F_SHIFT (11U)
309 #define GPTMR_SR_CH2CMP1F_SET(x) (((uint32_t)(x) << GPTMR_SR_CH2CMP1F_SHIFT) & GPTMR_SR_CH2CMP1F_MASK)
310 #define GPTMR_SR_CH2CMP1F_GET(x) (((uint32_t)(x) & GPTMR_SR_CH2CMP1F_MASK) >> GPTMR_SR_CH2CMP1F_SHIFT)
311 
312 /*
313  * CH2CMP0F (W1C)
314  *
315  * channel 2 compare value 1 match flag
316  */
317 #define GPTMR_SR_CH2CMP0F_MASK (0x400U)
318 #define GPTMR_SR_CH2CMP0F_SHIFT (10U)
319 #define GPTMR_SR_CH2CMP0F_SET(x) (((uint32_t)(x) << GPTMR_SR_CH2CMP0F_SHIFT) & GPTMR_SR_CH2CMP0F_MASK)
320 #define GPTMR_SR_CH2CMP0F_GET(x) (((uint32_t)(x) & GPTMR_SR_CH2CMP0F_MASK) >> GPTMR_SR_CH2CMP0F_SHIFT)
321 
322 /*
323  * CH2CAPF (W1C)
324  *
325  * channel 2 capture flag, the flag will be set at the valid capture edge per CAPMODE setting. If the capture channel is set to measure mode, the flag will be set at rising edge.
326  */
327 #define GPTMR_SR_CH2CAPF_MASK (0x200U)
328 #define GPTMR_SR_CH2CAPF_SHIFT (9U)
329 #define GPTMR_SR_CH2CAPF_SET(x) (((uint32_t)(x) << GPTMR_SR_CH2CAPF_SHIFT) & GPTMR_SR_CH2CAPF_MASK)
330 #define GPTMR_SR_CH2CAPF_GET(x) (((uint32_t)(x) & GPTMR_SR_CH2CAPF_MASK) >> GPTMR_SR_CH2CAPF_SHIFT)
331 
332 /*
333  * CH2RLDF (W1C)
334  *
335  * channel 2 counter reload flag
336  */
337 #define GPTMR_SR_CH2RLDF_MASK (0x100U)
338 #define GPTMR_SR_CH2RLDF_SHIFT (8U)
339 #define GPTMR_SR_CH2RLDF_SET(x) (((uint32_t)(x) << GPTMR_SR_CH2RLDF_SHIFT) & GPTMR_SR_CH2RLDF_MASK)
340 #define GPTMR_SR_CH2RLDF_GET(x) (((uint32_t)(x) & GPTMR_SR_CH2RLDF_MASK) >> GPTMR_SR_CH2RLDF_SHIFT)
341 
342 /*
343  * CH1CMP1F (W1C)
344  *
345  * channel 1 compare value 1 match flag
346  */
347 #define GPTMR_SR_CH1CMP1F_MASK (0x80U)
348 #define GPTMR_SR_CH1CMP1F_SHIFT (7U)
349 #define GPTMR_SR_CH1CMP1F_SET(x) (((uint32_t)(x) << GPTMR_SR_CH1CMP1F_SHIFT) & GPTMR_SR_CH1CMP1F_MASK)
350 #define GPTMR_SR_CH1CMP1F_GET(x) (((uint32_t)(x) & GPTMR_SR_CH1CMP1F_MASK) >> GPTMR_SR_CH1CMP1F_SHIFT)
351 
352 /*
353  * CH1CMP0F (W1C)
354  *
355  * channel 1 compare value 1 match flag
356  */
357 #define GPTMR_SR_CH1CMP0F_MASK (0x40U)
358 #define GPTMR_SR_CH1CMP0F_SHIFT (6U)
359 #define GPTMR_SR_CH1CMP0F_SET(x) (((uint32_t)(x) << GPTMR_SR_CH1CMP0F_SHIFT) & GPTMR_SR_CH1CMP0F_MASK)
360 #define GPTMR_SR_CH1CMP0F_GET(x) (((uint32_t)(x) & GPTMR_SR_CH1CMP0F_MASK) >> GPTMR_SR_CH1CMP0F_SHIFT)
361 
362 /*
363  * CH1CAPF (W1C)
364  *
365  * channel 1 capture flag, the flag will be set at the valid capture edge per CAPMODE setting. If the capture channel is set to measure mode, the flag will be set at rising edge.
366  */
367 #define GPTMR_SR_CH1CAPF_MASK (0x20U)
368 #define GPTMR_SR_CH1CAPF_SHIFT (5U)
369 #define GPTMR_SR_CH1CAPF_SET(x) (((uint32_t)(x) << GPTMR_SR_CH1CAPF_SHIFT) & GPTMR_SR_CH1CAPF_MASK)
370 #define GPTMR_SR_CH1CAPF_GET(x) (((uint32_t)(x) & GPTMR_SR_CH1CAPF_MASK) >> GPTMR_SR_CH1CAPF_SHIFT)
371 
372 /*
373  * CH1RLDF (W1C)
374  *
375  * channel 1 counter reload flag
376  */
377 #define GPTMR_SR_CH1RLDF_MASK (0x10U)
378 #define GPTMR_SR_CH1RLDF_SHIFT (4U)
379 #define GPTMR_SR_CH1RLDF_SET(x) (((uint32_t)(x) << GPTMR_SR_CH1RLDF_SHIFT) & GPTMR_SR_CH1RLDF_MASK)
380 #define GPTMR_SR_CH1RLDF_GET(x) (((uint32_t)(x) & GPTMR_SR_CH1RLDF_MASK) >> GPTMR_SR_CH1RLDF_SHIFT)
381 
382 /*
383  * CH0CMP1F (W1C)
384  *
385  * channel 1 compare value 1 match flag
386  */
387 #define GPTMR_SR_CH0CMP1F_MASK (0x8U)
388 #define GPTMR_SR_CH0CMP1F_SHIFT (3U)
389 #define GPTMR_SR_CH0CMP1F_SET(x) (((uint32_t)(x) << GPTMR_SR_CH0CMP1F_SHIFT) & GPTMR_SR_CH0CMP1F_MASK)
390 #define GPTMR_SR_CH0CMP1F_GET(x) (((uint32_t)(x) & GPTMR_SR_CH0CMP1F_MASK) >> GPTMR_SR_CH0CMP1F_SHIFT)
391 
392 /*
393  * CH0CMP0F (W1C)
394  *
395  * channel 1 compare value 1 match flag
396  */
397 #define GPTMR_SR_CH0CMP0F_MASK (0x4U)
398 #define GPTMR_SR_CH0CMP0F_SHIFT (2U)
399 #define GPTMR_SR_CH0CMP0F_SET(x) (((uint32_t)(x) << GPTMR_SR_CH0CMP0F_SHIFT) & GPTMR_SR_CH0CMP0F_MASK)
400 #define GPTMR_SR_CH0CMP0F_GET(x) (((uint32_t)(x) & GPTMR_SR_CH0CMP0F_MASK) >> GPTMR_SR_CH0CMP0F_SHIFT)
401 
402 /*
403  * CH0CAPF (W1C)
404  *
405  * channel 1 capture flag, the flag will be set at the valid capture edge per CAPMODE setting. If the capture channel is set to measure mode, the flag will be set at rising edge.
406  */
407 #define GPTMR_SR_CH0CAPF_MASK (0x2U)
408 #define GPTMR_SR_CH0CAPF_SHIFT (1U)
409 #define GPTMR_SR_CH0CAPF_SET(x) (((uint32_t)(x) << GPTMR_SR_CH0CAPF_SHIFT) & GPTMR_SR_CH0CAPF_MASK)
410 #define GPTMR_SR_CH0CAPF_GET(x) (((uint32_t)(x) & GPTMR_SR_CH0CAPF_MASK) >> GPTMR_SR_CH0CAPF_SHIFT)
411 
412 /*
413  * CH0RLDF (W1C)
414  *
415  * channel 1 counter reload flag
416  */
417 #define GPTMR_SR_CH0RLDF_MASK (0x1U)
418 #define GPTMR_SR_CH0RLDF_SHIFT (0U)
419 #define GPTMR_SR_CH0RLDF_SET(x) (((uint32_t)(x) << GPTMR_SR_CH0RLDF_SHIFT) & GPTMR_SR_CH0RLDF_MASK)
420 #define GPTMR_SR_CH0RLDF_GET(x) (((uint32_t)(x) & GPTMR_SR_CH0RLDF_MASK) >> GPTMR_SR_CH0RLDF_SHIFT)
421 
422 /* Bitfield definition for register: IRQEN */
423 /*
424  * CH3CMP1EN (RW)
425  *
426  * 1- generate interrupt request when ch3cmp1f flag is set
427  */
428 #define GPTMR_IRQEN_CH3CMP1EN_MASK (0x8000U)
429 #define GPTMR_IRQEN_CH3CMP1EN_SHIFT (15U)
430 #define GPTMR_IRQEN_CH3CMP1EN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH3CMP1EN_SHIFT) & GPTMR_IRQEN_CH3CMP1EN_MASK)
431 #define GPTMR_IRQEN_CH3CMP1EN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH3CMP1EN_MASK) >> GPTMR_IRQEN_CH3CMP1EN_SHIFT)
432 
433 /*
434  * CH3CMP0EN (RW)
435  *
436  * 1- generate interrupt request when ch3cmp0f flag is set
437  */
438 #define GPTMR_IRQEN_CH3CMP0EN_MASK (0x4000U)
439 #define GPTMR_IRQEN_CH3CMP0EN_SHIFT (14U)
440 #define GPTMR_IRQEN_CH3CMP0EN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH3CMP0EN_SHIFT) & GPTMR_IRQEN_CH3CMP0EN_MASK)
441 #define GPTMR_IRQEN_CH3CMP0EN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH3CMP0EN_MASK) >> GPTMR_IRQEN_CH3CMP0EN_SHIFT)
442 
443 /*
444  * CH3CAPEN (RW)
445  *
446  * 1- generate interrupt request when ch3capf flag is set
447  */
448 #define GPTMR_IRQEN_CH3CAPEN_MASK (0x2000U)
449 #define GPTMR_IRQEN_CH3CAPEN_SHIFT (13U)
450 #define GPTMR_IRQEN_CH3CAPEN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH3CAPEN_SHIFT) & GPTMR_IRQEN_CH3CAPEN_MASK)
451 #define GPTMR_IRQEN_CH3CAPEN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH3CAPEN_MASK) >> GPTMR_IRQEN_CH3CAPEN_SHIFT)
452 
453 /*
454  * CH3RLDEN (RW)
455  *
456  * 1- generate interrupt request when ch3rldf flag is set
457  */
458 #define GPTMR_IRQEN_CH3RLDEN_MASK (0x1000U)
459 #define GPTMR_IRQEN_CH3RLDEN_SHIFT (12U)
460 #define GPTMR_IRQEN_CH3RLDEN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH3RLDEN_SHIFT) & GPTMR_IRQEN_CH3RLDEN_MASK)
461 #define GPTMR_IRQEN_CH3RLDEN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH3RLDEN_MASK) >> GPTMR_IRQEN_CH3RLDEN_SHIFT)
462 
463 /*
464  * CH2CMP1EN (RW)
465  *
466  * 1- generate interrupt request when ch2cmp1f flag is set
467  */
468 #define GPTMR_IRQEN_CH2CMP1EN_MASK (0x800U)
469 #define GPTMR_IRQEN_CH2CMP1EN_SHIFT (11U)
470 #define GPTMR_IRQEN_CH2CMP1EN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH2CMP1EN_SHIFT) & GPTMR_IRQEN_CH2CMP1EN_MASK)
471 #define GPTMR_IRQEN_CH2CMP1EN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH2CMP1EN_MASK) >> GPTMR_IRQEN_CH2CMP1EN_SHIFT)
472 
473 /*
474  * CH2CMP0EN (RW)
475  *
476  * 1- generate interrupt request when ch2cmp0f flag is set
477  */
478 #define GPTMR_IRQEN_CH2CMP0EN_MASK (0x400U)
479 #define GPTMR_IRQEN_CH2CMP0EN_SHIFT (10U)
480 #define GPTMR_IRQEN_CH2CMP0EN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH2CMP0EN_SHIFT) & GPTMR_IRQEN_CH2CMP0EN_MASK)
481 #define GPTMR_IRQEN_CH2CMP0EN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH2CMP0EN_MASK) >> GPTMR_IRQEN_CH2CMP0EN_SHIFT)
482 
483 /*
484  * CH2CAPEN (RW)
485  *
486  * 1- generate interrupt request when ch2capf flag is set
487  */
488 #define GPTMR_IRQEN_CH2CAPEN_MASK (0x200U)
489 #define GPTMR_IRQEN_CH2CAPEN_SHIFT (9U)
490 #define GPTMR_IRQEN_CH2CAPEN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH2CAPEN_SHIFT) & GPTMR_IRQEN_CH2CAPEN_MASK)
491 #define GPTMR_IRQEN_CH2CAPEN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH2CAPEN_MASK) >> GPTMR_IRQEN_CH2CAPEN_SHIFT)
492 
493 /*
494  * CH2RLDEN (RW)
495  *
496  * 1- generate interrupt request when ch2rldf flag is set
497  */
498 #define GPTMR_IRQEN_CH2RLDEN_MASK (0x100U)
499 #define GPTMR_IRQEN_CH2RLDEN_SHIFT (8U)
500 #define GPTMR_IRQEN_CH2RLDEN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH2RLDEN_SHIFT) & GPTMR_IRQEN_CH2RLDEN_MASK)
501 #define GPTMR_IRQEN_CH2RLDEN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH2RLDEN_MASK) >> GPTMR_IRQEN_CH2RLDEN_SHIFT)
502 
503 /*
504  * CH1CMP1EN (RW)
505  *
506  * 1- generate interrupt request when ch1cmp1f flag is set
507  */
508 #define GPTMR_IRQEN_CH1CMP1EN_MASK (0x80U)
509 #define GPTMR_IRQEN_CH1CMP1EN_SHIFT (7U)
510 #define GPTMR_IRQEN_CH1CMP1EN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH1CMP1EN_SHIFT) & GPTMR_IRQEN_CH1CMP1EN_MASK)
511 #define GPTMR_IRQEN_CH1CMP1EN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH1CMP1EN_MASK) >> GPTMR_IRQEN_CH1CMP1EN_SHIFT)
512 
513 /*
514  * CH1CMP0EN (RW)
515  *
516  * 1- generate interrupt request when ch1cmp0f flag is set
517  */
518 #define GPTMR_IRQEN_CH1CMP0EN_MASK (0x40U)
519 #define GPTMR_IRQEN_CH1CMP0EN_SHIFT (6U)
520 #define GPTMR_IRQEN_CH1CMP0EN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH1CMP0EN_SHIFT) & GPTMR_IRQEN_CH1CMP0EN_MASK)
521 #define GPTMR_IRQEN_CH1CMP0EN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH1CMP0EN_MASK) >> GPTMR_IRQEN_CH1CMP0EN_SHIFT)
522 
523 /*
524  * CH1CAPEN (RW)
525  *
526  * 1- generate interrupt request when ch1capf flag is set
527  */
528 #define GPTMR_IRQEN_CH1CAPEN_MASK (0x20U)
529 #define GPTMR_IRQEN_CH1CAPEN_SHIFT (5U)
530 #define GPTMR_IRQEN_CH1CAPEN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH1CAPEN_SHIFT) & GPTMR_IRQEN_CH1CAPEN_MASK)
531 #define GPTMR_IRQEN_CH1CAPEN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH1CAPEN_MASK) >> GPTMR_IRQEN_CH1CAPEN_SHIFT)
532 
533 /*
534  * CH1RLDEN (RW)
535  *
536  * 1- generate interrupt request when ch1rldf flag is set
537  */
538 #define GPTMR_IRQEN_CH1RLDEN_MASK (0x10U)
539 #define GPTMR_IRQEN_CH1RLDEN_SHIFT (4U)
540 #define GPTMR_IRQEN_CH1RLDEN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH1RLDEN_SHIFT) & GPTMR_IRQEN_CH1RLDEN_MASK)
541 #define GPTMR_IRQEN_CH1RLDEN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH1RLDEN_MASK) >> GPTMR_IRQEN_CH1RLDEN_SHIFT)
542 
543 /*
544  * CH0CMP1EN (RW)
545  *
546  * 1- generate interrupt request when ch0cmp1f flag is set
547  */
548 #define GPTMR_IRQEN_CH0CMP1EN_MASK (0x8U)
549 #define GPTMR_IRQEN_CH0CMP1EN_SHIFT (3U)
550 #define GPTMR_IRQEN_CH0CMP1EN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH0CMP1EN_SHIFT) & GPTMR_IRQEN_CH0CMP1EN_MASK)
551 #define GPTMR_IRQEN_CH0CMP1EN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH0CMP1EN_MASK) >> GPTMR_IRQEN_CH0CMP1EN_SHIFT)
552 
553 /*
554  * CH0CMP0EN (RW)
555  *
556  * 1- generate interrupt request when ch0cmp0f flag is set
557  */
558 #define GPTMR_IRQEN_CH0CMP0EN_MASK (0x4U)
559 #define GPTMR_IRQEN_CH0CMP0EN_SHIFT (2U)
560 #define GPTMR_IRQEN_CH0CMP0EN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH0CMP0EN_SHIFT) & GPTMR_IRQEN_CH0CMP0EN_MASK)
561 #define GPTMR_IRQEN_CH0CMP0EN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH0CMP0EN_MASK) >> GPTMR_IRQEN_CH0CMP0EN_SHIFT)
562 
563 /*
564  * CH0CAPEN (RW)
565  *
566  * 1- generate interrupt request when ch0capf flag is set
567  */
568 #define GPTMR_IRQEN_CH0CAPEN_MASK (0x2U)
569 #define GPTMR_IRQEN_CH0CAPEN_SHIFT (1U)
570 #define GPTMR_IRQEN_CH0CAPEN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH0CAPEN_SHIFT) & GPTMR_IRQEN_CH0CAPEN_MASK)
571 #define GPTMR_IRQEN_CH0CAPEN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH0CAPEN_MASK) >> GPTMR_IRQEN_CH0CAPEN_SHIFT)
572 
573 /*
574  * CH0RLDEN (RW)
575  *
576  * 1- generate interrupt request when ch0rldf flag is set
577  */
578 #define GPTMR_IRQEN_CH0RLDEN_MASK (0x1U)
579 #define GPTMR_IRQEN_CH0RLDEN_SHIFT (0U)
580 #define GPTMR_IRQEN_CH0RLDEN_SET(x) (((uint32_t)(x) << GPTMR_IRQEN_CH0RLDEN_SHIFT) & GPTMR_IRQEN_CH0RLDEN_MASK)
581 #define GPTMR_IRQEN_CH0RLDEN_GET(x) (((uint32_t)(x) & GPTMR_IRQEN_CH0RLDEN_MASK) >> GPTMR_IRQEN_CH0RLDEN_SHIFT)
582 
583 /* Bitfield definition for register: GCR */
584 /*
585  * SWSYNCT (RW)
586  *
587  * set this bitfield to trigger software counter sync event
588  */
589 #define GPTMR_GCR_SWSYNCT_MASK (0xFU)
590 #define GPTMR_GCR_SWSYNCT_SHIFT (0U)
591 #define GPTMR_GCR_SWSYNCT_SET(x) (((uint32_t)(x) << GPTMR_GCR_SWSYNCT_SHIFT) & GPTMR_GCR_SWSYNCT_MASK)
592 #define GPTMR_GCR_SWSYNCT_GET(x) (((uint32_t)(x) & GPTMR_GCR_SWSYNCT_MASK) >> GPTMR_GCR_SWSYNCT_SHIFT)
593 
594 
595 
596 /* CMP register group index macro definition */
597 #define GPTMR_CHANNEL_CMP_CMP0 (0UL)
598 #define GPTMR_CHANNEL_CMP_CMP1 (1UL)
599 
600 /* CHANNEL register group index macro definition */
601 #define GPTMR_CHANNEL_CH0 (0UL)
602 #define GPTMR_CHANNEL_CH1 (1UL)
603 #define GPTMR_CHANNEL_CH2 (2UL)
604 #define GPTMR_CHANNEL_CH3 (3UL)
605 
606 
607 #endif /* HPM_GPTMR_H */
Definition: hpm_gptmr_regs.h:12