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_CMP_A_REGISTERS_H__
27 #define __SI32_CMP_A_REGISTERS_H__
28 
29 #include <stdint.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 struct SI32_CMP_A_CONTROL_Struct
36 {
37    union
38    {
39       struct
40       {
41                   uint32_t reserved0: 13;
42          // Falling Edge Interrupt Flag
43          volatile uint32_t CMPFI: 1;
44          // Rising Edge Interrupt Flag
45          volatile uint32_t CMPRI: 1;
46                   uint32_t reserved1: 15;
47          // Output State
48          volatile uint32_t CMPOUT: 1;
49          // Comparator Enable
50          volatile uint32_t CMPEN: 1;
51       };
52       volatile uint32_t U32;
53    };
54 };
55 
56 #define SI32_CMP_A_CONTROL_CMPFI_MASK  0x00002000
57 #define SI32_CMP_A_CONTROL_CMPFI_SHIFT  13
58 // No comparator falling edge has occurred since this flag was last cleared.
59 #define SI32_CMP_A_CONTROL_CMPFI_NOT_SET_VALUE  0
60 #define SI32_CMP_A_CONTROL_CMPFI_NOT_SET_U32 \
61    (SI32_CMP_A_CONTROL_CMPFI_NOT_SET_VALUE << SI32_CMP_A_CONTROL_CMPFI_SHIFT)
62 // A comparator falling edge occurred since last flag was cleared.
63 #define SI32_CMP_A_CONTROL_CMPFI_SET_VALUE  1
64 #define SI32_CMP_A_CONTROL_CMPFI_SET_U32 \
65    (SI32_CMP_A_CONTROL_CMPFI_SET_VALUE << SI32_CMP_A_CONTROL_CMPFI_SHIFT)
66 
67 #define SI32_CMP_A_CONTROL_CMPRI_MASK  0x00004000
68 #define SI32_CMP_A_CONTROL_CMPRI_SHIFT  14
69 // No comparator rising edge has occurred since this flag was last cleared.
70 #define SI32_CMP_A_CONTROL_CMPRI_NOT_SET_VALUE  0
71 #define SI32_CMP_A_CONTROL_CMPRI_NOT_SET_U32 \
72    (SI32_CMP_A_CONTROL_CMPRI_NOT_SET_VALUE << SI32_CMP_A_CONTROL_CMPRI_SHIFT)
73 // A comparator rising edge occurred since last flag was cleared.
74 #define SI32_CMP_A_CONTROL_CMPRI_SET_VALUE  1
75 #define SI32_CMP_A_CONTROL_CMPRI_SET_U32 \
76    (SI32_CMP_A_CONTROL_CMPRI_SET_VALUE << SI32_CMP_A_CONTROL_CMPRI_SHIFT)
77 
78 #define SI32_CMP_A_CONTROL_CMPOUT_MASK  0x40000000
79 #define SI32_CMP_A_CONTROL_CMPOUT_SHIFT  30
80 // Voltage on CMP+ < CMP- (INVEN = 0).
81 #define SI32_CMP_A_CONTROL_CMPOUT_POS_LT_NEG_VALUE  0
82 #define SI32_CMP_A_CONTROL_CMPOUT_POS_LT_NEG_U32 \
83    (SI32_CMP_A_CONTROL_CMPOUT_POS_LT_NEG_VALUE << SI32_CMP_A_CONTROL_CMPOUT_SHIFT)
84 // Voltage on CMP+ > CMP- (INVEN = 0).
85 #define SI32_CMP_A_CONTROL_CMPOUT_POS_GT_NEG_VALUE  1
86 #define SI32_CMP_A_CONTROL_CMPOUT_POS_GT_NEG_U32 \
87    (SI32_CMP_A_CONTROL_CMPOUT_POS_GT_NEG_VALUE << SI32_CMP_A_CONTROL_CMPOUT_SHIFT)
88 
89 #define SI32_CMP_A_CONTROL_CMPEN_MASK  0x80000000
90 #define SI32_CMP_A_CONTROL_CMPEN_SHIFT  31
91 // Disable the comparator.
92 #define SI32_CMP_A_CONTROL_CMPEN_DISABLED_VALUE  0U
93 #define SI32_CMP_A_CONTROL_CMPEN_DISABLED_U32 \
94    (SI32_CMP_A_CONTROL_CMPEN_DISABLED_VALUE << SI32_CMP_A_CONTROL_CMPEN_SHIFT)
95 // Enable the comparator.
96 #define SI32_CMP_A_CONTROL_CMPEN_ENABLED_VALUE  1U
97 #define SI32_CMP_A_CONTROL_CMPEN_ENABLED_U32 \
98    (SI32_CMP_A_CONTROL_CMPEN_ENABLED_VALUE << SI32_CMP_A_CONTROL_CMPEN_SHIFT)
99 
100 
101 
102 struct SI32_CMP_A_MODE_Struct
103 {
104    union
105    {
106       struct
107       {
108          // Negative Input Select
109          volatile uint32_t NMUX: 4;
110          // Positive Input Select
111          volatile uint32_t PMUX: 4;
112          // Input MUX Select
113          volatile uint32_t INMUX: 2;
114          // Comparator Mode
115          volatile uint32_t CMPMD: 2;
116                   uint32_t reserved0: 1;
117          // Falling Edge Interrupt Enable
118          volatile uint32_t FIEN: 1;
119          // Rising Edge Interrupt Enable
120          volatile uint32_t RIEN: 1;
121                   uint32_t reserved1: 1;
122          // Comparator DAC Output Level
123          volatile uint32_t DACLVL: 6;
124          // Negative Input Weak Pullup Enable
125          volatile uint32_t NWPUEN: 1;
126          // Positive Input Weak Pullup Enable
127          volatile uint32_t PWPUEN: 1;
128          // Negative Hysteresis Control
129          volatile uint32_t CMPHYN: 2;
130          // Positive Hysteresis Control
131          volatile uint32_t CMPHYP: 2;
132                   uint32_t reserved2: 2;
133          // Invert Comparator Output Enable
134          volatile uint32_t INVEN: 1;
135                   uint32_t reserved3: 1;
136       };
137       volatile uint32_t U32;
138    };
139 };
140 
141 #define SI32_CMP_A_MODE_NMUX_MASK  0x0000000F
142 #define SI32_CMP_A_MODE_NMUX_SHIFT  0
143 // Select CMPnN.0.
144 #define SI32_CMP_A_MODE_NMUX_CMPNN0_VALUE  0
145 #define SI32_CMP_A_MODE_NMUX_CMPNN0_U32 \
146    (SI32_CMP_A_MODE_NMUX_CMPNN0_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
147 // Select CMPnN.1.
148 #define SI32_CMP_A_MODE_NMUX_CMPNN1_VALUE  1
149 #define SI32_CMP_A_MODE_NMUX_CMPNN1_U32 \
150    (SI32_CMP_A_MODE_NMUX_CMPNN1_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
151 // Select CMPnN.2.
152 #define SI32_CMP_A_MODE_NMUX_CMPNN2_VALUE  2
153 #define SI32_CMP_A_MODE_NMUX_CMPNN2_U32 \
154    (SI32_CMP_A_MODE_NMUX_CMPNN2_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
155 // Select CMPnN.3.
156 #define SI32_CMP_A_MODE_NMUX_CMPNN3_VALUE  3
157 #define SI32_CMP_A_MODE_NMUX_CMPNN3_U32 \
158    (SI32_CMP_A_MODE_NMUX_CMPNN3_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
159 // Select CMPnN.4.
160 #define SI32_CMP_A_MODE_NMUX_CMPNN4_VALUE  4
161 #define SI32_CMP_A_MODE_NMUX_CMPNN4_U32 \
162    (SI32_CMP_A_MODE_NMUX_CMPNN4_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
163 // Select CMPnN.5.
164 #define SI32_CMP_A_MODE_NMUX_CMPNN5_VALUE  5
165 #define SI32_CMP_A_MODE_NMUX_CMPNN5_U32 \
166    (SI32_CMP_A_MODE_NMUX_CMPNN5_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
167 // Select CMPnN.6.
168 #define SI32_CMP_A_MODE_NMUX_CMPNN6_VALUE  6
169 #define SI32_CMP_A_MODE_NMUX_CMPNN6_U32 \
170    (SI32_CMP_A_MODE_NMUX_CMPNN6_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
171 // Select CMPnN.7.
172 #define SI32_CMP_A_MODE_NMUX_CMPNN7_VALUE  7
173 #define SI32_CMP_A_MODE_NMUX_CMPNN7_U32 \
174    (SI32_CMP_A_MODE_NMUX_CMPNN7_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
175 // Select CMPnN.8.
176 #define SI32_CMP_A_MODE_NMUX_CMPNN8_VALUE  8
177 #define SI32_CMP_A_MODE_NMUX_CMPNN8_U32 \
178    (SI32_CMP_A_MODE_NMUX_CMPNN8_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
179 // Select CMPnN.9.
180 #define SI32_CMP_A_MODE_NMUX_CMPNN9_VALUE  9
181 #define SI32_CMP_A_MODE_NMUX_CMPNN9_U32 \
182    (SI32_CMP_A_MODE_NMUX_CMPNN9_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
183 // Select CMPnN.10.
184 #define SI32_CMP_A_MODE_NMUX_CMPNN10_VALUE  10
185 #define SI32_CMP_A_MODE_NMUX_CMPNN10_U32 \
186    (SI32_CMP_A_MODE_NMUX_CMPNN10_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
187 // Select CMPnN.11.
188 #define SI32_CMP_A_MODE_NMUX_CMPNN11_VALUE  11
189 #define SI32_CMP_A_MODE_NMUX_CMPNN11_U32 \
190    (SI32_CMP_A_MODE_NMUX_CMPNN11_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
191 // Select CMPnN.12.
192 #define SI32_CMP_A_MODE_NMUX_CMPNN12_VALUE  12
193 #define SI32_CMP_A_MODE_NMUX_CMPNN12_U32 \
194    (SI32_CMP_A_MODE_NMUX_CMPNN12_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
195 // Select CMPnN.13.
196 #define SI32_CMP_A_MODE_NMUX_CMPNN13_VALUE  13
197 #define SI32_CMP_A_MODE_NMUX_CMPNN13_U32 \
198    (SI32_CMP_A_MODE_NMUX_CMPNN13_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
199 // Select CMPnN.14.
200 #define SI32_CMP_A_MODE_NMUX_CMPNN14_VALUE  14
201 #define SI32_CMP_A_MODE_NMUX_CMPNN14_U32 \
202    (SI32_CMP_A_MODE_NMUX_CMPNN14_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
203 // Select CMPnN.15.
204 #define SI32_CMP_A_MODE_NMUX_CMPNN15_VALUE  15
205 #define SI32_CMP_A_MODE_NMUX_CMPNN15_U32 \
206    (SI32_CMP_A_MODE_NMUX_CMPNN15_VALUE << SI32_CMP_A_MODE_NMUX_SHIFT)
207 
208 #define SI32_CMP_A_MODE_PMUX_MASK  0x000000F0
209 #define SI32_CMP_A_MODE_PMUX_SHIFT  4
210 // Select CMPnP.0.
211 #define SI32_CMP_A_MODE_PMUX_CMPNP0_VALUE  0
212 #define SI32_CMP_A_MODE_PMUX_CMPNP0_U32 \
213    (SI32_CMP_A_MODE_PMUX_CMPNP0_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
214 // Select CMPnP.1.
215 #define SI32_CMP_A_MODE_PMUX_CMPNP1_VALUE  1
216 #define SI32_CMP_A_MODE_PMUX_CMPNP1_U32 \
217    (SI32_CMP_A_MODE_PMUX_CMPNP1_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
218 // Select CMPnP.2.
219 #define SI32_CMP_A_MODE_PMUX_CMPNP2_VALUE  2
220 #define SI32_CMP_A_MODE_PMUX_CMPNP2_U32 \
221    (SI32_CMP_A_MODE_PMUX_CMPNP2_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
222 // Select CMPnP.3.
223 #define SI32_CMP_A_MODE_PMUX_CMPNP3_VALUE  3
224 #define SI32_CMP_A_MODE_PMUX_CMPNP3_U32 \
225    (SI32_CMP_A_MODE_PMUX_CMPNP3_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
226 // Select CMPnP.4.
227 #define SI32_CMP_A_MODE_PMUX_CMPNP4_VALUE  4
228 #define SI32_CMP_A_MODE_PMUX_CMPNP4_U32 \
229    (SI32_CMP_A_MODE_PMUX_CMPNP4_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
230 // Select CMPnP.5.
231 #define SI32_CMP_A_MODE_PMUX_CMPNP5_VALUE  5
232 #define SI32_CMP_A_MODE_PMUX_CMPNP5_U32 \
233    (SI32_CMP_A_MODE_PMUX_CMPNP5_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
234 // Select CMPnP.6.
235 #define SI32_CMP_A_MODE_PMUX_CMPNP6_VALUE  6
236 #define SI32_CMP_A_MODE_PMUX_CMPNP6_U32 \
237    (SI32_CMP_A_MODE_PMUX_CMPNP6_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
238 // Select CMPnP.7.
239 #define SI32_CMP_A_MODE_PMUX_CMPNP7_VALUE  7
240 #define SI32_CMP_A_MODE_PMUX_CMPNP7_U32 \
241    (SI32_CMP_A_MODE_PMUX_CMPNP7_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
242 // Select CMPnP.8.
243 #define SI32_CMP_A_MODE_PMUX_CMPNP8_VALUE  8
244 #define SI32_CMP_A_MODE_PMUX_CMPNP8_U32 \
245    (SI32_CMP_A_MODE_PMUX_CMPNP8_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
246 // Select CMPnP.9.
247 #define SI32_CMP_A_MODE_PMUX_CMPNP9_VALUE  9
248 #define SI32_CMP_A_MODE_PMUX_CMPNP9_U32 \
249    (SI32_CMP_A_MODE_PMUX_CMPNP9_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
250 // Select CMPnP.10.
251 #define SI32_CMP_A_MODE_PMUX_CMPNP10_VALUE  10
252 #define SI32_CMP_A_MODE_PMUX_CMPNP10_U32 \
253    (SI32_CMP_A_MODE_PMUX_CMPNP10_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
254 // Select CMPnP.11.
255 #define SI32_CMP_A_MODE_PMUX_CMPNP11_VALUE  11
256 #define SI32_CMP_A_MODE_PMUX_CMPNP11_U32 \
257    (SI32_CMP_A_MODE_PMUX_CMPNP11_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
258 // Select CMPnP.12.
259 #define SI32_CMP_A_MODE_PMUX_CMPNP12_VALUE  12
260 #define SI32_CMP_A_MODE_PMUX_CMPNP12_U32 \
261    (SI32_CMP_A_MODE_PMUX_CMPNP12_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
262 // Select CMPnP.13.
263 #define SI32_CMP_A_MODE_PMUX_CMPNP13_VALUE  13
264 #define SI32_CMP_A_MODE_PMUX_CMPNP13_U32 \
265    (SI32_CMP_A_MODE_PMUX_CMPNP13_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
266 // Select CMPnP.14.
267 #define SI32_CMP_A_MODE_PMUX_CMPNP14_VALUE  14
268 #define SI32_CMP_A_MODE_PMUX_CMPNP14_U32 \
269    (SI32_CMP_A_MODE_PMUX_CMPNP14_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
270 // Select CMPnP.15.
271 #define SI32_CMP_A_MODE_PMUX_CMPNP15_VALUE  15
272 #define SI32_CMP_A_MODE_PMUX_CMPNP15_U32 \
273    (SI32_CMP_A_MODE_PMUX_CMPNP15_VALUE << SI32_CMP_A_MODE_PMUX_SHIFT)
274 
275 #define SI32_CMP_A_MODE_INMUX_MASK  0x00000300
276 #define SI32_CMP_A_MODE_INMUX_SHIFT  8
277 // Connects the NMUX signal to CMP- and the PMUX signal to CMP+.
278 #define SI32_CMP_A_MODE_INMUX_DIRECT_VALUE  0
279 #define SI32_CMP_A_MODE_INMUX_DIRECT_U32 \
280    (SI32_CMP_A_MODE_INMUX_DIRECT_VALUE << SI32_CMP_A_MODE_INMUX_SHIFT)
281 // Connects VSS to CMP- and the PMUX signal to CMP+.
282 #define SI32_CMP_A_MODE_INMUX_CMPP_VSS_VALUE  1
283 #define SI32_CMP_A_MODE_INMUX_CMPP_VSS_U32 \
284    (SI32_CMP_A_MODE_INMUX_CMPP_VSS_VALUE << SI32_CMP_A_MODE_INMUX_SHIFT)
285 // Connects the NMUX signal to CMP-, the PMUX signal to the Comparator DAC voltage
286 // reference, and the DAC output to CMP+.
287 #define SI32_CMP_A_MODE_INMUX_CMPP_DAC_VALUE  2
288 #define SI32_CMP_A_MODE_INMUX_CMPP_DAC_U32 \
289    (SI32_CMP_A_MODE_INMUX_CMPP_DAC_VALUE << SI32_CMP_A_MODE_INMUX_SHIFT)
290 // Connects the PMUX signal to CMP+, the NMUX signal to the Comparator DAC voltage
291 // reference, and the DAC output to CMP-.
292 #define SI32_CMP_A_MODE_INMUX_CMPN_DAC_VALUE  3
293 #define SI32_CMP_A_MODE_INMUX_CMPN_DAC_U32 \
294    (SI32_CMP_A_MODE_INMUX_CMPN_DAC_VALUE << SI32_CMP_A_MODE_INMUX_SHIFT)
295 
296 #define SI32_CMP_A_MODE_CMPMD_MASK  0x00000C00
297 #define SI32_CMP_A_MODE_CMPMD_SHIFT  10
298 // Mode 0 (fastest response time, highest power consumption).
299 #define SI32_CMP_A_MODE_CMPMD_MODE0_VALUE  0
300 #define SI32_CMP_A_MODE_CMPMD_MODE0_U32 \
301    (SI32_CMP_A_MODE_CMPMD_MODE0_VALUE << SI32_CMP_A_MODE_CMPMD_SHIFT)
302 // Mode 1.
303 #define SI32_CMP_A_MODE_CMPMD_MODE1_VALUE  1
304 #define SI32_CMP_A_MODE_CMPMD_MODE1_U32 \
305    (SI32_CMP_A_MODE_CMPMD_MODE1_VALUE << SI32_CMP_A_MODE_CMPMD_SHIFT)
306 // Mode 2.
307 #define SI32_CMP_A_MODE_CMPMD_MODE2_VALUE  2
308 #define SI32_CMP_A_MODE_CMPMD_MODE2_U32 \
309    (SI32_CMP_A_MODE_CMPMD_MODE2_VALUE << SI32_CMP_A_MODE_CMPMD_SHIFT)
310 // Mode 3 (slowest response time, lowest power consumption).
311 #define SI32_CMP_A_MODE_CMPMD_MODE3_VALUE  3
312 #define SI32_CMP_A_MODE_CMPMD_MODE3_U32 \
313    (SI32_CMP_A_MODE_CMPMD_MODE3_VALUE << SI32_CMP_A_MODE_CMPMD_SHIFT)
314 
315 #define SI32_CMP_A_MODE_FIEN_MASK  0x00002000
316 #define SI32_CMP_A_MODE_FIEN_SHIFT  13
317 // Disable the comparator falling edge interrupt.
318 #define SI32_CMP_A_MODE_FIEN_DISABLED_VALUE  0
319 #define SI32_CMP_A_MODE_FIEN_DISABLED_U32 \
320    (SI32_CMP_A_MODE_FIEN_DISABLED_VALUE << SI32_CMP_A_MODE_FIEN_SHIFT)
321 // Enable the comparator falling edge interrupt.
322 #define SI32_CMP_A_MODE_FIEN_ENABLED_VALUE  1
323 #define SI32_CMP_A_MODE_FIEN_ENABLED_U32 \
324    (SI32_CMP_A_MODE_FIEN_ENABLED_VALUE << SI32_CMP_A_MODE_FIEN_SHIFT)
325 
326 #define SI32_CMP_A_MODE_RIEN_MASK  0x00004000
327 #define SI32_CMP_A_MODE_RIEN_SHIFT  14
328 // Disable the comparator rising edge interrupt.
329 #define SI32_CMP_A_MODE_RIEN_DISABLED_VALUE  0
330 #define SI32_CMP_A_MODE_RIEN_DISABLED_U32 \
331    (SI32_CMP_A_MODE_RIEN_DISABLED_VALUE << SI32_CMP_A_MODE_RIEN_SHIFT)
332 // Enable the comparator rising edge interrupt.
333 #define SI32_CMP_A_MODE_RIEN_ENABLED_VALUE  1
334 #define SI32_CMP_A_MODE_RIEN_ENABLED_U32 \
335    (SI32_CMP_A_MODE_RIEN_ENABLED_VALUE << SI32_CMP_A_MODE_RIEN_SHIFT)
336 
337 #define SI32_CMP_A_MODE_DACLVL_MASK  0x003F0000
338 #define SI32_CMP_A_MODE_DACLVL_SHIFT  16
339 
340 #define SI32_CMP_A_MODE_NWPUEN_MASK  0x00400000
341 #define SI32_CMP_A_MODE_NWPUEN_SHIFT  22
342 // Disable the negative input weak pull up.
343 #define SI32_CMP_A_MODE_NWPUEN_DISABLED_VALUE  0
344 #define SI32_CMP_A_MODE_NWPUEN_DISABLED_U32 \
345    (SI32_CMP_A_MODE_NWPUEN_DISABLED_VALUE << SI32_CMP_A_MODE_NWPUEN_SHIFT)
346 // Enable the negative input weak pull up.
347 #define SI32_CMP_A_MODE_NWPUEN_ENABLED_VALUE  1
348 #define SI32_CMP_A_MODE_NWPUEN_ENABLED_U32 \
349    (SI32_CMP_A_MODE_NWPUEN_ENABLED_VALUE << SI32_CMP_A_MODE_NWPUEN_SHIFT)
350 
351 #define SI32_CMP_A_MODE_PWPUEN_MASK  0x00800000
352 #define SI32_CMP_A_MODE_PWPUEN_SHIFT  23
353 // Disable the positive input weak pull up.
354 #define SI32_CMP_A_MODE_PWPUEN_DISABLED_VALUE  0
355 #define SI32_CMP_A_MODE_PWPUEN_DISABLED_U32 \
356    (SI32_CMP_A_MODE_PWPUEN_DISABLED_VALUE << SI32_CMP_A_MODE_PWPUEN_SHIFT)
357 // Enable the positive input weak pull up.
358 #define SI32_CMP_A_MODE_PWPUEN_ENABLED_VALUE  1
359 #define SI32_CMP_A_MODE_PWPUEN_ENABLED_U32 \
360    (SI32_CMP_A_MODE_PWPUEN_ENABLED_VALUE << SI32_CMP_A_MODE_PWPUEN_SHIFT)
361 
362 #define SI32_CMP_A_MODE_CMPHYN_MASK  0x03000000
363 #define SI32_CMP_A_MODE_CMPHYN_SHIFT  24
364 // Disable negative hysteresis.
365 #define SI32_CMP_A_MODE_CMPHYN_DISABLED_VALUE  0
366 #define SI32_CMP_A_MODE_CMPHYN_DISABLED_U32 \
367    (SI32_CMP_A_MODE_CMPHYN_DISABLED_VALUE << SI32_CMP_A_MODE_CMPHYN_SHIFT)
368 // Set negative hysteresis to 5 mV.
369 #define SI32_CMP_A_MODE_CMPHYN_NEG_5_MV_VALUE  1
370 #define SI32_CMP_A_MODE_CMPHYN_NEG_5_MV_U32 \
371    (SI32_CMP_A_MODE_CMPHYN_NEG_5_MV_VALUE << SI32_CMP_A_MODE_CMPHYN_SHIFT)
372 // Set negative hysteresis to 10 mV.
373 #define SI32_CMP_A_MODE_CMPHYN_NEG_10_MV_VALUE  2
374 #define SI32_CMP_A_MODE_CMPHYN_NEG_10_MV_U32 \
375    (SI32_CMP_A_MODE_CMPHYN_NEG_10_MV_VALUE << SI32_CMP_A_MODE_CMPHYN_SHIFT)
376 // Set negative hysteresis to 20 mV.
377 #define SI32_CMP_A_MODE_CMPHYN_NEG_20_MV_VALUE  3
378 #define SI32_CMP_A_MODE_CMPHYN_NEG_20_MV_U32 \
379    (SI32_CMP_A_MODE_CMPHYN_NEG_20_MV_VALUE << SI32_CMP_A_MODE_CMPHYN_SHIFT)
380 
381 #define SI32_CMP_A_MODE_CMPHYP_MASK  0x0C000000
382 #define SI32_CMP_A_MODE_CMPHYP_SHIFT  26
383 // Disable positive hysteresis.
384 #define SI32_CMP_A_MODE_CMPHYP_DISABLED_VALUE  0
385 #define SI32_CMP_A_MODE_CMPHYP_DISABLED_U32 \
386    (SI32_CMP_A_MODE_CMPHYP_DISABLED_VALUE << SI32_CMP_A_MODE_CMPHYP_SHIFT)
387 // Set positive hysteresis to 5 mV.
388 #define SI32_CMP_A_MODE_CMPHYP_POS_5_MV_VALUE  1
389 #define SI32_CMP_A_MODE_CMPHYP_POS_5_MV_U32 \
390    (SI32_CMP_A_MODE_CMPHYP_POS_5_MV_VALUE << SI32_CMP_A_MODE_CMPHYP_SHIFT)
391 // Set positive hysteresis to 10 mV.
392 #define SI32_CMP_A_MODE_CMPHYP_POS_10_MV_VALUE  2
393 #define SI32_CMP_A_MODE_CMPHYP_POS_10_MV_U32 \
394    (SI32_CMP_A_MODE_CMPHYP_POS_10_MV_VALUE << SI32_CMP_A_MODE_CMPHYP_SHIFT)
395 // Set positive hysteresis to 20 mV.
396 #define SI32_CMP_A_MODE_CMPHYP_POS_20_MV_VALUE  3
397 #define SI32_CMP_A_MODE_CMPHYP_POS_20_MV_U32 \
398    (SI32_CMP_A_MODE_CMPHYP_POS_20_MV_VALUE << SI32_CMP_A_MODE_CMPHYP_SHIFT)
399 
400 #define SI32_CMP_A_MODE_INVEN_MASK  0x40000000
401 #define SI32_CMP_A_MODE_INVEN_SHIFT  30
402 // Do not invert the comparator output.
403 #define SI32_CMP_A_MODE_INVEN_DISABLED_VALUE  0
404 #define SI32_CMP_A_MODE_INVEN_DISABLED_U32 \
405    (SI32_CMP_A_MODE_INVEN_DISABLED_VALUE << SI32_CMP_A_MODE_INVEN_SHIFT)
406 // Invert the comparator output.
407 #define SI32_CMP_A_MODE_INVEN_ENABLED_VALUE  1
408 #define SI32_CMP_A_MODE_INVEN_ENABLED_U32 \
409    (SI32_CMP_A_MODE_INVEN_ENABLED_VALUE << SI32_CMP_A_MODE_INVEN_SHIFT)
410 
411 
412 
413 typedef struct SI32_CMP_A_Struct
414 {
415    struct SI32_CMP_A_CONTROL_Struct                CONTROL        ; // Base Address + 0x0
416    volatile uint32_t                               CONTROL_SET;
417    volatile uint32_t                               CONTROL_CLR;
418    uint32_t                                        reserved0;
419    struct SI32_CMP_A_MODE_Struct                   MODE           ; // Base Address + 0x10
420    volatile uint32_t                               MODE_SET;
421    volatile uint32_t                               MODE_CLR;
422    uint32_t                                        reserved1;
423 } SI32_CMP_A_Type;
424 
425 #ifdef __cplusplus
426 }
427 #endif
428 
429 #endif // __SI32_CMP_A_REGISTERS_H__
430 
431 //-eof--------------------------------------------------------------------------
432 
433