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.57
24 // Version: 1
25 
26 #ifndef __SI32_EXTVREG_A_REGISTERS_H__
27 #define __SI32_EXTVREG_A_REGISTERS_H__
28 
29 #include <stdint.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 struct SI32_EXTVREG_A_CONTROL_Struct
36 {
37    union
38    {
39       struct
40       {
41          // Stand-Alone Mode Enable
42          volatile uint32_t SAEN: 1;
43                   uint32_t reserved0: 23;
44          // Weak Pull Up/Down Enable
45          volatile uint32_t WPULLEN: 1;
46          // Foldback Limiting Enable
47          volatile uint32_t FBLEN: 1;
48          // NPN/PNP Type Select
49          volatile uint32_t PNSEL: 1;
50          // Foldback Sensing Pin Select
51          volatile uint32_t FBPINSEL: 1;
52                   uint32_t reserved1: 3;
53          // External Regulator Enable
54          volatile uint32_t EVREGEN: 1;
55       };
56       volatile uint32_t U32;
57    };
58 };
59 
60 #define SI32_EXTVREG_A_CONTROL_SAEN_MASK  0x00000001
61 #define SI32_EXTVREG_A_CONTROL_SAEN_SHIFT  0
62 // Use the external regulator in normal mode.
63 #define SI32_EXTVREG_A_CONTROL_SAEN_DISABLED_VALUE  0
64 #define SI32_EXTVREG_A_CONTROL_SAEN_DISABLED_U32 \
65    (SI32_EXTVREG_A_CONTROL_SAEN_DISABLED_VALUE << SI32_EXTVREG_A_CONTROL_SAEN_SHIFT)
66 // Use the external regulator in stand-alone mode.
67 #define SI32_EXTVREG_A_CONTROL_SAEN_ENABLED_VALUE  1
68 #define SI32_EXTVREG_A_CONTROL_SAEN_ENABLED_U32 \
69    (SI32_EXTVREG_A_CONTROL_SAEN_ENABLED_VALUE << SI32_EXTVREG_A_CONTROL_SAEN_SHIFT)
70 
71 #define SI32_EXTVREG_A_CONTROL_WPULLEN_MASK  0x01000000
72 #define SI32_EXTVREG_A_CONTROL_WPULLEN_SHIFT  24
73 // Disable the external regulator weak pull-up/down resistor on the EXREGBD pin and
74 // weak pull-down resistor on the EXREGOUT pin.
75 #define SI32_EXTVREG_A_CONTROL_WPULLEN_DISABLED_VALUE  0
76 #define SI32_EXTVREG_A_CONTROL_WPULLEN_DISABLED_U32 \
77    (SI32_EXTVREG_A_CONTROL_WPULLEN_DISABLED_VALUE << SI32_EXTVREG_A_CONTROL_WPULLEN_SHIFT)
78 // Enable the external regulator weak pull-up/down resistor on the EXREGBD pin and
79 // weak pull-down resistor on the EXREGOUT pin.
80 #define SI32_EXTVREG_A_CONTROL_WPULLEN_ENABLED_VALUE  1
81 #define SI32_EXTVREG_A_CONTROL_WPULLEN_ENABLED_U32 \
82    (SI32_EXTVREG_A_CONTROL_WPULLEN_ENABLED_VALUE << SI32_EXTVREG_A_CONTROL_WPULLEN_SHIFT)
83 
84 #define SI32_EXTVREG_A_CONTROL_FBLEN_MASK  0x02000000
85 #define SI32_EXTVREG_A_CONTROL_FBLEN_SHIFT  25
86 // Disable foldback limiting.
87 #define SI32_EXTVREG_A_CONTROL_FBLEN_DISABLED_VALUE  0
88 #define SI32_EXTVREG_A_CONTROL_FBLEN_DISABLED_U32 \
89    (SI32_EXTVREG_A_CONTROL_FBLEN_DISABLED_VALUE << SI32_EXTVREG_A_CONTROL_FBLEN_SHIFT)
90 // Enable foldback limiting.
91 #define SI32_EXTVREG_A_CONTROL_FBLEN_ENABLED_VALUE  1
92 #define SI32_EXTVREG_A_CONTROL_FBLEN_ENABLED_U32 \
93    (SI32_EXTVREG_A_CONTROL_FBLEN_ENABLED_VALUE << SI32_EXTVREG_A_CONTROL_FBLEN_SHIFT)
94 
95 #define SI32_EXTVREG_A_CONTROL_PNSEL_MASK  0x04000000
96 #define SI32_EXTVREG_A_CONTROL_PNSEL_SHIFT  26
97 // Select NPN Mode.
98 #define SI32_EXTVREG_A_CONTROL_PNSEL_NPN_VALUE  0
99 #define SI32_EXTVREG_A_CONTROL_PNSEL_NPN_U32 \
100    (SI32_EXTVREG_A_CONTROL_PNSEL_NPN_VALUE << SI32_EXTVREG_A_CONTROL_PNSEL_SHIFT)
101 // Select PNP Mode.
102 #define SI32_EXTVREG_A_CONTROL_PNSEL_PNP_VALUE  1
103 #define SI32_EXTVREG_A_CONTROL_PNSEL_PNP_U32 \
104    (SI32_EXTVREG_A_CONTROL_PNSEL_PNP_VALUE << SI32_EXTVREG_A_CONTROL_PNSEL_SHIFT)
105 
106 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_MASK  0x08000000
107 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_SHIFT  27
108 // Use the input to the EXREGSN pin for foldback limiting.
109 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_EXREGSN_VALUE  0
110 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_EXREGSN_U32 \
111    (SI32_EXTVREG_A_CONTROL_FBPINSEL_EXREGSN_VALUE << SI32_EXTVREG_A_CONTROL_FBPINSEL_SHIFT)
112 // Use the input to the VREGIN pin for foldback limiting.
113 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_VREGIN_VALUE  1
114 #define SI32_EXTVREG_A_CONTROL_FBPINSEL_VREGIN_U32 \
115    (SI32_EXTVREG_A_CONTROL_FBPINSEL_VREGIN_VALUE << SI32_EXTVREG_A_CONTROL_FBPINSEL_SHIFT)
116 
117 #define SI32_EXTVREG_A_CONTROL_EVREGEN_MASK  0x80000000
118 #define SI32_EXTVREG_A_CONTROL_EVREGEN_SHIFT  31
119 // Disable the external regulator.
120 #define SI32_EXTVREG_A_CONTROL_EVREGEN_DISABLED_VALUE  0U
121 #define SI32_EXTVREG_A_CONTROL_EVREGEN_DISABLED_U32 \
122    (SI32_EXTVREG_A_CONTROL_EVREGEN_DISABLED_VALUE << SI32_EXTVREG_A_CONTROL_EVREGEN_SHIFT)
123 // Enable the external regulator.
124 #define SI32_EXTVREG_A_CONTROL_EVREGEN_ENABLED_VALUE  1U
125 #define SI32_EXTVREG_A_CONTROL_EVREGEN_ENABLED_U32 \
126    (SI32_EXTVREG_A_CONTROL_EVREGEN_ENABLED_VALUE << SI32_EXTVREG_A_CONTROL_EVREGEN_SHIFT)
127 
128 
129 
130 struct SI32_EXTVREG_A_CONFIG_Struct
131 {
132    union
133    {
134       struct
135       {
136          // Minimum Current Fine Select
137          volatile uint32_t IMINFINE: 2;
138          // Minimum Current Select
139          volatile uint32_t IMIN: 3;
140                   uint32_t reserved0: 3;
141          // Foldback Voltage Offset Select
142          volatile uint32_t FBVOSEL: 3;
143                   uint32_t reserved1: 1;
144          // Voltage Sense Gain Multiplier
145          volatile uint32_t FBRATE: 3;
146                   uint32_t reserved2: 1;
147          // Maximum Current Select
148          volatile uint32_t IMAX: 3;
149                   uint32_t reserved3: 5;
150          // Regulator Output Voltage Select
151          volatile uint32_t VOUTSEL: 6;
152                   uint32_t reserved4: 2;
153       };
154       volatile uint32_t U32;
155    };
156 };
157 
158 #define SI32_EXTVREG_A_CONFIG_IMINFINE_MASK  0x00000003
159 #define SI32_EXTVREG_A_CONFIG_IMINFINE_SHIFT  0
160 // Minimum current limit is IMIN current + 0 uA.
161 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0_UA_VALUE  0
162 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0_UA_U32 \
163    (SI32_EXTVREG_A_CONFIG_IMINFINE_0_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMINFINE_SHIFT)
164 // Minimum current limit is IMIN current + 0.25 uA.
165 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P25_UA_VALUE  1
166 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P25_UA_U32 \
167    (SI32_EXTVREG_A_CONFIG_IMINFINE_0P25_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMINFINE_SHIFT)
168 // Minimum current limit is IMIN current + 0.50 uA.
169 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P5_UA_VALUE  2
170 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P5_UA_U32 \
171    (SI32_EXTVREG_A_CONFIG_IMINFINE_0P5_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMINFINE_SHIFT)
172 // Minimum current limit is IMIN current + 0.75 uA.
173 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P75_UA_VALUE  3
174 #define SI32_EXTVREG_A_CONFIG_IMINFINE_0P75_UA_U32 \
175    (SI32_EXTVREG_A_CONFIG_IMINFINE_0P75_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMINFINE_SHIFT)
176 
177 #define SI32_EXTVREG_A_CONFIG_IMIN_MASK  0x0000001C
178 #define SI32_EXTVREG_A_CONFIG_IMIN_SHIFT  2
179 // Minimum current limit is 1 uA + IMINFINE current.
180 #define SI32_EXTVREG_A_CONFIG_IMIN_1_UA_VALUE  0
181 #define SI32_EXTVREG_A_CONFIG_IMIN_1_UA_U32 \
182    (SI32_EXTVREG_A_CONFIG_IMIN_1_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT)
183 // Minimum current limit is 2 uA + IMINFINE current.
184 #define SI32_EXTVREG_A_CONFIG_IMIN_2_UA_VALUE  1
185 #define SI32_EXTVREG_A_CONFIG_IMIN_2_UA_U32 \
186    (SI32_EXTVREG_A_CONFIG_IMIN_2_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT)
187 // Minimum current limit is 3 uA + IMINFINE current.
188 #define SI32_EXTVREG_A_CONFIG_IMIN_3_UA_VALUE  2
189 #define SI32_EXTVREG_A_CONFIG_IMIN_3_UA_U32 \
190    (SI32_EXTVREG_A_CONFIG_IMIN_3_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT)
191 // Minimum current limit is 4 uA + IMINFINE current.
192 #define SI32_EXTVREG_A_CONFIG_IMIN_4_UA_VALUE  3
193 #define SI32_EXTVREG_A_CONFIG_IMIN_4_UA_U32 \
194    (SI32_EXTVREG_A_CONFIG_IMIN_4_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT)
195 // Minimum current limit is 5 uA + IMINFINE current.
196 #define SI32_EXTVREG_A_CONFIG_IMIN_5_UA_VALUE  4
197 #define SI32_EXTVREG_A_CONFIG_IMIN_5_UA_U32 \
198    (SI32_EXTVREG_A_CONFIG_IMIN_5_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT)
199 // Minimum current limit is 6 uA + IMINFINE current.
200 #define SI32_EXTVREG_A_CONFIG_IMIN_6_UA_VALUE  5
201 #define SI32_EXTVREG_A_CONFIG_IMIN_6_UA_U32 \
202    (SI32_EXTVREG_A_CONFIG_IMIN_6_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT)
203 // Minimum current limit is 7 uA + IMINFINE current.
204 #define SI32_EXTVREG_A_CONFIG_IMIN_7_UA_VALUE  6
205 #define SI32_EXTVREG_A_CONFIG_IMIN_7_UA_U32 \
206    (SI32_EXTVREG_A_CONFIG_IMIN_7_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT)
207 // Minimum current limit is 8 uA + IMINFINE current.
208 #define SI32_EXTVREG_A_CONFIG_IMIN_8_UA_VALUE  7
209 #define SI32_EXTVREG_A_CONFIG_IMIN_8_UA_U32 \
210    (SI32_EXTVREG_A_CONFIG_IMIN_8_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMIN_SHIFT)
211 
212 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_MASK  0x00000700
213 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT  8
214 // Foldback voltage offset is 0 V.
215 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_0_V_VALUE  0
216 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_0_V_U32 \
217    (SI32_EXTVREG_A_CONFIG_FBVOSEL_0_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT)
218 // Foldback voltage offset is 0.5 V.
219 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_0P5_V_VALUE  1
220 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_0P5_V_U32 \
221    (SI32_EXTVREG_A_CONFIG_FBVOSEL_0P5_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT)
222 // Foldback voltage offset is 1 V.
223 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_1_V_VALUE  2
224 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_1_V_U32 \
225    (SI32_EXTVREG_A_CONFIG_FBVOSEL_1_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT)
226 // Foldback voltage offset is 1.5 V.
227 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_1P5_V_VALUE  3
228 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_1P5_V_U32 \
229    (SI32_EXTVREG_A_CONFIG_FBVOSEL_1P5_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT)
230 // Foldback voltage offset is 2 V.
231 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_2_V_VALUE  4
232 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_2_V_U32 \
233    (SI32_EXTVREG_A_CONFIG_FBVOSEL_2_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT)
234 // Foldback voltage offset is 2.5 V.
235 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_2P5_V_VALUE  5
236 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_2P5_V_U32 \
237    (SI32_EXTVREG_A_CONFIG_FBVOSEL_2P5_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT)
238 // Foldback voltage offset is 3 V.
239 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_3_V_VALUE  6
240 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_3_V_U32 \
241    (SI32_EXTVREG_A_CONFIG_FBVOSEL_3_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT)
242 // Foldback voltage offset is 3.5 V.
243 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_3P5_V_VALUE  7
244 #define SI32_EXTVREG_A_CONFIG_FBVOSEL_3P5_V_U32 \
245    (SI32_EXTVREG_A_CONFIG_FBVOSEL_3P5_V_VALUE << SI32_EXTVREG_A_CONFIG_FBVOSEL_SHIFT)
246 
247 #define SI32_EXTVREG_A_CONFIG_FBRATE_MASK  0x00007000
248 #define SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT  12
249 // Set the foldback rate to 4 uA/V.
250 #define SI32_EXTVREG_A_CONFIG_FBRATE_4_UA_PER_V_VALUE  0
251 #define SI32_EXTVREG_A_CONFIG_FBRATE_4_UA_PER_V_U32 \
252    (SI32_EXTVREG_A_CONFIG_FBRATE_4_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT)
253 // Set the foldback rate to 2 uA/V.
254 #define SI32_EXTVREG_A_CONFIG_FBRATE_2_UA_PER_V_VALUE  1
255 #define SI32_EXTVREG_A_CONFIG_FBRATE_2_UA_PER_V_U32 \
256    (SI32_EXTVREG_A_CONFIG_FBRATE_2_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT)
257 // Set the foldback rate to 1 uA/V.
258 #define SI32_EXTVREG_A_CONFIG_FBRATE_1_UA_PER_V_VALUE  2
259 #define SI32_EXTVREG_A_CONFIG_FBRATE_1_UA_PER_V_U32 \
260    (SI32_EXTVREG_A_CONFIG_FBRATE_1_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT)
261 // Set the foldback rate to 0.5 uA/V.
262 #define SI32_EXTVREG_A_CONFIG_FBRATE_0P5_UA_PER_V_VALUE  3
263 #define SI32_EXTVREG_A_CONFIG_FBRATE_0P5_UA_PER_V_U32 \
264    (SI32_EXTVREG_A_CONFIG_FBRATE_0P5_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT)
265 // Set the foldback rate to 8 uA/V.
266 #define SI32_EXTVREG_A_CONFIG_FBRATE_8_UA_PER_V_VALUE  5
267 #define SI32_EXTVREG_A_CONFIG_FBRATE_8_UA_PER_V_U32 \
268    (SI32_EXTVREG_A_CONFIG_FBRATE_8_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT)
269 // Set the foldback rate to 16 uA/V.
270 #define SI32_EXTVREG_A_CONFIG_FBRATE_16_UA_PER_V_VALUE  6
271 #define SI32_EXTVREG_A_CONFIG_FBRATE_16_UA_PER_V_U32 \
272    (SI32_EXTVREG_A_CONFIG_FBRATE_16_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT)
273 // Set the foldback rate to 32 uA/V.
274 #define SI32_EXTVREG_A_CONFIG_FBRATE_32_UA_PER_V_VALUE  7
275 #define SI32_EXTVREG_A_CONFIG_FBRATE_32_UA_PER_V_U32 \
276    (SI32_EXTVREG_A_CONFIG_FBRATE_32_UA_PER_V_VALUE << SI32_EXTVREG_A_CONFIG_FBRATE_SHIFT)
277 
278 #define SI32_EXTVREG_A_CONFIG_IMAX_MASK  0x00070000
279 #define SI32_EXTVREG_A_CONFIG_IMAX_SHIFT  16
280 // Maximum current limit is 2 uA.
281 #define SI32_EXTVREG_A_CONFIG_IMAX_2_UA_VALUE  0
282 #define SI32_EXTVREG_A_CONFIG_IMAX_2_UA_U32 \
283    (SI32_EXTVREG_A_CONFIG_IMAX_2_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT)
284 // Maximum current limit is 3 uA.
285 #define SI32_EXTVREG_A_CONFIG_IMAX_3_UA_VALUE  1
286 #define SI32_EXTVREG_A_CONFIG_IMAX_3_UA_U32 \
287    (SI32_EXTVREG_A_CONFIG_IMAX_3_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT)
288 // Maximum current limit is 4 uA.
289 #define SI32_EXTVREG_A_CONFIG_IMAX_4_UA_VALUE  2
290 #define SI32_EXTVREG_A_CONFIG_IMAX_4_UA_U32 \
291    (SI32_EXTVREG_A_CONFIG_IMAX_4_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT)
292 // Maximum current limit is 5 uA.
293 #define SI32_EXTVREG_A_CONFIG_IMAX_5_UA_VALUE  3
294 #define SI32_EXTVREG_A_CONFIG_IMAX_5_UA_U32 \
295    (SI32_EXTVREG_A_CONFIG_IMAX_5_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT)
296 // Maximum current limit is 6 uA.
297 #define SI32_EXTVREG_A_CONFIG_IMAX_6_UA_VALUE  4
298 #define SI32_EXTVREG_A_CONFIG_IMAX_6_UA_U32 \
299    (SI32_EXTVREG_A_CONFIG_IMAX_6_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT)
300 // Maximum current limit is 7 uA.
301 #define SI32_EXTVREG_A_CONFIG_IMAX_7_UA_VALUE  5
302 #define SI32_EXTVREG_A_CONFIG_IMAX_7_UA_U32 \
303    (SI32_EXTVREG_A_CONFIG_IMAX_7_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT)
304 // Maximum current limit is 8 uA.
305 #define SI32_EXTVREG_A_CONFIG_IMAX_8_UA_VALUE  6
306 #define SI32_EXTVREG_A_CONFIG_IMAX_8_UA_U32 \
307    (SI32_EXTVREG_A_CONFIG_IMAX_8_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT)
308 // Maximum current limit is 9 uA.
309 #define SI32_EXTVREG_A_CONFIG_IMAX_9_UA_VALUE  7
310 #define SI32_EXTVREG_A_CONFIG_IMAX_9_UA_U32 \
311    (SI32_EXTVREG_A_CONFIG_IMAX_9_UA_VALUE << SI32_EXTVREG_A_CONFIG_IMAX_SHIFT)
312 
313 #define SI32_EXTVREG_A_CONFIG_VOUTSEL_MASK  0x3F000000
314 #define SI32_EXTVREG_A_CONFIG_VOUTSEL_SHIFT  24
315 
316 
317 
318 struct SI32_EXTVREG_A_STATUS_Struct
319 {
320    union
321    {
322       struct
323       {
324          // Maximum Foldback Flag
325          volatile uint32_t FBMAXF: 1;
326                   uint32_t reserved0: 31;
327       };
328       volatile uint32_t U32;
329    };
330 };
331 
332 #define SI32_EXTVREG_A_STATUS_FBMAXF_MASK  0x00000001
333 #define SI32_EXTVREG_A_STATUS_FBMAXF_SHIFT  0
334 // Maximum foldback has not been reached.
335 #define SI32_EXTVREG_A_STATUS_FBMAXF_NOT_SET_VALUE  0
336 #define SI32_EXTVREG_A_STATUS_FBMAXF_NOT_SET_U32 \
337    (SI32_EXTVREG_A_STATUS_FBMAXF_NOT_SET_VALUE << SI32_EXTVREG_A_STATUS_FBMAXF_SHIFT)
338 // Maximum foldback has been reached.
339 #define SI32_EXTVREG_A_STATUS_FBMAXF_SET_VALUE  1
340 #define SI32_EXTVREG_A_STATUS_FBMAXF_SET_U32 \
341    (SI32_EXTVREG_A_STATUS_FBMAXF_SET_VALUE << SI32_EXTVREG_A_STATUS_FBMAXF_SHIFT)
342 
343 
344 
345 struct SI32_EXTVREG_A_CSCONTROL_Struct
346 {
347    union
348    {
349       struct
350       {
351                   uint32_t reserved0: 30;
352          // External Regulator Current Sense Enable
353          volatile uint32_t ISNSEN: 1;
354          // ADC Current Sense Enable
355          volatile uint32_t ADCISNSEN: 1;
356       };
357       volatile uint32_t U32;
358    };
359 };
360 
361 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_MASK  0x40000000
362 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_SHIFT  30
363 // Disable external regulator current sensing.
364 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_DISABLED_VALUE  0
365 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_DISABLED_U32 \
366    (SI32_EXTVREG_A_CSCONTROL_ISNSEN_DISABLED_VALUE << SI32_EXTVREG_A_CSCONTROL_ISNSEN_SHIFT)
367 // Enable external regulator current sensing.
368 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_ENABLED_VALUE  1
369 #define SI32_EXTVREG_A_CSCONTROL_ISNSEN_ENABLED_U32 \
370    (SI32_EXTVREG_A_CSCONTROL_ISNSEN_ENABLED_VALUE << SI32_EXTVREG_A_CSCONTROL_ISNSEN_SHIFT)
371 
372 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_MASK  0x80000000
373 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_SHIFT  31
374 // Disable ADC current sensing.
375 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_DISABLED_VALUE  0U
376 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_DISABLED_U32 \
377    (SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_DISABLED_VALUE << SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_SHIFT)
378 // Enable ADC current sensing.
379 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_ENABLED_VALUE  1U
380 #define SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_ENABLED_U32 \
381    (SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_ENABLED_VALUE << SI32_EXTVREG_A_CSCONTROL_ADCISNSEN_SHIFT)
382 
383 
384 
385 struct SI32_EXTVREG_A_CSCONFIG_Struct
386 {
387    union
388    {
389       struct
390       {
391          // ADC Current Sense Gain
392          volatile uint32_t ISADCGAIN: 3;
393          // External Regulator Current Sense Gain
394          volatile uint32_t ISOGAIN: 3;
395          // External Regulator Current Sense Input Select
396          volatile uint32_t ISINSEL: 2;
397                   uint32_t reserved0: 24;
398       };
399       volatile uint32_t U32;
400    };
401 };
402 
403 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_MASK  0x00000007
404 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT  0
405 // ADC current sensing input gain is 16.
406 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_16X_VALUE  0
407 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_16X_U32 \
408    (SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_16X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT)
409 // ADC current sensing input gain is 8.
410 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_8X_VALUE  1
411 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_8X_U32 \
412    (SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_8X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT)
413 // ADC current sensing input gain is 4.
414 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_4X_VALUE  2
415 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_4X_U32 \
416    (SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_4X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT)
417 // ADC current sensing input gain is 2.
418 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_2X_VALUE  3
419 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_2X_U32 \
420    (SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_2X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT)
421 // ADC current sensing input gain is 1.
422 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_1X_VALUE  4
423 #define SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_1X_U32 \
424    (SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_1X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISADCGAIN_SHIFT)
425 
426 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_MASK  0x00000038
427 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT  3
428 // External regulator current sensing gain is 16.
429 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_16X_VALUE  0
430 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_16X_U32 \
431    (SI32_EXTVREG_A_CSCONFIG_ISOGAIN_16X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT)
432 // External regulator current sensing gain is 8.
433 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_8X_VALUE  1
434 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_8X_U32 \
435    (SI32_EXTVREG_A_CSCONFIG_ISOGAIN_8X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT)
436 // External regulator current sensing gain is 4.
437 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_4X_VALUE  2
438 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_4X_U32 \
439    (SI32_EXTVREG_A_CSCONFIG_ISOGAIN_4X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT)
440 // External regulator current sensing gain is 2.
441 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_2X_VALUE  3
442 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_2X_U32 \
443    (SI32_EXTVREG_A_CSCONFIG_ISOGAIN_2X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT)
444 // External regulator current sensing gain is 1.
445 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_1X_VALUE  4
446 #define SI32_EXTVREG_A_CSCONFIG_ISOGAIN_1X_U32 \
447    (SI32_EXTVREG_A_CSCONFIG_ISOGAIN_1X_VALUE << SI32_EXTVREG_A_CSCONFIG_ISOGAIN_SHIFT)
448 
449 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MASK  0x000000C0
450 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_SHIFT  6
451 // Select external regulator current sensing mode 0.
452 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE0_VALUE  0
453 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE0_U32 \
454    (SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE0_VALUE << SI32_EXTVREG_A_CSCONFIG_ISINSEL_SHIFT)
455 // Select external regulator current sensing mode 1.
456 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE1_VALUE  1
457 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE1_U32 \
458    (SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE1_VALUE << SI32_EXTVREG_A_CSCONFIG_ISINSEL_SHIFT)
459 // Select external regulator current sensing mode 2.
460 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE2_VALUE  2
461 #define SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE2_U32 \
462    (SI32_EXTVREG_A_CSCONFIG_ISINSEL_MODE2_VALUE << SI32_EXTVREG_A_CSCONFIG_ISINSEL_SHIFT)
463 
464 
465 
466 typedef struct SI32_EXTVREG_A_Struct
467 {
468    struct SI32_EXTVREG_A_CONTROL_Struct            CONTROL        ; // Base Address + 0x0
469    volatile uint32_t                               CONTROL_SET;
470    volatile uint32_t                               CONTROL_CLR;
471    uint32_t                                        reserved0;
472    struct SI32_EXTVREG_A_CONFIG_Struct             CONFIG         ; // Base Address + 0x10
473    uint32_t                                        reserved1;
474    uint32_t                                        reserved2;
475    uint32_t                                        reserved3;
476    struct SI32_EXTVREG_A_STATUS_Struct             STATUS         ; // Base Address + 0x20
477    uint32_t                                        reserved4;
478    uint32_t                                        reserved5;
479    uint32_t                                        reserved6;
480    uint32_t                                        reserved7[4];
481    struct SI32_EXTVREG_A_CSCONTROL_Struct          CSCONTROL      ; // Base Address + 0x40
482    volatile uint32_t                               CSCONTROL_SET;
483    volatile uint32_t                               CSCONTROL_CLR;
484    uint32_t                                        reserved8;
485    struct SI32_EXTVREG_A_CSCONFIG_Struct           CSCONFIG       ; // Base Address + 0x50
486    uint32_t                                        reserved9;
487    uint32_t                                        reserved10;
488    uint32_t                                        reserved11;
489 } SI32_EXTVREG_A_Type;
490 
491 #ifdef __cplusplus
492 }
493 #endif
494 
495 #endif // __SI32_EXTVREG_A_REGISTERS_H__
496 
497 //-eof--------------------------------------------------------------------------
498 
499