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_DCDC_A_REGISTERS_H__
27 #define __SI32_DCDC_A_REGISTERS_H__
28 
29 #include <stdint.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 struct SI32_DCDC_A_CONTROL_Struct
36 {
37    union
38    {
39       struct
40       {
41          // DC-DC Converter Ready Low Flag
42          volatile uint32_t RDYLOWF: 1;
43          // DC-DC Converter Ready High Flag
44          volatile uint32_t RDYHIGHF: 1;
45          // DC-DC Converter Dropout Flag
46          volatile uint32_t DROPOUTF: 1;
47          // Bandgap Ready Flag
48          volatile uint32_t BGRDYF: 1;
49                   uint32_t reserved0: 4;
50          // Oscillator Disable
51          volatile uint32_t OSCDIS: 1;
52          // Clock Source Select
53          volatile uint32_t CLKSEL: 1;
54          // Clock Divider
55          volatile uint32_t CLKDIV: 3;
56          // ADC Synchronization Enable
57          volatile uint32_t ADCSYNCEN: 1;
58          // Clock Inversion Enable
59          volatile uint32_t CLKINVEN: 1;
60          // ADC Clock Inversion Enable
61          volatile uint32_t ADCCLKINVEN: 1;
62          // Output Voltage Select
63          volatile uint32_t OUTVSEL: 5;
64                   uint32_t reserved1: 1;
65          // Module Interrupt Enable
66          volatile uint32_t MIEN: 1;
67                   uint32_t reserved2: 1;
68          // Minimum Pulse Width Select
69          volatile uint32_t MINPWSEL: 2;
70          // Power Switch Mode
71          volatile uint32_t PSMD: 2;
72          // Asynchronous Mode Enable
73          volatile uint32_t ASYNCEN: 1;
74          // Automatic Bypass Enable
75          volatile uint32_t ABEN: 1;
76          // Bypass Enable
77          volatile uint32_t BEN: 1;
78          // DC-DC Converter Enable
79          volatile uint32_t DCDCEN: 1;
80       };
81       volatile uint32_t U32;
82    };
83 };
84 
85 #define SI32_DCDC_A_CONTROL_RDYLOWF_MASK  0x00000001
86 #define SI32_DCDC_A_CONTROL_RDYLOWF_SHIFT  0
87 // The output voltage (VDC) is below the threshold set in the RDYLOWTH threshold
88 // field (RDYLOWTH).
89 #define SI32_DCDC_A_CONTROL_RDYLOWF_NOT_SET_VALUE  0
90 #define SI32_DCDC_A_CONTROL_RDYLOWF_NOT_SET_U32 \
91    (SI32_DCDC_A_CONTROL_RDYLOWF_NOT_SET_VALUE << SI32_DCDC_A_CONTROL_RDYLOWF_SHIFT)
92 // The output voltage (VDC) is above the threshold set in the RDYLOWTH threshold
93 // field (RDYLOWTH).
94 #define SI32_DCDC_A_CONTROL_RDYLOWF_SET_VALUE  1
95 #define SI32_DCDC_A_CONTROL_RDYLOWF_SET_U32 \
96    (SI32_DCDC_A_CONTROL_RDYLOWF_SET_VALUE << SI32_DCDC_A_CONTROL_RDYLOWF_SHIFT)
97 
98 #define SI32_DCDC_A_CONTROL_RDYHIGHF_MASK  0x00000002
99 #define SI32_DCDC_A_CONTROL_RDYHIGHF_SHIFT  1
100 // The output voltage (VDC) has not exceeded 105% of the programmed output value.
101 #define SI32_DCDC_A_CONTROL_RDYHIGHF_NOT_SET_VALUE  0
102 #define SI32_DCDC_A_CONTROL_RDYHIGHF_NOT_SET_U32 \
103    (SI32_DCDC_A_CONTROL_RDYHIGHF_NOT_SET_VALUE << SI32_DCDC_A_CONTROL_RDYHIGHF_SHIFT)
104 // The output voltage (VDC) has exceeded 105% of the programmed output value.
105 #define SI32_DCDC_A_CONTROL_RDYHIGHF_SET_VALUE  1
106 #define SI32_DCDC_A_CONTROL_RDYHIGHF_SET_U32 \
107    (SI32_DCDC_A_CONTROL_RDYHIGHF_SET_VALUE << SI32_DCDC_A_CONTROL_RDYHIGHF_SHIFT)
108 
109 #define SI32_DCDC_A_CONTROL_DROPOUTF_MASK  0x00000004
110 #define SI32_DCDC_A_CONTROL_DROPOUTF_SHIFT  2
111 // The input voltage (VBATDC) is more than 0.4 V above the output voltage (VDC).
112 // The DC-DC converter is not in dropout.
113 #define SI32_DCDC_A_CONTROL_DROPOUTF_NOT_SET_VALUE  0
114 #define SI32_DCDC_A_CONTROL_DROPOUTF_NOT_SET_U32 \
115    (SI32_DCDC_A_CONTROL_DROPOUTF_NOT_SET_VALUE << SI32_DCDC_A_CONTROL_DROPOUTF_SHIFT)
116 // The input voltage (VBATDC) is less than 0.4 V above the output voltage (VDC).
117 // The DC-DC converter is in dropout, and firmware should enable the bypass switch
118 // (BEN=1).
119 #define SI32_DCDC_A_CONTROL_DROPOUTF_SET_VALUE  1
120 #define SI32_DCDC_A_CONTROL_DROPOUTF_SET_U32 \
121    (SI32_DCDC_A_CONTROL_DROPOUTF_SET_VALUE << SI32_DCDC_A_CONTROL_DROPOUTF_SHIFT)
122 
123 #define SI32_DCDC_A_CONTROL_BGRDYF_MASK  0x00000008
124 #define SI32_DCDC_A_CONTROL_BGRDYF_SHIFT  3
125 // The bandgap voltage is not above the threshold.
126 #define SI32_DCDC_A_CONTROL_BGRDYF_NOT_SET_VALUE  0
127 #define SI32_DCDC_A_CONTROL_BGRDYF_NOT_SET_U32 \
128    (SI32_DCDC_A_CONTROL_BGRDYF_NOT_SET_VALUE << SI32_DCDC_A_CONTROL_BGRDYF_SHIFT)
129 // The bandgap voltage is above the threshold.
130 #define SI32_DCDC_A_CONTROL_BGRDYF_SET_VALUE  1
131 #define SI32_DCDC_A_CONTROL_BGRDYF_SET_U32 \
132    (SI32_DCDC_A_CONTROL_BGRDYF_SET_VALUE << SI32_DCDC_A_CONTROL_BGRDYF_SHIFT)
133 
134 #define SI32_DCDC_A_CONTROL_OSCDIS_MASK  0x00000100
135 #define SI32_DCDC_A_CONTROL_OSCDIS_SHIFT  8
136 // Enable the DC-DC local oscillator.
137 #define SI32_DCDC_A_CONTROL_OSCDIS_INACTIVE_VALUE  0
138 #define SI32_DCDC_A_CONTROL_OSCDIS_INACTIVE_U32 \
139    (SI32_DCDC_A_CONTROL_OSCDIS_INACTIVE_VALUE << SI32_DCDC_A_CONTROL_OSCDIS_SHIFT)
140 // Disable the DC-DC local oscillator.
141 #define SI32_DCDC_A_CONTROL_OSCDIS_ACTIVE_VALUE  1
142 #define SI32_DCDC_A_CONTROL_OSCDIS_ACTIVE_U32 \
143    (SI32_DCDC_A_CONTROL_OSCDIS_ACTIVE_VALUE << SI32_DCDC_A_CONTROL_OSCDIS_SHIFT)
144 
145 #define SI32_DCDC_A_CONTROL_CLKSEL_MASK  0x00000200
146 #define SI32_DCDC_A_CONTROL_CLKSEL_SHIFT  9
147 // Select the local DC-DC oscillator as the clock source.
148 #define SI32_DCDC_A_CONTROL_CLKSEL_DCDCOSC_VALUE  0
149 #define SI32_DCDC_A_CONTROL_CLKSEL_DCDCOSC_U32 \
150    (SI32_DCDC_A_CONTROL_CLKSEL_DCDCOSC_VALUE << SI32_DCDC_A_CONTROL_CLKSEL_SHIFT)
151 // Select the APB clock as the clock source.
152 #define SI32_DCDC_A_CONTROL_CLKSEL_APB_VALUE  1
153 #define SI32_DCDC_A_CONTROL_CLKSEL_APB_U32 \
154    (SI32_DCDC_A_CONTROL_CLKSEL_APB_VALUE << SI32_DCDC_A_CONTROL_CLKSEL_SHIFT)
155 
156 #define SI32_DCDC_A_CONTROL_CLKDIV_MASK  0x00001C00
157 #define SI32_DCDC_A_CONTROL_CLKDIV_SHIFT  10
158 // Use the APB clock divided by 1 as the converter switching frequency.
159 #define SI32_DCDC_A_CONTROL_CLKDIV_DIV1_VALUE  0
160 #define SI32_DCDC_A_CONTROL_CLKDIV_DIV1_U32 \
161    (SI32_DCDC_A_CONTROL_CLKDIV_DIV1_VALUE << SI32_DCDC_A_CONTROL_CLKDIV_SHIFT)
162 // Use the APB clock divided by 2 as the converter switching frequency.
163 #define SI32_DCDC_A_CONTROL_CLKDIV_DIV2_VALUE  1
164 #define SI32_DCDC_A_CONTROL_CLKDIV_DIV2_U32 \
165    (SI32_DCDC_A_CONTROL_CLKDIV_DIV2_VALUE << SI32_DCDC_A_CONTROL_CLKDIV_SHIFT)
166 // Use the APB clock divided by 4 as the converter switching frequency.
167 #define SI32_DCDC_A_CONTROL_CLKDIV_DIV4_VALUE  2
168 #define SI32_DCDC_A_CONTROL_CLKDIV_DIV4_U32 \
169    (SI32_DCDC_A_CONTROL_CLKDIV_DIV4_VALUE << SI32_DCDC_A_CONTROL_CLKDIV_SHIFT)
170 // Use the APB clock divided by 8 as the converter switching frequency.
171 #define SI32_DCDC_A_CONTROL_CLKDIV_DIV8_VALUE  3
172 #define SI32_DCDC_A_CONTROL_CLKDIV_DIV8_U32 \
173    (SI32_DCDC_A_CONTROL_CLKDIV_DIV8_VALUE << SI32_DCDC_A_CONTROL_CLKDIV_SHIFT)
174 // Use the APB clock divided by 16 as the converter switching frequency.
175 #define SI32_DCDC_A_CONTROL_CLKDIV_DIV16_VALUE  4
176 #define SI32_DCDC_A_CONTROL_CLKDIV_DIV16_U32 \
177    (SI32_DCDC_A_CONTROL_CLKDIV_DIV16_VALUE << SI32_DCDC_A_CONTROL_CLKDIV_SHIFT)
178 
179 #define SI32_DCDC_A_CONTROL_ADCSYNCEN_MASK  0x00002000
180 #define SI32_DCDC_A_CONTROL_ADCSYNCEN_SHIFT  13
181 // Do not synchronize the ADC to the DC-DC converter.
182 #define SI32_DCDC_A_CONTROL_ADCSYNCEN_DISABLED_VALUE  0
183 #define SI32_DCDC_A_CONTROL_ADCSYNCEN_DISABLED_U32 \
184    (SI32_DCDC_A_CONTROL_ADCSYNCEN_DISABLED_VALUE << SI32_DCDC_A_CONTROL_ADCSYNCEN_SHIFT)
185 // Synchronize the ADC to the DC-DC converter.
186 #define SI32_DCDC_A_CONTROL_ADCSYNCEN_ENABLED_VALUE  1
187 #define SI32_DCDC_A_CONTROL_ADCSYNCEN_ENABLED_U32 \
188    (SI32_DCDC_A_CONTROL_ADCSYNCEN_ENABLED_VALUE << SI32_DCDC_A_CONTROL_ADCSYNCEN_SHIFT)
189 
190 #define SI32_DCDC_A_CONTROL_CLKINVEN_MASK  0x00004000
191 #define SI32_DCDC_A_CONTROL_CLKINVEN_SHIFT  14
192 // Do not invert the APB clock input.
193 #define SI32_DCDC_A_CONTROL_CLKINVEN_DISABLED_VALUE  0
194 #define SI32_DCDC_A_CONTROL_CLKINVEN_DISABLED_U32 \
195    (SI32_DCDC_A_CONTROL_CLKINVEN_DISABLED_VALUE << SI32_DCDC_A_CONTROL_CLKINVEN_SHIFT)
196 // Invert the APB clock input.
197 #define SI32_DCDC_A_CONTROL_CLKINVEN_ENABLED_VALUE  1
198 #define SI32_DCDC_A_CONTROL_CLKINVEN_ENABLED_U32 \
199    (SI32_DCDC_A_CONTROL_CLKINVEN_ENABLED_VALUE << SI32_DCDC_A_CONTROL_CLKINVEN_SHIFT)
200 
201 #define SI32_DCDC_A_CONTROL_ADCCLKINVEN_MASK  0x00008000
202 #define SI32_DCDC_A_CONTROL_ADCCLKINVEN_SHIFT  15
203 // Do not invert the ADC clock derived from the DC-DC switching frequency.
204 #define SI32_DCDC_A_CONTROL_ADCCLKINVEN_DISABLED_VALUE  0
205 #define SI32_DCDC_A_CONTROL_ADCCLKINVEN_DISABLED_U32 \
206    (SI32_DCDC_A_CONTROL_ADCCLKINVEN_DISABLED_VALUE << SI32_DCDC_A_CONTROL_ADCCLKINVEN_SHIFT)
207 // Invert the ADC clock derived from the DC-DC switching frequency.
208 #define SI32_DCDC_A_CONTROL_ADCCLKINVEN_ENABLED_VALUE  1
209 #define SI32_DCDC_A_CONTROL_ADCCLKINVEN_ENABLED_U32 \
210    (SI32_DCDC_A_CONTROL_ADCCLKINVEN_ENABLED_VALUE << SI32_DCDC_A_CONTROL_ADCCLKINVEN_SHIFT)
211 
212 #define SI32_DCDC_A_CONTROL_OUTVSEL_MASK  0x001F0000
213 #define SI32_DCDC_A_CONTROL_OUTVSEL_SHIFT  16
214 
215 #define SI32_DCDC_A_CONTROL_MIEN_MASK  0x00400000
216 #define SI32_DCDC_A_CONTROL_MIEN_SHIFT  22
217 // Disable DC-DC module interrupts.
218 #define SI32_DCDC_A_CONTROL_MIEN_DISABLED_VALUE  0
219 #define SI32_DCDC_A_CONTROL_MIEN_DISABLED_U32 \
220    (SI32_DCDC_A_CONTROL_MIEN_DISABLED_VALUE << SI32_DCDC_A_CONTROL_MIEN_SHIFT)
221 // Enable DC-DC module interrupts.
222 #define SI32_DCDC_A_CONTROL_MIEN_ENABLED_VALUE  1
223 #define SI32_DCDC_A_CONTROL_MIEN_ENABLED_U32 \
224    (SI32_DCDC_A_CONTROL_MIEN_ENABLED_VALUE << SI32_DCDC_A_CONTROL_MIEN_SHIFT)
225 
226 #define SI32_DCDC_A_CONTROL_MINPWSEL_MASK  0x03000000
227 #define SI32_DCDC_A_CONTROL_MINPWSEL_SHIFT  24
228 // Disable pulse skipping.
229 #define SI32_DCDC_A_CONTROL_MINPWSEL_DISABLED_VALUE  0
230 #define SI32_DCDC_A_CONTROL_MINPWSEL_DISABLED_U32 \
231    (SI32_DCDC_A_CONTROL_MINPWSEL_DISABLED_VALUE << SI32_DCDC_A_CONTROL_MINPWSEL_SHIFT)
232 // Set the minimum pulse width to 10 ns.
233 #define SI32_DCDC_A_CONTROL_MINPWSEL_10_NS_VALUE  1
234 #define SI32_DCDC_A_CONTROL_MINPWSEL_10_NS_U32 \
235    (SI32_DCDC_A_CONTROL_MINPWSEL_10_NS_VALUE << SI32_DCDC_A_CONTROL_MINPWSEL_SHIFT)
236 // Set the minimum pulse width to 20 ns.
237 #define SI32_DCDC_A_CONTROL_MINPWSEL_20_NS_VALUE  2
238 #define SI32_DCDC_A_CONTROL_MINPWSEL_20_NS_U32 \
239    (SI32_DCDC_A_CONTROL_MINPWSEL_20_NS_VALUE << SI32_DCDC_A_CONTROL_MINPWSEL_SHIFT)
240 // Set the minimum pulse width to 40 ns.
241 #define SI32_DCDC_A_CONTROL_MINPWSEL_40_NS_VALUE  3
242 #define SI32_DCDC_A_CONTROL_MINPWSEL_40_NS_U32 \
243    (SI32_DCDC_A_CONTROL_MINPWSEL_40_NS_VALUE << SI32_DCDC_A_CONTROL_MINPWSEL_SHIFT)
244 
245 #define SI32_DCDC_A_CONTROL_PSMD_MASK  0x0C000000
246 #define SI32_DCDC_A_CONTROL_PSMD_SHIFT  26
247 // Mode 0. Set the M1 and M2 power switches to each use one MOSFET only.
248 #define SI32_DCDC_A_CONTROL_PSMD_SWSEL0_VALUE  0
249 #define SI32_DCDC_A_CONTROL_PSMD_SWSEL0_U32 \
250    (SI32_DCDC_A_CONTROL_PSMD_SWSEL0_VALUE << SI32_DCDC_A_CONTROL_PSMD_SHIFT)
251 // Mode 1. Set the M1 and M2 power switches to each use 2 MOSFETS in parallel.
252 #define SI32_DCDC_A_CONTROL_PSMD_SWSEL1_VALUE  1
253 #define SI32_DCDC_A_CONTROL_PSMD_SWSEL1_U32 \
254    (SI32_DCDC_A_CONTROL_PSMD_SWSEL1_VALUE << SI32_DCDC_A_CONTROL_PSMD_SHIFT)
255 // Mode 2. Set the M1 and M2 power switches to each use 3 MOSFETS in parallel.
256 #define SI32_DCDC_A_CONTROL_PSMD_SWSEL2_VALUE  2
257 #define SI32_DCDC_A_CONTROL_PSMD_SWSEL2_U32 \
258    (SI32_DCDC_A_CONTROL_PSMD_SWSEL2_VALUE << SI32_DCDC_A_CONTROL_PSMD_SHIFT)
259 // Mode 3. Set the M1 and M2 power switches to each use 4 MOSFETS in parallel.
260 #define SI32_DCDC_A_CONTROL_PSMD_SWSEL3_VALUE  3
261 #define SI32_DCDC_A_CONTROL_PSMD_SWSEL3_U32 \
262    (SI32_DCDC_A_CONTROL_PSMD_SWSEL3_VALUE << SI32_DCDC_A_CONTROL_PSMD_SHIFT)
263 
264 #define SI32_DCDC_A_CONTROL_ASYNCEN_MASK  0x10000000
265 #define SI32_DCDC_A_CONTROL_ASYNCEN_SHIFT  28
266 // Enable DC-DC synchronous mode.
267 #define SI32_DCDC_A_CONTROL_ASYNCEN_DISABLED_VALUE  0
268 #define SI32_DCDC_A_CONTROL_ASYNCEN_DISABLED_U32 \
269    (SI32_DCDC_A_CONTROL_ASYNCEN_DISABLED_VALUE << SI32_DCDC_A_CONTROL_ASYNCEN_SHIFT)
270 // Enable DC-DC asynchronous mode.  This mode is more efficient for very light
271 // output loads.
272 #define SI32_DCDC_A_CONTROL_ASYNCEN_ENABLED_VALUE  1
273 #define SI32_DCDC_A_CONTROL_ASYNCEN_ENABLED_U32 \
274    (SI32_DCDC_A_CONTROL_ASYNCEN_ENABLED_VALUE << SI32_DCDC_A_CONTROL_ASYNCEN_SHIFT)
275 
276 #define SI32_DCDC_A_CONTROL_ABEN_MASK  0x20000000
277 #define SI32_DCDC_A_CONTROL_ABEN_SHIFT  29
278 // Disable automatic bypass.
279 #define SI32_DCDC_A_CONTROL_ABEN_DISABLED_VALUE  0
280 #define SI32_DCDC_A_CONTROL_ABEN_DISABLED_U32 \
281    (SI32_DCDC_A_CONTROL_ABEN_DISABLED_VALUE << SI32_DCDC_A_CONTROL_ABEN_SHIFT)
282 // Enable automatic bypass.
283 #define SI32_DCDC_A_CONTROL_ABEN_ENABLED_VALUE  1
284 #define SI32_DCDC_A_CONTROL_ABEN_ENABLED_U32 \
285    (SI32_DCDC_A_CONTROL_ABEN_ENABLED_VALUE << SI32_DCDC_A_CONTROL_ABEN_SHIFT)
286 
287 #define SI32_DCDC_A_CONTROL_BEN_MASK  0x40000000
288 #define SI32_DCDC_A_CONTROL_BEN_SHIFT  30
289 // Disable the MBYP bypass switch.
290 #define SI32_DCDC_A_CONTROL_BEN_DISABLED_VALUE  0
291 #define SI32_DCDC_A_CONTROL_BEN_DISABLED_U32 \
292    (SI32_DCDC_A_CONTROL_BEN_DISABLED_VALUE << SI32_DCDC_A_CONTROL_BEN_SHIFT)
293 // Enable the MBYP bypass switch.
294 #define SI32_DCDC_A_CONTROL_BEN_ENABLED_VALUE  1
295 #define SI32_DCDC_A_CONTROL_BEN_ENABLED_U32 \
296    (SI32_DCDC_A_CONTROL_BEN_ENABLED_VALUE << SI32_DCDC_A_CONTROL_BEN_SHIFT)
297 
298 #define SI32_DCDC_A_CONTROL_DCDCEN_MASK  0x80000000
299 #define SI32_DCDC_A_CONTROL_DCDCEN_SHIFT  31
300 // Disable the DC-DC converter.
301 #define SI32_DCDC_A_CONTROL_DCDCEN_DISABLED_VALUE  0U
302 #define SI32_DCDC_A_CONTROL_DCDCEN_DISABLED_U32 \
303    (SI32_DCDC_A_CONTROL_DCDCEN_DISABLED_VALUE << SI32_DCDC_A_CONTROL_DCDCEN_SHIFT)
304 // Enable the DC-DC converter.
305 #define SI32_DCDC_A_CONTROL_DCDCEN_ENABLED_VALUE  1U
306 #define SI32_DCDC_A_CONTROL_DCDCEN_ENABLED_U32 \
307    (SI32_DCDC_A_CONTROL_DCDCEN_ENABLED_VALUE << SI32_DCDC_A_CONTROL_DCDCEN_SHIFT)
308 
309 
310 
311 struct SI32_DCDC_A_CONFIG_Struct
312 {
313    union
314    {
315       struct
316       {
317                   uint32_t reserved0: 4;
318          // Inductor Peak Current Limit
319          volatile uint32_t ILIMIT: 3;
320                   uint32_t reserved1: 9;
321          // Interrupt Mode
322          volatile uint32_t INTMD: 2;
323                   uint32_t reserved2: 2;
324          // Converter Ready Low Threshold
325          volatile uint32_t RDYLOWTH: 2;
326                   uint32_t reserved3: 10;
327       };
328       volatile uint32_t U32;
329    };
330 };
331 
332 #define SI32_DCDC_A_CONFIG_ILIMIT_MASK  0x00000070
333 #define SI32_DCDC_A_CONFIG_ILIMIT_SHIFT  4
334 // Limit the peak inductor current to 200 mA.
335 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT1_VALUE  1
336 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT1_U32 \
337    (SI32_DCDC_A_CONFIG_ILIMIT_LIMIT1_VALUE << SI32_DCDC_A_CONFIG_ILIMIT_SHIFT)
338 // Limit the peak inductor current to 300 mA.
339 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT2_VALUE  2
340 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT2_U32 \
341    (SI32_DCDC_A_CONFIG_ILIMIT_LIMIT2_VALUE << SI32_DCDC_A_CONFIG_ILIMIT_SHIFT)
342 // Limit the peak inductor current to 400 mA.
343 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT3_VALUE  3
344 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT3_U32 \
345    (SI32_DCDC_A_CONFIG_ILIMIT_LIMIT3_VALUE << SI32_DCDC_A_CONFIG_ILIMIT_SHIFT)
346 // Limit the peak inductor current to 500 mA.
347 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT4_VALUE  4
348 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT4_U32 \
349    (SI32_DCDC_A_CONFIG_ILIMIT_LIMIT4_VALUE << SI32_DCDC_A_CONFIG_ILIMIT_SHIFT)
350 // Limit the peak inductor current to 600 mA.
351 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT5_VALUE  5
352 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT5_U32 \
353    (SI32_DCDC_A_CONFIG_ILIMIT_LIMIT5_VALUE << SI32_DCDC_A_CONFIG_ILIMIT_SHIFT)
354 // Limit the peak inductor current to 700 mA.
355 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT6_VALUE  6
356 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT6_U32 \
357    (SI32_DCDC_A_CONFIG_ILIMIT_LIMIT6_VALUE << SI32_DCDC_A_CONFIG_ILIMIT_SHIFT)
358 // Limit the peak inductor current to 800 mA.
359 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT7_VALUE  7
360 #define SI32_DCDC_A_CONFIG_ILIMIT_LIMIT7_U32 \
361    (SI32_DCDC_A_CONFIG_ILIMIT_LIMIT7_VALUE << SI32_DCDC_A_CONFIG_ILIMIT_SHIFT)
362 
363 #define SI32_DCDC_A_CONFIG_INTMD_MASK  0x00030000
364 #define SI32_DCDC_A_CONFIG_INTMD_SHIFT  16
365 // Generate an interrupt when the regulated converter output voltage is too low,
366 // according to the RDYLOWF flag.
367 #define SI32_DCDC_A_CONFIG_INTMD_OUTPUT_TOO_LOW_VALUE  0
368 #define SI32_DCDC_A_CONFIG_INTMD_OUTPUT_TOO_LOW_U32 \
369    (SI32_DCDC_A_CONFIG_INTMD_OUTPUT_TOO_LOW_VALUE << SI32_DCDC_A_CONFIG_INTMD_SHIFT)
370 // Generate an interrupt when the regulated converter output voltage is not too low
371 // according to the RDYLOWF flag.
372 #define SI32_DCDC_A_CONFIG_INTMD_OUTPUT_NOT_TOO_LOW_VALUE  1
373 #define SI32_DCDC_A_CONFIG_INTMD_OUTPUT_NOT_TOO_LOW_U32 \
374    (SI32_DCDC_A_CONFIG_INTMD_OUTPUT_NOT_TOO_LOW_VALUE << SI32_DCDC_A_CONFIG_INTMD_SHIFT)
375 // Generate an interrupt when the output voltage is out of regulation. The
376 // converter output can be either too high or too low, according to the RDYLOWF and
377 // RDYHIGHF flags.
378 #define SI32_DCDC_A_CONFIG_INTMD_OUT_OF_REG_VALUE  2
379 #define SI32_DCDC_A_CONFIG_INTMD_OUT_OF_REG_U32 \
380    (SI32_DCDC_A_CONFIG_INTMD_OUT_OF_REG_VALUE << SI32_DCDC_A_CONFIG_INTMD_SHIFT)
381 // Generate an interrupt when the output voltage is in regulation.
382 #define SI32_DCDC_A_CONFIG_INTMD_IN_REG_VALUE  3
383 #define SI32_DCDC_A_CONFIG_INTMD_IN_REG_U32 \
384    (SI32_DCDC_A_CONFIG_INTMD_IN_REG_VALUE << SI32_DCDC_A_CONFIG_INTMD_SHIFT)
385 
386 #define SI32_DCDC_A_CONFIG_RDYLOWTH_MASK  0x00300000
387 #define SI32_DCDC_A_CONFIG_RDYLOWTH_SHIFT  20
388 // Hardware sets the RDYLOWF flag if the regulated output voltage is greater than
389 // 95% of the programmed output voltage.
390 #define SI32_DCDC_A_CONFIG_RDYLOWTH_95_PERCENT_VALUE  0
391 #define SI32_DCDC_A_CONFIG_RDYLOWTH_95_PERCENT_U32 \
392    (SI32_DCDC_A_CONFIG_RDYLOWTH_95_PERCENT_VALUE << SI32_DCDC_A_CONFIG_RDYLOWTH_SHIFT)
393 // Hardware sets the RDYLOWF flag if the regulated output voltage is greater than
394 // 90% of the programmed output voltage.
395 #define SI32_DCDC_A_CONFIG_RDYLOWTH_90_PERCENT_VALUE  1
396 #define SI32_DCDC_A_CONFIG_RDYLOWTH_90_PERCENT_U32 \
397    (SI32_DCDC_A_CONFIG_RDYLOWTH_90_PERCENT_VALUE << SI32_DCDC_A_CONFIG_RDYLOWTH_SHIFT)
398 // Hardware sets the RDYLOWF flag if the regulated output voltage is greater than
399 // 85% of the programmed output voltage.
400 #define SI32_DCDC_A_CONFIG_RDYLOWTH_85_PERCENT_VALUE  2
401 #define SI32_DCDC_A_CONFIG_RDYLOWTH_85_PERCENT_U32 \
402    (SI32_DCDC_A_CONFIG_RDYLOWTH_85_PERCENT_VALUE << SI32_DCDC_A_CONFIG_RDYLOWTH_SHIFT)
403 // Hardware sets the RDYLOWF flag if the regulated output voltage is greater than
404 // 80% of the programmed output voltage.
405 #define SI32_DCDC_A_CONFIG_RDYLOWTH_80_PERCENT_VALUE  3
406 #define SI32_DCDC_A_CONFIG_RDYLOWTH_80_PERCENT_U32 \
407    (SI32_DCDC_A_CONFIG_RDYLOWTH_80_PERCENT_VALUE << SI32_DCDC_A_CONFIG_RDYLOWTH_SHIFT)
408 
409 
410 
411 typedef struct SI32_DCDC_A_Struct
412 {
413    struct SI32_DCDC_A_CONTROL_Struct               CONTROL        ; // Base Address + 0x0
414    volatile uint32_t                               CONTROL_SET;
415    volatile uint32_t                               CONTROL_CLR;
416    uint32_t                                        reserved0;
417    struct SI32_DCDC_A_CONFIG_Struct                CONFIG         ; // Base Address + 0x10
418    uint32_t                                        reserved1;
419    uint32_t                                        reserved2;
420    uint32_t                                        reserved3;
421    uint32_t                                        reserved4[4];
422    uint32_t                                        reserved5[4];
423 } SI32_DCDC_A_Type;
424 
425 #ifdef __cplusplus
426 }
427 #endif
428 
429 #endif // __SI32_DCDC_A_REGISTERS_H__
430 
431 //-eof--------------------------------------------------------------------------
432 
433