1 //-----------------------------------------------------------------------------
2 // Copyright 2013 (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.62
24 // Version: 1
25 
26 #ifndef __SI32_LPTIMER_B_REGISTERS_H__
27 #define __SI32_LPTIMER_B_REGISTERS_H__
28 
29 #include <stdint.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 struct SI32_LPTIMER_B_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          // High Speed Timer Access Mode Enable
51          volatile uint32_t HSMDEN: 1;
52          // Timer Compare 0 Threshold Enable
53          volatile uint32_t CMP0EN: 1;
54          // Timer Compare 1 Threshold Enable
55          volatile uint32_t CMP1EN: 1;
56          // Output Enable
57          volatile uint32_t OUTEN: 1;
58                   uint32_t reserved1: 2;
59          // Timer Overflow Interrupt Enable
60          volatile uint32_t OVFIEN: 1;
61          // Timer Compare 0 Event Interrupt Enable
62          volatile uint32_t CMP0IEN: 1;
63          // Timer Overflow Output Enable
64          volatile uint32_t OVFOEN: 1;
65          // Timer Compare 0 Event Output Enable
66          volatile uint32_t CMP0OEN: 1;
67          // Timer Compare 1 Event Interrupt Enable
68          volatile uint32_t CMP1IEN: 1;
69          // Timer Compare 1 Event Output Enable
70          volatile uint32_t CMP1OEN: 1;
71          // Output Inversion Enable
72          volatile uint32_t OUTINVEN: 1;
73                   uint32_t reserved2: 1;
74          // Timer Compare 0 Event Reset Enable
75          volatile uint32_t CMP0RSTEN: 1;
76          // Timer Compare 1 Event Reset Enable
77          volatile uint32_t CMP1RSTEN: 1;
78                   uint32_t reserved3: 3;
79          // Low Power Timer Module Clock Enable
80          volatile uint32_t MCLKEN: 1;
81          // Low Power Timer Debug Mode
82          volatile uint32_t DBGMD: 1;
83          // Timer Run Control and Compare Threshold Enable
84          volatile uint32_t RUN: 1;
85       };
86       volatile uint32_t U32;
87    };
88 };
89 
90 #define SI32_LPTIMER_B_CONTROL_CMD_MASK  0x00000003
91 #define SI32_LPTIMER_B_CONTROL_CMD_SHIFT  0
92 // The timer is free running mode on the RTC timer clock (RTC0TCLK).
93 #define SI32_LPTIMER_B_CONTROL_CMD_FREE_VALUE  0
94 #define SI32_LPTIMER_B_CONTROL_CMD_FREE_U32 \
95    (SI32_LPTIMER_B_CONTROL_CMD_FREE_VALUE << SI32_LPTIMER_B_CONTROL_CMD_SHIFT)
96 // The timer is incremented on the rising edges of the selected external trigger
97 // (LPTnTx).
98 #define SI32_LPTIMER_B_CONTROL_CMD_RISING_EDGE_VALUE  1
99 #define SI32_LPTIMER_B_CONTROL_CMD_RISING_EDGE_U32 \
100    (SI32_LPTIMER_B_CONTROL_CMD_RISING_EDGE_VALUE << SI32_LPTIMER_B_CONTROL_CMD_SHIFT)
101 // The timer is incremented on the falling edges of the selected external trigger
102 // (LPTnTx).
103 #define SI32_LPTIMER_B_CONTROL_CMD_FALLING_EDGE_VALUE  2
104 #define SI32_LPTIMER_B_CONTROL_CMD_FALLING_EDGE_U32 \
105    (SI32_LPTIMER_B_CONTROL_CMD_FALLING_EDGE_VALUE << SI32_LPTIMER_B_CONTROL_CMD_SHIFT)
106 // The timer is incremented on both edges of the selected external trigger
107 // (LPTnTx).
108 #define SI32_LPTIMER_B_CONTROL_CMD_ANY_EDGE_VALUE  3
109 #define SI32_LPTIMER_B_CONTROL_CMD_ANY_EDGE_U32 \
110    (SI32_LPTIMER_B_CONTROL_CMD_ANY_EDGE_VALUE << SI32_LPTIMER_B_CONTROL_CMD_SHIFT)
111 
112 #define SI32_LPTIMER_B_CONTROL_EXTSEL_MASK  0x000000F0
113 #define SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT  4
114 // Select external trigger LPTnT0.
115 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT0_VALUE  0
116 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT0_U32 \
117    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT0_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
118 // Select external trigger LPTnT1.
119 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT1_VALUE  1
120 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT1_U32 \
121    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT1_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
122 // Select external trigger LPTnT2.
123 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT2_VALUE  2
124 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT2_U32 \
125    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT2_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
126 // Select external trigger LPTnT3.
127 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT3_VALUE  3
128 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT3_U32 \
129    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT3_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
130 // Select external trigger LPTnT4.
131 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT4_VALUE  4
132 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT4_U32 \
133    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT4_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
134 // Select external trigger LPTnT5.
135 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT5_VALUE  5
136 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT5_U32 \
137    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT5_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
138 // Select external trigger LPTnT6.
139 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT6_VALUE  6
140 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT6_U32 \
141    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT6_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
142 // Select external trigger LPTnT7.
143 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT7_VALUE  7
144 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT7_U32 \
145    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT7_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
146 // Select external trigger LPTnT8.
147 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT8_VALUE  8
148 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT8_U32 \
149    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT8_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
150 // Select external trigger LPTnT9.
151 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT9_VALUE  9
152 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT9_U32 \
153    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT9_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
154 // Select external trigger LPTnT10.
155 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT10_VALUE  10
156 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT10_U32 \
157    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT10_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
158 // Select external trigger LPTnT11.
159 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT11_VALUE  11
160 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT11_U32 \
161    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT11_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
162 // Select external trigger LPTnT12.
163 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT12_VALUE  12
164 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT12_U32 \
165    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT12_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
166 // Select external trigger LPTnT13.
167 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT13_VALUE  13
168 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT13_U32 \
169    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT13_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
170 // Select external trigger LPTnT14.
171 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT14_VALUE  14
172 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT14_U32 \
173    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT14_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
174 // Select external trigger LPTnT15.
175 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT15_VALUE  15
176 #define SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT15_U32 \
177    (SI32_LPTIMER_B_CONTROL_EXTSEL_LPTNT15_VALUE << SI32_LPTIMER_B_CONTROL_EXTSEL_SHIFT)
178 
179 #define SI32_LPTIMER_B_CONTROL_TMRSET_MASK  0x00000100
180 #define SI32_LPTIMER_B_CONTROL_TMRSET_SHIFT  8
181 // Writing a 1 to TMRSET initiates a copy of the value from the COUNT register into
182 // the internal timer register. This field is automatically cleared by hardware
183 // when the copy is complete and does not need to be cleared by software.
184 #define SI32_LPTIMER_B_CONTROL_TMRSET_SET_VALUE  1
185 #define SI32_LPTIMER_B_CONTROL_TMRSET_SET_U32 \
186    (SI32_LPTIMER_B_CONTROL_TMRSET_SET_VALUE << SI32_LPTIMER_B_CONTROL_TMRSET_SHIFT)
187 
188 #define SI32_LPTIMER_B_CONTROL_TMRCAP_MASK  0x00000200
189 #define SI32_LPTIMER_B_CONTROL_TMRCAP_SHIFT  9
190 // Writing a 1 to TMRCAP initiates a read of internal timer register into the COUNT
191 // register. This field is automatically cleared by hardware when the operation
192 // completes and does not need to be cleared by software.
193 #define SI32_LPTIMER_B_CONTROL_TMRCAP_SET_VALUE  1
194 #define SI32_LPTIMER_B_CONTROL_TMRCAP_SET_U32 \
195    (SI32_LPTIMER_B_CONTROL_TMRCAP_SET_VALUE << SI32_LPTIMER_B_CONTROL_TMRCAP_SHIFT)
196 
197 #define SI32_LPTIMER_B_CONTROL_HSMDEN_MASK  0x00000400
198 #define SI32_LPTIMER_B_CONTROL_HSMDEN_SHIFT  10
199 // Disable high speed timer access mode.
200 #define SI32_LPTIMER_B_CONTROL_HSMDEN_DISABLED_VALUE  0
201 #define SI32_LPTIMER_B_CONTROL_HSMDEN_DISABLED_U32 \
202    (SI32_LPTIMER_B_CONTROL_HSMDEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_HSMDEN_SHIFT)
203 // Enable high speed timer access mode.
204 #define SI32_LPTIMER_B_CONTROL_HSMDEN_ENABLED_VALUE  1
205 #define SI32_LPTIMER_B_CONTROL_HSMDEN_ENABLED_U32 \
206    (SI32_LPTIMER_B_CONTROL_HSMDEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_HSMDEN_SHIFT)
207 
208 #define SI32_LPTIMER_B_CONTROL_CMP0EN_MASK  0x00000800
209 #define SI32_LPTIMER_B_CONTROL_CMP0EN_SHIFT  11
210 #define SI32_LPTIMER_B_CONTROL_CMP0EN_DISABLED_VALUE  0
211 #define SI32_LPTIMER_B_CONTROL_CMP0EN_DISABLED_U32 \
212    (SI32_LPTIMER_B_CONTROL_CMP0EN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP0EN_SHIFT)
213 #define SI32_LPTIMER_B_CONTROL_CMP0EN_ENABLED_VALUE  1
214 #define SI32_LPTIMER_B_CONTROL_CMP0EN_ENABLED_U32 \
215    (SI32_LPTIMER_B_CONTROL_CMP0EN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP0EN_SHIFT)
216 
217 #define SI32_LPTIMER_B_CONTROL_CMP1EN_MASK  0x00001000
218 #define SI32_LPTIMER_B_CONTROL_CMP1EN_SHIFT  12
219 #define SI32_LPTIMER_B_CONTROL_CMP1EN_DISABLED_VALUE  0
220 #define SI32_LPTIMER_B_CONTROL_CMP1EN_DISABLED_U32 \
221    (SI32_LPTIMER_B_CONTROL_CMP1EN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP1EN_SHIFT)
222 #define SI32_LPTIMER_B_CONTROL_CMP1EN_ENABLED_VALUE  1
223 #define SI32_LPTIMER_B_CONTROL_CMP1EN_ENABLED_U32 \
224    (SI32_LPTIMER_B_CONTROL_CMP1EN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP1EN_SHIFT)
225 
226 #define SI32_LPTIMER_B_CONTROL_OUTEN_MASK  0x00002000
227 #define SI32_LPTIMER_B_CONTROL_OUTEN_SHIFT  13
228 // Disable the LPTIMER0 output.
229 #define SI32_LPTIMER_B_CONTROL_OUTEN_DISABLED_VALUE  0
230 #define SI32_LPTIMER_B_CONTROL_OUTEN_DISABLED_U32 \
231    (SI32_LPTIMER_B_CONTROL_OUTEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_OUTEN_SHIFT)
232 // Enable the LPTIMER0 output.
233 #define SI32_LPTIMER_B_CONTROL_OUTEN_ENABLED_VALUE  1
234 #define SI32_LPTIMER_B_CONTROL_OUTEN_ENABLED_U32 \
235    (SI32_LPTIMER_B_CONTROL_OUTEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_OUTEN_SHIFT)
236 
237 #define SI32_LPTIMER_B_CONTROL_OVFIEN_MASK  0x00010000
238 #define SI32_LPTIMER_B_CONTROL_OVFIEN_SHIFT  16
239 // Disable the timer overflow interrupt.
240 #define SI32_LPTIMER_B_CONTROL_OVFIEN_DISABLED_VALUE  0
241 #define SI32_LPTIMER_B_CONTROL_OVFIEN_DISABLED_U32 \
242    (SI32_LPTIMER_B_CONTROL_OVFIEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_OVFIEN_SHIFT)
243 // Enable the timer overflow interrupt.
244 #define SI32_LPTIMER_B_CONTROL_OVFIEN_ENABLED_VALUE  1
245 #define SI32_LPTIMER_B_CONTROL_OVFIEN_ENABLED_U32 \
246    (SI32_LPTIMER_B_CONTROL_OVFIEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_OVFIEN_SHIFT)
247 
248 #define SI32_LPTIMER_B_CONTROL_CMP0IEN_MASK  0x00020000
249 #define SI32_LPTIMER_B_CONTROL_CMP0IEN_SHIFT  17
250 // Disable the timer compare 0 event interrupt.
251 #define SI32_LPTIMER_B_CONTROL_CMP0IEN_DISABLED_VALUE  0
252 #define SI32_LPTIMER_B_CONTROL_CMP0IEN_DISABLED_U32 \
253    (SI32_LPTIMER_B_CONTROL_CMP0IEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP0IEN_SHIFT)
254 // Enable the timer compare 0 event interrupt.
255 #define SI32_LPTIMER_B_CONTROL_CMP0IEN_ENABLED_VALUE  1
256 #define SI32_LPTIMER_B_CONTROL_CMP0IEN_ENABLED_U32 \
257    (SI32_LPTIMER_B_CONTROL_CMP0IEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP0IEN_SHIFT)
258 
259 #define SI32_LPTIMER_B_CONTROL_OVFOEN_MASK  0x00040000
260 #define SI32_LPTIMER_B_CONTROL_OVFOEN_SHIFT  18
261 // Timer overflows do not modify the Low Power Timer output.
262 #define SI32_LPTIMER_B_CONTROL_OVFOEN_DISABLED_VALUE  0
263 #define SI32_LPTIMER_B_CONTROL_OVFOEN_DISABLED_U32 \
264    (SI32_LPTIMER_B_CONTROL_OVFOEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_OVFOEN_SHIFT)
265 // Timer overflows set the Low Power Timer output to 1.
266 #define SI32_LPTIMER_B_CONTROL_OVFOEN_ENABLED_VALUE  1
267 #define SI32_LPTIMER_B_CONTROL_OVFOEN_ENABLED_U32 \
268    (SI32_LPTIMER_B_CONTROL_OVFOEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_OVFOEN_SHIFT)
269 
270 #define SI32_LPTIMER_B_CONTROL_CMP0OEN_MASK  0x00080000
271 #define SI32_LPTIMER_B_CONTROL_CMP0OEN_SHIFT  19
272 // Timer compare 0 events do not modify the Low Power Timer output.
273 #define SI32_LPTIMER_B_CONTROL_CMP0OEN_DISABLED_VALUE  0
274 #define SI32_LPTIMER_B_CONTROL_CMP0OEN_DISABLED_U32 \
275    (SI32_LPTIMER_B_CONTROL_CMP0OEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP0OEN_SHIFT)
276 // Timer compare 0 events clear the Low Power Timer output to 0.
277 #define SI32_LPTIMER_B_CONTROL_CMP0OEN_ENABLED_VALUE  1
278 #define SI32_LPTIMER_B_CONTROL_CMP0OEN_ENABLED_U32 \
279    (SI32_LPTIMER_B_CONTROL_CMP0OEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP0OEN_SHIFT)
280 
281 #define SI32_LPTIMER_B_CONTROL_CMP1IEN_MASK  0x00100000
282 #define SI32_LPTIMER_B_CONTROL_CMP1IEN_SHIFT  20
283 // Disable the timer compare 1 event interrupt.
284 #define SI32_LPTIMER_B_CONTROL_CMP1IEN_DISABLED_VALUE  0
285 #define SI32_LPTIMER_B_CONTROL_CMP1IEN_DISABLED_U32 \
286    (SI32_LPTIMER_B_CONTROL_CMP1IEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP1IEN_SHIFT)
287 // Enable the timer compare 1 event interrupt.
288 #define SI32_LPTIMER_B_CONTROL_CMP1IEN_ENABLED_VALUE  1
289 #define SI32_LPTIMER_B_CONTROL_CMP1IEN_ENABLED_U32 \
290    (SI32_LPTIMER_B_CONTROL_CMP1IEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP1IEN_SHIFT)
291 
292 #define SI32_LPTIMER_B_CONTROL_CMP1OEN_MASK  0x00200000
293 #define SI32_LPTIMER_B_CONTROL_CMP1OEN_SHIFT  21
294 // Timer compare 1 events do not modify the Low Power Timer output.
295 #define SI32_LPTIMER_B_CONTROL_CMP1OEN_DISABLED_VALUE  0
296 #define SI32_LPTIMER_B_CONTROL_CMP1OEN_DISABLED_U32 \
297    (SI32_LPTIMER_B_CONTROL_CMP1OEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP1OEN_SHIFT)
298 // Timer compare 1 events set the Low Power Timer output to 1.
299 #define SI32_LPTIMER_B_CONTROL_CMP1OEN_ENABLED_VALUE  1
300 #define SI32_LPTIMER_B_CONTROL_CMP1OEN_ENABLED_U32 \
301    (SI32_LPTIMER_B_CONTROL_CMP1OEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP1OEN_SHIFT)
302 
303 #define SI32_LPTIMER_B_CONTROL_OUTINVEN_MASK  0x00400000
304 #define SI32_LPTIMER_B_CONTROL_OUTINVEN_SHIFT  22
305 // Do not invert the LPTIMER0 output.
306 #define SI32_LPTIMER_B_CONTROL_OUTINVEN_DISABLED_VALUE  0
307 #define SI32_LPTIMER_B_CONTROL_OUTINVEN_DISABLED_U32 \
308    (SI32_LPTIMER_B_CONTROL_OUTINVEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_OUTINVEN_SHIFT)
309 // Invert the LPTIMER0 output.
310 #define SI32_LPTIMER_B_CONTROL_OUTINVEN_ENABLED_VALUE  1
311 #define SI32_LPTIMER_B_CONTROL_OUTINVEN_ENABLED_U32 \
312    (SI32_LPTIMER_B_CONTROL_OUTINVEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_OUTINVEN_SHIFT)
313 
314 #define SI32_LPTIMER_B_CONTROL_CMP0RSTEN_MASK  0x01000000
315 #define SI32_LPTIMER_B_CONTROL_CMP0RSTEN_SHIFT  24
316 // Timer compare 0 events do not reset the timer.
317 #define SI32_LPTIMER_B_CONTROL_CMP0RSTEN_DISABLED_VALUE  0
318 #define SI32_LPTIMER_B_CONTROL_CMP0RSTEN_DISABLED_U32 \
319    (SI32_LPTIMER_B_CONTROL_CMP0RSTEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP0RSTEN_SHIFT)
320 // Timer compare 0 events reset the timer.
321 #define SI32_LPTIMER_B_CONTROL_CMP0RSTEN_ENABLED_VALUE  1
322 #define SI32_LPTIMER_B_CONTROL_CMP0RSTEN_ENABLED_U32 \
323    (SI32_LPTIMER_B_CONTROL_CMP0RSTEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP0RSTEN_SHIFT)
324 
325 #define SI32_LPTIMER_B_CONTROL_CMP1RSTEN_MASK  0x02000000
326 #define SI32_LPTIMER_B_CONTROL_CMP1RSTEN_SHIFT  25
327 // Timer compare 1 events do not reset the timer.
328 #define SI32_LPTIMER_B_CONTROL_CMP1RSTEN_DISABLED_VALUE  0
329 #define SI32_LPTIMER_B_CONTROL_CMP1RSTEN_DISABLED_U32 \
330    (SI32_LPTIMER_B_CONTROL_CMP1RSTEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP1RSTEN_SHIFT)
331 // Timer compare 1 events reset the timer.
332 #define SI32_LPTIMER_B_CONTROL_CMP1RSTEN_ENABLED_VALUE  1
333 #define SI32_LPTIMER_B_CONTROL_CMP1RSTEN_ENABLED_U32 \
334    (SI32_LPTIMER_B_CONTROL_CMP1RSTEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_CMP1RSTEN_SHIFT)
335 
336 #define SI32_LPTIMER_B_CONTROL_MCLKEN_MASK  0x20000000
337 #define SI32_LPTIMER_B_CONTROL_MCLKEN_SHIFT  29
338 // Disable the clock to the Low Power Timer module.
339 #define SI32_LPTIMER_B_CONTROL_MCLKEN_DISABLED_VALUE  0
340 #define SI32_LPTIMER_B_CONTROL_MCLKEN_DISABLED_U32 \
341    (SI32_LPTIMER_B_CONTROL_MCLKEN_DISABLED_VALUE << SI32_LPTIMER_B_CONTROL_MCLKEN_SHIFT)
342 // Enable the clock to the Low Power Timer module.
343 #define SI32_LPTIMER_B_CONTROL_MCLKEN_ENABLED_VALUE  1
344 #define SI32_LPTIMER_B_CONTROL_MCLKEN_ENABLED_U32 \
345    (SI32_LPTIMER_B_CONTROL_MCLKEN_ENABLED_VALUE << SI32_LPTIMER_B_CONTROL_MCLKEN_SHIFT)
346 
347 #define SI32_LPTIMER_B_CONTROL_DBGMD_MASK  0x40000000
348 #define SI32_LPTIMER_B_CONTROL_DBGMD_SHIFT  30
349 // The Low Power Timer module will continue to operate while the core is halted in
350 // debug mode.
351 #define SI32_LPTIMER_B_CONTROL_DBGMD_RUN_VALUE  0
352 #define SI32_LPTIMER_B_CONTROL_DBGMD_RUN_U32 \
353    (SI32_LPTIMER_B_CONTROL_DBGMD_RUN_VALUE << SI32_LPTIMER_B_CONTROL_DBGMD_SHIFT)
354 // A debug breakpoint will cause the Low Power Timer module to halt.
355 #define SI32_LPTIMER_B_CONTROL_DBGMD_HALT_VALUE  1
356 #define SI32_LPTIMER_B_CONTROL_DBGMD_HALT_U32 \
357    (SI32_LPTIMER_B_CONTROL_DBGMD_HALT_VALUE << SI32_LPTIMER_B_CONTROL_DBGMD_SHIFT)
358 
359 #define SI32_LPTIMER_B_CONTROL_RUN_MASK  0x80000000
360 #define SI32_LPTIMER_B_CONTROL_RUN_SHIFT  31
361 // Stop the timer and disable the compare threshold.
362 #define SI32_LPTIMER_B_CONTROL_RUN_STOP_VALUE  0U
363 #define SI32_LPTIMER_B_CONTROL_RUN_STOP_U32 \
364    (SI32_LPTIMER_B_CONTROL_RUN_STOP_VALUE << SI32_LPTIMER_B_CONTROL_RUN_SHIFT)
365 // Start the timer running and enable the compare threshold.
366 #define SI32_LPTIMER_B_CONTROL_RUN_START_VALUE  1U
367 #define SI32_LPTIMER_B_CONTROL_RUN_START_U32 \
368    (SI32_LPTIMER_B_CONTROL_RUN_START_VALUE << SI32_LPTIMER_B_CONTROL_RUN_SHIFT)
369 
370 
371 
372 struct SI32_LPTIMER_B_COUNT_Struct
373 {
374    union
375    {
376       struct
377       {
378          // Timer Value
379          volatile uint16_t TIMER;
380                   uint32_t reserved0: 16;
381       };
382       volatile uint32_t U32;
383    };
384 };
385 
386 #define SI32_LPTIMER_B_COUNT_TIMER_MASK  0x0000FFFF
387 #define SI32_LPTIMER_B_COUNT_TIMER_SHIFT  0
388 
389 
390 
391 struct SI32_LPTIMER_B_THRESHOLD_Struct
392 {
393    union
394    {
395       struct
396       {
397          // Timer Compare 0 Threshold Value
398          volatile uint16_t COMPARE0;
399          // Timer Compare 1 Threshold Value
400          volatile uint16_t COMPARE1;
401       };
402       volatile uint32_t U32;
403    };
404 };
405 
406 #define SI32_LPTIMER_B_THRESHOLD_COMPARE0_MASK  0x0000FFFF
407 #define SI32_LPTIMER_B_THRESHOLD_COMPARE0_SHIFT  0
408 
409 #define SI32_LPTIMER_B_THRESHOLD_COMPARE1_MASK  0xFFFF0000
410 #define SI32_LPTIMER_B_THRESHOLD_COMPARE1_SHIFT  16
411 
412 
413 
414 struct SI32_LPTIMER_B_STATUS_Struct
415 {
416    union
417    {
418       struct
419       {
420          // Timer Overflow Interrupt Flag
421          volatile uint32_t OVFI: 1;
422          // Timer Compare 0 Event Interrupt Flag
423          volatile uint32_t CMP0I: 1;
424          // Timer Compare 1 Event Interrupt Flag
425          volatile uint32_t CMP1I: 1;
426                   uint32_t reserved0: 29;
427       };
428       volatile uint32_t U32;
429    };
430 };
431 
432 #define SI32_LPTIMER_B_STATUS_OVFI_MASK  0x00000001
433 #define SI32_LPTIMER_B_STATUS_OVFI_SHIFT  0
434 // A timer overflow has not occurred.
435 #define SI32_LPTIMER_B_STATUS_OVFI_NOT_SET_VALUE  0
436 #define SI32_LPTIMER_B_STATUS_OVFI_NOT_SET_U32 \
437    (SI32_LPTIMER_B_STATUS_OVFI_NOT_SET_VALUE << SI32_LPTIMER_B_STATUS_OVFI_SHIFT)
438 // A timer overflow occurred.
439 #define SI32_LPTIMER_B_STATUS_OVFI_SET_VALUE  1
440 #define SI32_LPTIMER_B_STATUS_OVFI_SET_U32 \
441    (SI32_LPTIMER_B_STATUS_OVFI_SET_VALUE << SI32_LPTIMER_B_STATUS_OVFI_SHIFT)
442 
443 #define SI32_LPTIMER_B_STATUS_CMP0I_MASK  0x00000002
444 #define SI32_LPTIMER_B_STATUS_CMP0I_SHIFT  1
445 // A timer compare 0 event has not occurred.
446 #define SI32_LPTIMER_B_STATUS_CMP0I_NOT_SET_VALUE  0
447 #define SI32_LPTIMER_B_STATUS_CMP0I_NOT_SET_U32 \
448    (SI32_LPTIMER_B_STATUS_CMP0I_NOT_SET_VALUE << SI32_LPTIMER_B_STATUS_CMP0I_SHIFT)
449 // A timer compare 0 event occurred.
450 #define SI32_LPTIMER_B_STATUS_CMP0I_SET_VALUE  1
451 #define SI32_LPTIMER_B_STATUS_CMP0I_SET_U32 \
452    (SI32_LPTIMER_B_STATUS_CMP0I_SET_VALUE << SI32_LPTIMER_B_STATUS_CMP0I_SHIFT)
453 
454 #define SI32_LPTIMER_B_STATUS_CMP1I_MASK  0x00000004
455 #define SI32_LPTIMER_B_STATUS_CMP1I_SHIFT  2
456 // A timer compare 1 event has not occurred.
457 #define SI32_LPTIMER_B_STATUS_CMP1I_NOT_SET_VALUE  0
458 #define SI32_LPTIMER_B_STATUS_CMP1I_NOT_SET_U32 \
459    (SI32_LPTIMER_B_STATUS_CMP1I_NOT_SET_VALUE << SI32_LPTIMER_B_STATUS_CMP1I_SHIFT)
460 // A timer compare 1 event occurred.
461 #define SI32_LPTIMER_B_STATUS_CMP1I_SET_VALUE  1
462 #define SI32_LPTIMER_B_STATUS_CMP1I_SET_U32 \
463    (SI32_LPTIMER_B_STATUS_CMP1I_SET_VALUE << SI32_LPTIMER_B_STATUS_CMP1I_SHIFT)
464 
465 
466 
467 typedef struct SI32_LPTIMER_B_Struct
468 {
469    struct SI32_LPTIMER_B_CONTROL_Struct            CONTROL        ; // Base Address + 0x0
470    volatile uint32_t                               CONTROL_SET;
471    volatile uint32_t                               CONTROL_CLR;
472    uint32_t                                        reserved0;
473    struct SI32_LPTIMER_B_COUNT_Struct              COUNT          ; // Base Address + 0x10
474    uint32_t                                        reserved1;
475    uint32_t                                        reserved2;
476    uint32_t                                        reserved3;
477    struct SI32_LPTIMER_B_THRESHOLD_Struct          THRESHOLD      ; // Base Address + 0x20
478    uint32_t                                        reserved4;
479    uint32_t                                        reserved5;
480    uint32_t                                        reserved6;
481    struct SI32_LPTIMER_B_STATUS_Struct             STATUS         ; // Base Address + 0x30
482    volatile uint32_t                               STATUS_SET;
483    volatile uint32_t                               STATUS_CLR;
484    uint32_t                                        reserved7;
485 } SI32_LPTIMER_B_Type;
486 
487 #ifdef __cplusplus
488 }
489 #endif
490 
491 #endif // __SI32_LPTIMER_B_REGISTERS_H__
492 
493 //-eof--------------------------------------------------------------------------
494 
495