1 //-----------------------------------------------------------------------------
2 // Copyright 2012 (c) Silicon Laboratories Inc.
3 //
4 // SPDX-License-Identifier: Zlib
5 //
6 // This siHAL software is provided 'as-is', without any express or implied
7 // warranty. In no event will the authors be held liable for any damages
8 // arising from the use of this software.
9 //
10 // Permission is granted to anyone to use this software for any purpose,
11 // including commercial applications, and to alter it and redistribute it
12 // freely, subject to the following restrictions:
13 //
14 // 1. The origin of this software must not be misrepresented; you must not
15 //    claim that you wrote the original software. If you use this software
16 //    in a product, an acknowledgment in the product documentation would be
17 //    appreciated but is not required.
18 // 2. Altered source versions must be plainly marked as such, and must not be
19 //    misrepresented as being the original software.
20 // 3. This notice may not be removed or altered from any source distribution.
21 //-----------------------------------------------------------------------------
22 //
23 // Script: 0.61
24 // Version: 1
25 
26 #ifndef __SI32_LPTIMER_A_REGISTERS_H__
27 #define __SI32_LPTIMER_A_REGISTERS_H__
28 
29 #include <stdint.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 struct SI32_LPTIMER_A_CONTROL_Struct
36 {
37    union
38    {
39       struct
40       {
41          // Count Mode
42          volatile uint32_t CMD: 2;
43                   uint32_t reserved0: 2;
44          // External Trigger Source Select
45          volatile uint32_t EXTSEL: 4;
46          // Timer Set
47          volatile uint32_t TMRSET: 1;
48          // Timer Capture
49          volatile uint32_t TMRCAP: 1;
50          // Timer Comparator Set
51          volatile uint32_t CMPSET: 1;
52          // Timer Comparator Capture
53          volatile uint32_t CMPCAP: 1;
54                   uint32_t reserved1: 4;
55          // Timer Overflow Interrupt Enable
56          volatile uint32_t OVFIEN: 1;
57          // Timer Compare Event Interrupt Enable
58          volatile uint32_t CMPIEN: 1;
59          // Timer Overflow Toggle Mode
60          volatile uint32_t OVFTMD: 1;
61          // Timer Compare Event Toggle Mode
62          volatile uint32_t CMPTMD: 1;
63                   uint32_t reserved2: 4;
64          // Timer Compare Event Reset Enable
65          volatile uint32_t CMPRSTEN: 1;
66                   uint32_t reserved3: 5;
67          // Low Power Timer Debug Mode
68          volatile uint32_t DBGMD: 1;
69          // Timer Run Control and Compare Threshold Enable
70          volatile uint32_t RUN: 1;
71       };
72       volatile uint32_t U32;
73    };
74 };
75 
76 #define SI32_LPTIMER_A_CONTROL_CMD_MASK  0x00000003
77 #define SI32_LPTIMER_A_CONTROL_CMD_SHIFT  0
78 // The timer is free running mode on the RTC0 timer clock (RTC0TCLK).
79 #define SI32_LPTIMER_A_CONTROL_CMD_FREE_VALUE  0
80 #define SI32_LPTIMER_A_CONTROL_CMD_FREE_U32 \
81    (SI32_LPTIMER_A_CONTROL_CMD_FREE_VALUE << SI32_LPTIMER_A_CONTROL_CMD_SHIFT)
82 // The timer is incremented on the rising edges of the selected external trigger
83 // (LPTnTx).
84 #define SI32_LPTIMER_A_CONTROL_CMD_RISING_EDGE_VALUE  1
85 #define SI32_LPTIMER_A_CONTROL_CMD_RISING_EDGE_U32 \
86    (SI32_LPTIMER_A_CONTROL_CMD_RISING_EDGE_VALUE << SI32_LPTIMER_A_CONTROL_CMD_SHIFT)
87 // The timer is incremented on the falling edges of the selected external trigger
88 // (LPTnTx).
89 #define SI32_LPTIMER_A_CONTROL_CMD_FALLING_EDGE_VALUE  2
90 #define SI32_LPTIMER_A_CONTROL_CMD_FALLING_EDGE_U32 \
91    (SI32_LPTIMER_A_CONTROL_CMD_FALLING_EDGE_VALUE << SI32_LPTIMER_A_CONTROL_CMD_SHIFT)
92 // The timer is incremented on both edges of the selected external trigger
93 // (LPTnTx).
94 #define SI32_LPTIMER_A_CONTROL_CMD_ANY_EDGE_VALUE  3
95 #define SI32_LPTIMER_A_CONTROL_CMD_ANY_EDGE_U32 \
96    (SI32_LPTIMER_A_CONTROL_CMD_ANY_EDGE_VALUE << SI32_LPTIMER_A_CONTROL_CMD_SHIFT)
97 
98 #define SI32_LPTIMER_A_CONTROL_EXTSEL_MASK  0x000000F0
99 #define SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT  4
100 // Select external trigger LPTnT0.
101 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT0_VALUE  0
102 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT0_U32 \
103    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT0_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
104 // Select external trigger LPTnT1.
105 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT1_VALUE  1
106 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT1_U32 \
107    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT1_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
108 // Select external trigger LPTnT2.
109 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT2_VALUE  2
110 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT2_U32 \
111    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT2_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
112 // Select external trigger LPTnT3.
113 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT3_VALUE  3
114 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT3_U32 \
115    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT3_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
116 // Select external trigger LPTnT4.
117 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT4_VALUE  4
118 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT4_U32 \
119    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT4_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
120 // Select external trigger LPTnT5.
121 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT5_VALUE  5
122 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT5_U32 \
123    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT5_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
124 // Select external trigger LPTnT6.
125 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT6_VALUE  6
126 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT6_U32 \
127    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT6_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
128 // Select external trigger LPTnT7.
129 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT7_VALUE  7
130 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT7_U32 \
131    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT7_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
132 // Select external trigger LPTnT8.
133 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT8_VALUE  8
134 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT8_U32 \
135    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT8_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
136 // Select external trigger LPTnT9.
137 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT9_VALUE  9
138 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT9_U32 \
139    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT9_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
140 // Select external trigger LPTnT10.
141 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT10_VALUE  10
142 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT10_U32 \
143    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT10_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
144 // Select external trigger LPTnT11.
145 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT11_VALUE  11
146 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT11_U32 \
147    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT11_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
148 // Select external trigger LPTnT12.
149 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT12_VALUE  12
150 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT12_U32 \
151    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT12_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
152 // Select external trigger LPTnT13.
153 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT13_VALUE  13
154 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT13_U32 \
155    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT13_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
156 // Select external trigger LPTnT14.
157 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT14_VALUE  14
158 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT14_U32 \
159    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT14_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
160 // Select external trigger LPTnT15.
161 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT15_VALUE  15
162 #define SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT15_U32 \
163    (SI32_LPTIMER_A_CONTROL_EXTSEL_LPTNT15_VALUE << SI32_LPTIMER_A_CONTROL_EXTSEL_SHIFT)
164 
165 #define SI32_LPTIMER_A_CONTROL_TMRSET_MASK  0x00000100
166 #define SI32_LPTIMER_A_CONTROL_TMRSET_SHIFT  8
167 // Writing a 1 to TMRSET initiates a copy of the value from the DATA register into
168 // the internal timer register. This field is automatically cleared by hardware
169 // when the copy is complete and does not need to be cleared by software.
170 #define SI32_LPTIMER_A_CONTROL_TMRSET_SET_VALUE  1
171 #define SI32_LPTIMER_A_CONTROL_TMRSET_SET_U32 \
172    (SI32_LPTIMER_A_CONTROL_TMRSET_SET_VALUE << SI32_LPTIMER_A_CONTROL_TMRSET_SHIFT)
173 
174 #define SI32_LPTIMER_A_CONTROL_TMRCAP_MASK  0x00000200
175 #define SI32_LPTIMER_A_CONTROL_TMRCAP_SHIFT  9
176 // Writing a 1 to TMRCAP initiates a read of internal timer register into the DATA
177 // register. This field is automatically cleared by hardware when the operation
178 // completes and does not need to be cleared by software.
179 #define SI32_LPTIMER_A_CONTROL_TMRCAP_SET_VALUE  1
180 #define SI32_LPTIMER_A_CONTROL_TMRCAP_SET_U32 \
181    (SI32_LPTIMER_A_CONTROL_TMRCAP_SET_VALUE << SI32_LPTIMER_A_CONTROL_TMRCAP_SHIFT)
182 
183 #define SI32_LPTIMER_A_CONTROL_CMPSET_MASK  0x00000400
184 #define SI32_LPTIMER_A_CONTROL_CMPSET_SHIFT  10
185 // Writing a 1 to CMPSET initiates a copy of the value in DATA into the internal
186 // timer comparator register. This field is automatically cleared by hardware when
187 // the copy is complete and does not need to be cleared by software.
188 #define SI32_LPTIMER_A_CONTROL_CMPSET_SET_VALUE  1
189 #define SI32_LPTIMER_A_CONTROL_CMPSET_SET_U32 \
190    (SI32_LPTIMER_A_CONTROL_CMPSET_SET_VALUE << SI32_LPTIMER_A_CONTROL_CMPSET_SHIFT)
191 
192 #define SI32_LPTIMER_A_CONTROL_CMPCAP_MASK  0x00000800
193 #define SI32_LPTIMER_A_CONTROL_CMPCAP_SHIFT  11
194 // Writing a 1 to CMPCAP initiates a read of the internal comparator register into
195 // the DATA register. This field is automatically cleared by hardware when the
196 // operation completes and does not need to be cleared by software.
197 #define SI32_LPTIMER_A_CONTROL_CMPCAP_SET_VALUE  1
198 #define SI32_LPTIMER_A_CONTROL_CMPCAP_SET_U32 \
199    (SI32_LPTIMER_A_CONTROL_CMPCAP_SET_VALUE << SI32_LPTIMER_A_CONTROL_CMPCAP_SHIFT)
200 
201 #define SI32_LPTIMER_A_CONTROL_OVFIEN_MASK  0x00010000
202 #define SI32_LPTIMER_A_CONTROL_OVFIEN_SHIFT  16
203 // Disable the timer overflow interrupt.
204 #define SI32_LPTIMER_A_CONTROL_OVFIEN_DISABLED_VALUE  0
205 #define SI32_LPTIMER_A_CONTROL_OVFIEN_DISABLED_U32 \
206    (SI32_LPTIMER_A_CONTROL_OVFIEN_DISABLED_VALUE << SI32_LPTIMER_A_CONTROL_OVFIEN_SHIFT)
207 // Enable the timer overflow interrupt.
208 #define SI32_LPTIMER_A_CONTROL_OVFIEN_ENABLED_VALUE  1
209 #define SI32_LPTIMER_A_CONTROL_OVFIEN_ENABLED_U32 \
210    (SI32_LPTIMER_A_CONTROL_OVFIEN_ENABLED_VALUE << SI32_LPTIMER_A_CONTROL_OVFIEN_SHIFT)
211 
212 #define SI32_LPTIMER_A_CONTROL_CMPIEN_MASK  0x00020000
213 #define SI32_LPTIMER_A_CONTROL_CMPIEN_SHIFT  17
214 // Disable the timer compare event interrupt.
215 #define SI32_LPTIMER_A_CONTROL_CMPIEN_DISABLED_VALUE  0
216 #define SI32_LPTIMER_A_CONTROL_CMPIEN_DISABLED_U32 \
217    (SI32_LPTIMER_A_CONTROL_CMPIEN_DISABLED_VALUE << SI32_LPTIMER_A_CONTROL_CMPIEN_SHIFT)
218 // Enable the timer compare event interrupt.
219 #define SI32_LPTIMER_A_CONTROL_CMPIEN_ENABLED_VALUE  1
220 #define SI32_LPTIMER_A_CONTROL_CMPIEN_ENABLED_U32 \
221    (SI32_LPTIMER_A_CONTROL_CMPIEN_ENABLED_VALUE << SI32_LPTIMER_A_CONTROL_CMPIEN_SHIFT)
222 
223 #define SI32_LPTIMER_A_CONTROL_OVFTMD_MASK  0x00040000
224 #define SI32_LPTIMER_A_CONTROL_OVFTMD_SHIFT  18
225 // Timer overflows do not toggle the Low Power Timer output.
226 #define SI32_LPTIMER_A_CONTROL_OVFTMD_DISABLED_VALUE  0
227 #define SI32_LPTIMER_A_CONTROL_OVFTMD_DISABLED_U32 \
228    (SI32_LPTIMER_A_CONTROL_OVFTMD_DISABLED_VALUE << SI32_LPTIMER_A_CONTROL_OVFTMD_SHIFT)
229 // Timer overflows toggle the Low Power Timer output.
230 #define SI32_LPTIMER_A_CONTROL_OVFTMD_ENABLED_VALUE  1
231 #define SI32_LPTIMER_A_CONTROL_OVFTMD_ENABLED_U32 \
232    (SI32_LPTIMER_A_CONTROL_OVFTMD_ENABLED_VALUE << SI32_LPTIMER_A_CONTROL_OVFTMD_SHIFT)
233 
234 #define SI32_LPTIMER_A_CONTROL_CMPTMD_MASK  0x00080000
235 #define SI32_LPTIMER_A_CONTROL_CMPTMD_SHIFT  19
236 // Timer compare events do not toggle the Low Power Timer output.
237 #define SI32_LPTIMER_A_CONTROL_CMPTMD_DISABLED_VALUE  0
238 #define SI32_LPTIMER_A_CONTROL_CMPTMD_DISABLED_U32 \
239    (SI32_LPTIMER_A_CONTROL_CMPTMD_DISABLED_VALUE << SI32_LPTIMER_A_CONTROL_CMPTMD_SHIFT)
240 // Timer compare events toggle the Low Power Timer output.
241 #define SI32_LPTIMER_A_CONTROL_CMPTMD_ENABLED_VALUE  1
242 #define SI32_LPTIMER_A_CONTROL_CMPTMD_ENABLED_U32 \
243    (SI32_LPTIMER_A_CONTROL_CMPTMD_ENABLED_VALUE << SI32_LPTIMER_A_CONTROL_CMPTMD_SHIFT)
244 
245 #define SI32_LPTIMER_A_CONTROL_CMPRSTEN_MASK  0x01000000
246 #define SI32_LPTIMER_A_CONTROL_CMPRSTEN_SHIFT  24
247 // Timer compare events do not reset the timer.
248 #define SI32_LPTIMER_A_CONTROL_CMPRSTEN_DISABLED_VALUE  0
249 #define SI32_LPTIMER_A_CONTROL_CMPRSTEN_DISABLED_U32 \
250    (SI32_LPTIMER_A_CONTROL_CMPRSTEN_DISABLED_VALUE << SI32_LPTIMER_A_CONTROL_CMPRSTEN_SHIFT)
251 // Timer compare events reset the timer.
252 #define SI32_LPTIMER_A_CONTROL_CMPRSTEN_ENABLED_VALUE  1
253 #define SI32_LPTIMER_A_CONTROL_CMPRSTEN_ENABLED_U32 \
254    (SI32_LPTIMER_A_CONTROL_CMPRSTEN_ENABLED_VALUE << SI32_LPTIMER_A_CONTROL_CMPRSTEN_SHIFT)
255 
256 #define SI32_LPTIMER_A_CONTROL_DBGMD_MASK  0x40000000
257 #define SI32_LPTIMER_A_CONTROL_DBGMD_SHIFT  30
258 // The Low Power Timer module will continue to operate while the core is halted in
259 // debug mode.
260 #define SI32_LPTIMER_A_CONTROL_DBGMD_RUN_VALUE  0
261 #define SI32_LPTIMER_A_CONTROL_DBGMD_RUN_U32 \
262    (SI32_LPTIMER_A_CONTROL_DBGMD_RUN_VALUE << SI32_LPTIMER_A_CONTROL_DBGMD_SHIFT)
263 // A debug breakpoint will cause the Low Power Timer module to halt.
264 #define SI32_LPTIMER_A_CONTROL_DBGMD_HALT_VALUE  1
265 #define SI32_LPTIMER_A_CONTROL_DBGMD_HALT_U32 \
266    (SI32_LPTIMER_A_CONTROL_DBGMD_HALT_VALUE << SI32_LPTIMER_A_CONTROL_DBGMD_SHIFT)
267 
268 #define SI32_LPTIMER_A_CONTROL_RUN_MASK  0x80000000
269 #define SI32_LPTIMER_A_CONTROL_RUN_SHIFT  31
270 // Stop the timer and disable the compare threshold.
271 #define SI32_LPTIMER_A_CONTROL_RUN_STOP_VALUE  0U
272 #define SI32_LPTIMER_A_CONTROL_RUN_STOP_U32 \
273    (SI32_LPTIMER_A_CONTROL_RUN_STOP_VALUE << SI32_LPTIMER_A_CONTROL_RUN_SHIFT)
274 // Start the timer running and enable the compare threshold.
275 #define SI32_LPTIMER_A_CONTROL_RUN_START_VALUE  1U
276 #define SI32_LPTIMER_A_CONTROL_RUN_START_U32 \
277    (SI32_LPTIMER_A_CONTROL_RUN_START_VALUE << SI32_LPTIMER_A_CONTROL_RUN_SHIFT)
278 
279 
280 
281 struct SI32_LPTIMER_A_DATA_Struct
282 {
283    union
284    {
285       struct
286       {
287          // Timer and Comparator Data
288          volatile uint16_t DATA_BITS;
289                   uint32_t reserved0: 16;
290       };
291       volatile uint32_t U32;
292    };
293 };
294 
295 #define SI32_LPTIMER_A_DATA_DATA_MASK  0x0000FFFF
296 #define SI32_LPTIMER_A_DATA_DATA_SHIFT  0
297 
298 
299 
300 struct SI32_LPTIMER_A_STATUS_Struct
301 {
302    union
303    {
304       struct
305       {
306          // Timer Overflow Interrupt Flag
307          volatile uint32_t OVFI: 1;
308          // Timer Compare Event Interrupt Flag
309          volatile uint32_t CMPI: 1;
310                   uint32_t reserved0: 30;
311       };
312       volatile uint32_t U32;
313    };
314 };
315 
316 #define SI32_LPTIMER_A_STATUS_OVFI_MASK  0x00000001
317 #define SI32_LPTIMER_A_STATUS_OVFI_SHIFT  0
318 // A timer overflow has not occurred.
319 #define SI32_LPTIMER_A_STATUS_OVFI_NOT_SET_VALUE  0
320 #define SI32_LPTIMER_A_STATUS_OVFI_NOT_SET_U32 \
321    (SI32_LPTIMER_A_STATUS_OVFI_NOT_SET_VALUE << SI32_LPTIMER_A_STATUS_OVFI_SHIFT)
322 // A timer overflow occurred.
323 #define SI32_LPTIMER_A_STATUS_OVFI_SET_VALUE  1
324 #define SI32_LPTIMER_A_STATUS_OVFI_SET_U32 \
325    (SI32_LPTIMER_A_STATUS_OVFI_SET_VALUE << SI32_LPTIMER_A_STATUS_OVFI_SHIFT)
326 
327 #define SI32_LPTIMER_A_STATUS_CMPI_MASK  0x00000002
328 #define SI32_LPTIMER_A_STATUS_CMPI_SHIFT  1
329 // A timer compare event has not occurred.
330 #define SI32_LPTIMER_A_STATUS_CMPI_NOT_SET_VALUE  0
331 #define SI32_LPTIMER_A_STATUS_CMPI_NOT_SET_U32 \
332    (SI32_LPTIMER_A_STATUS_CMPI_NOT_SET_VALUE << SI32_LPTIMER_A_STATUS_CMPI_SHIFT)
333 // A timer compare event occurred.
334 #define SI32_LPTIMER_A_STATUS_CMPI_SET_VALUE  1
335 #define SI32_LPTIMER_A_STATUS_CMPI_SET_U32 \
336    (SI32_LPTIMER_A_STATUS_CMPI_SET_VALUE << SI32_LPTIMER_A_STATUS_CMPI_SHIFT)
337 
338 
339 
340 typedef struct SI32_LPTIMER_A_Struct
341 {
342    struct SI32_LPTIMER_A_CONTROL_Struct            CONTROL        ; // Base Address + 0x0
343    volatile uint32_t                               CONTROL_SET;
344    volatile uint32_t                               CONTROL_CLR;
345    uint32_t                                        reserved0;
346    struct SI32_LPTIMER_A_DATA_Struct               DATA           ; // Base Address + 0x10
347    uint32_t                                        reserved1;
348    uint32_t                                        reserved2;
349    uint32_t                                        reserved3;
350    struct SI32_LPTIMER_A_STATUS_Struct             STATUS         ; // Base Address + 0x20
351    volatile uint32_t                               STATUS_SET;
352    volatile uint32_t                               STATUS_CLR;
353    uint32_t                                        reserved4;
354 } SI32_LPTIMER_A_Type;
355 
356 #ifdef __cplusplus
357 }
358 #endif
359 
360 #endif // __SI32_LPTIMER_A_REGISTERS_H__
361 
362 //-eof--------------------------------------------------------------------------
363 
364