HPM SDK
HPMicro Software Development Kit
hpm_pcfg_regs.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021-2025 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 
9 #ifndef HPM_PCFG_H
10 #define HPM_PCFG_H
11 
12 typedef struct {
13  __RW uint32_t BANDGAP; /* 0x0: BANGGAP control */
14  __RW uint32_t LDO1P1; /* 0x4: 1V LDO config */
15  __RW uint32_t LDO2P5; /* 0x8: 2.5V LDO config */
16  __R uint8_t RESERVED0[4]; /* 0xC - 0xF: Reserved */
17  __RW uint32_t DCDC_MODE; /* 0x10: DCDC mode select */
18  __RW uint32_t DCDC_LPMODE; /* 0x14: DCDC low power mode */
19  __RW uint32_t DCDC_PROT; /* 0x18: DCDC protection */
20  __RW uint32_t DCDC_CURRENT; /* 0x1C: DCDC current estimation */
21  __RW uint32_t DCDC_ADVMODE; /* 0x20: DCDC advance setting */
22  __RW uint32_t DCDC_ADVPARAM; /* 0x24: DCDC advance parameter */
23  __RW uint32_t DCDC_MISC; /* 0x28: DCDC misc parameter */
24  __RW uint32_t DCDC_DEBUG; /* 0x2C: DCDC Debug */
25  __RW uint32_t DCDC_START_TIME; /* 0x30: DCDC ramp time */
26  __RW uint32_t DCDC_RESUME_TIME; /* 0x34: DCDC resume time */
27  __R uint8_t RESERVED1[8]; /* 0x38 - 0x3F: Reserved */
28  __RW uint32_t POWER_TRAP; /* 0x40: power trap */
29  __RW uint32_t WAKE_CAUSE; /* 0x44: Wake up source */
30  __RW uint32_t WAKE_MASK; /* 0x48: Wake up mask */
31  __RW uint32_t SCG_CTRL; /* 0x4C: Clock gate control in PMIC */
32  __R uint8_t RESERVED2[16]; /* 0x50 - 0x5F: Reserved */
33  __RW uint32_t RC24M; /* 0x60: RC 24M config */
34  __RW uint32_t RC24M_TRACK; /* 0x64: RC 24M track mode */
35  __RW uint32_t TRACK_TARGET; /* 0x68: RC 24M track target */
36  __R uint32_t STATUS; /* 0x6C: RC 24M track status */
37  __R uint8_t RESERVED3[16]; /* 0x70 - 0x7F: Reserved */
38  __RW uint32_t DCDCM_MODE; /* 0x80: DCDCM mode select */
39  __RW uint32_t DCDCM_LPMODE; /* 0x84: DCDCM low power mode */
40  __RW uint32_t DCDCM_PROT; /* 0x88: DCDCM protection */
41  __RW uint32_t DCDCM_CURRENT; /* 0x8C: DCDCM current estimation */
42  __RW uint32_t DCDCM_ADVMODE; /* 0x90: DCDCM advance setting */
43  __RW uint32_t DCDCM_ADVPARAM; /* 0x94: DCDCM advance parameter */
44  __RW uint32_t DCDCM_MISC; /* 0x98: DCDCM misc parameter */
45  __RW uint32_t DCDCM_DEBUG; /* 0x9C: DCDCM Debug */
46  __RW uint32_t DCDCM_START_TIME; /* 0xA0: DCDCM ramp time */
47  __RW uint32_t DCDCM_RESUME_TIME; /* 0xA4: DCDCM resume time */
48  __RW uint32_t DCDCM_POWER_CONFIG; /* 0xA8: DCDCM power config */
49 } PCFG_Type;
50 
51 
52 /* Bitfield definition for register: BANDGAP */
53 /*
54  * VBG_TRIMMED (RW)
55  *
56  * Bandgap trim happened, this bit set by hardware after trim value loaded, and stop load, write 0 will clear this bit and reload trim value
57  * 0: bandgap is not trimmed
58  * 1: bandgap is trimmed
59  */
60 #define PCFG_BANDGAP_VBG_TRIMMED_MASK (0x80000000UL)
61 #define PCFG_BANDGAP_VBG_TRIMMED_SHIFT (31U)
62 #define PCFG_BANDGAP_VBG_TRIMMED_SET(x) (((uint32_t)(x) << PCFG_BANDGAP_VBG_TRIMMED_SHIFT) & PCFG_BANDGAP_VBG_TRIMMED_MASK)
63 #define PCFG_BANDGAP_VBG_TRIMMED_GET(x) (((uint32_t)(x) & PCFG_BANDGAP_VBG_TRIMMED_MASK) >> PCFG_BANDGAP_VBG_TRIMMED_SHIFT)
64 
65 /*
66  * LOWPOWER_MODE (RW)
67  *
68  * Banggap work in low power mode, banggap function limited
69  * 0: banggap works in normal mode
70  * 1: banggap works in low power mode
71  */
72 #define PCFG_BANDGAP_LOWPOWER_MODE_MASK (0x2000000UL)
73 #define PCFG_BANDGAP_LOWPOWER_MODE_SHIFT (25U)
74 #define PCFG_BANDGAP_LOWPOWER_MODE_SET(x) (((uint32_t)(x) << PCFG_BANDGAP_LOWPOWER_MODE_SHIFT) & PCFG_BANDGAP_LOWPOWER_MODE_MASK)
75 #define PCFG_BANDGAP_LOWPOWER_MODE_GET(x) (((uint32_t)(x) & PCFG_BANDGAP_LOWPOWER_MODE_MASK) >> PCFG_BANDGAP_LOWPOWER_MODE_SHIFT)
76 
77 /*
78  * POWER_SAVE (RW)
79  *
80  * Banggap work in power save mode, banggap function normally
81  * 0: banggap works in high performance mode
82  * 1: banggap works in power saving mode
83  */
84 #define PCFG_BANDGAP_POWER_SAVE_MASK (0x1000000UL)
85 #define PCFG_BANDGAP_POWER_SAVE_SHIFT (24U)
86 #define PCFG_BANDGAP_POWER_SAVE_SET(x) (((uint32_t)(x) << PCFG_BANDGAP_POWER_SAVE_SHIFT) & PCFG_BANDGAP_POWER_SAVE_MASK)
87 #define PCFG_BANDGAP_POWER_SAVE_GET(x) (((uint32_t)(x) & PCFG_BANDGAP_POWER_SAVE_MASK) >> PCFG_BANDGAP_POWER_SAVE_SHIFT)
88 
89 /*
90  * VBG_1P0_TRIM (RW)
91  *
92  * Banggap 1.0V output trim value
93  */
94 #define PCFG_BANDGAP_VBG_1P0_TRIM_MASK (0x1F0000UL)
95 #define PCFG_BANDGAP_VBG_1P0_TRIM_SHIFT (16U)
96 #define PCFG_BANDGAP_VBG_1P0_TRIM_SET(x) (((uint32_t)(x) << PCFG_BANDGAP_VBG_1P0_TRIM_SHIFT) & PCFG_BANDGAP_VBG_1P0_TRIM_MASK)
97 #define PCFG_BANDGAP_VBG_1P0_TRIM_GET(x) (((uint32_t)(x) & PCFG_BANDGAP_VBG_1P0_TRIM_MASK) >> PCFG_BANDGAP_VBG_1P0_TRIM_SHIFT)
98 
99 /*
100  * VBG_P65_TRIM (RW)
101  *
102  * Banggap 1.0V output trim value
103  */
104 #define PCFG_BANDGAP_VBG_P65_TRIM_MASK (0x1F00U)
105 #define PCFG_BANDGAP_VBG_P65_TRIM_SHIFT (8U)
106 #define PCFG_BANDGAP_VBG_P65_TRIM_SET(x) (((uint32_t)(x) << PCFG_BANDGAP_VBG_P65_TRIM_SHIFT) & PCFG_BANDGAP_VBG_P65_TRIM_MASK)
107 #define PCFG_BANDGAP_VBG_P65_TRIM_GET(x) (((uint32_t)(x) & PCFG_BANDGAP_VBG_P65_TRIM_MASK) >> PCFG_BANDGAP_VBG_P65_TRIM_SHIFT)
108 
109 /*
110  * VBG_P50_TRIM (RW)
111  *
112  * Banggap 1.0V output trim value
113  */
114 #define PCFG_BANDGAP_VBG_P50_TRIM_MASK (0x1FU)
115 #define PCFG_BANDGAP_VBG_P50_TRIM_SHIFT (0U)
116 #define PCFG_BANDGAP_VBG_P50_TRIM_SET(x) (((uint32_t)(x) << PCFG_BANDGAP_VBG_P50_TRIM_SHIFT) & PCFG_BANDGAP_VBG_P50_TRIM_MASK)
117 #define PCFG_BANDGAP_VBG_P50_TRIM_GET(x) (((uint32_t)(x) & PCFG_BANDGAP_VBG_P50_TRIM_MASK) >> PCFG_BANDGAP_VBG_P50_TRIM_SHIFT)
118 
119 /* Bitfield definition for register: LDO1P1 */
120 /*
121  * VOLT (RW)
122  *
123  * LDO output voltage in mV, value valid through 700-1320, , step 20mV. Hardware select voltage no less than target if not on valid steps, with maximum 1320mV.
124  * 700: 700mV
125  * 720: 720mV
126  * . . .
127  * 1320:1320mV
128  */
129 #define PCFG_LDO1P1_VOLT_MASK (0xFFFU)
130 #define PCFG_LDO1P1_VOLT_SHIFT (0U)
131 #define PCFG_LDO1P1_VOLT_SET(x) (((uint32_t)(x) << PCFG_LDO1P1_VOLT_SHIFT) & PCFG_LDO1P1_VOLT_MASK)
132 #define PCFG_LDO1P1_VOLT_GET(x) (((uint32_t)(x) & PCFG_LDO1P1_VOLT_MASK) >> PCFG_LDO1P1_VOLT_SHIFT)
133 
134 /* Bitfield definition for register: LDO2P5 */
135 /*
136  * READY (RO)
137  *
138  * Ready flag, will set 1ms after enabled or voltage change
139  * 0: LDO is not ready for use
140  * 1: LDO is ready
141  */
142 #define PCFG_LDO2P5_READY_MASK (0x10000000UL)
143 #define PCFG_LDO2P5_READY_SHIFT (28U)
144 #define PCFG_LDO2P5_READY_GET(x) (((uint32_t)(x) & PCFG_LDO2P5_READY_MASK) >> PCFG_LDO2P5_READY_SHIFT)
145 
146 /*
147  * ENABLE (RW)
148  *
149  * LDO enable
150  * 0: turn off LDO
151  * 1: turn on LDO
152  */
153 #define PCFG_LDO2P5_ENABLE_MASK (0x10000UL)
154 #define PCFG_LDO2P5_ENABLE_SHIFT (16U)
155 #define PCFG_LDO2P5_ENABLE_SET(x) (((uint32_t)(x) << PCFG_LDO2P5_ENABLE_SHIFT) & PCFG_LDO2P5_ENABLE_MASK)
156 #define PCFG_LDO2P5_ENABLE_GET(x) (((uint32_t)(x) & PCFG_LDO2P5_ENABLE_MASK) >> PCFG_LDO2P5_ENABLE_SHIFT)
157 
158 /*
159  * VOLT (RW)
160  *
161  * LDO output voltage in mV, value valid through 2125-2900, step 25mV. Hardware select voltage no less than target if not on valid steps, with maximum 2900mV.
162  * 2125: 2125mV
163  * 2150: 2150mV
164  * . . .
165  * 2900:2900mV
166  */
167 #define PCFG_LDO2P5_VOLT_MASK (0xFFFU)
168 #define PCFG_LDO2P5_VOLT_SHIFT (0U)
169 #define PCFG_LDO2P5_VOLT_SET(x) (((uint32_t)(x) << PCFG_LDO2P5_VOLT_SHIFT) & PCFG_LDO2P5_VOLT_MASK)
170 #define PCFG_LDO2P5_VOLT_GET(x) (((uint32_t)(x) & PCFG_LDO2P5_VOLT_MASK) >> PCFG_LDO2P5_VOLT_SHIFT)
171 
172 /* Bitfield definition for register: DCDC_MODE */
173 /*
174  * READY (RO)
175  *
176  * Ready flag
177  * 0: DCDC is applying new change
178  * 1: DCDC is ready
179  */
180 #define PCFG_DCDC_MODE_READY_MASK (0x10000000UL)
181 #define PCFG_DCDC_MODE_READY_SHIFT (28U)
182 #define PCFG_DCDC_MODE_READY_GET(x) (((uint32_t)(x) & PCFG_DCDC_MODE_READY_MASK) >> PCFG_DCDC_MODE_READY_SHIFT)
183 
184 /*
185  * MODE (RW)
186  *
187  * DCDC work mode
188  * XX0: turn off
189  * 001: basic mode
190  * 011: generic mode
191  * 101: automatic mode
192  * 111: expert mode
193  */
194 #define PCFG_DCDC_MODE_MODE_MASK (0x70000UL)
195 #define PCFG_DCDC_MODE_MODE_SHIFT (16U)
196 #define PCFG_DCDC_MODE_MODE_SET(x) (((uint32_t)(x) << PCFG_DCDC_MODE_MODE_SHIFT) & PCFG_DCDC_MODE_MODE_MASK)
197 #define PCFG_DCDC_MODE_MODE_GET(x) (((uint32_t)(x) & PCFG_DCDC_MODE_MODE_MASK) >> PCFG_DCDC_MODE_MODE_SHIFT)
198 
199 /*
200  * VOLT (RW)
201  *
202  * DCDC voltage in mV in normal mode, value valid through 600-1375, , step 25mV. Hardware select voltage no less than target if not on valid steps, with maximum 1375mV.
203  * 600: 600mV
204  * 625: 625mV
205  * . . .
206  * 1375:1375mV
207  */
208 #define PCFG_DCDC_MODE_VOLT_MASK (0xFFFU)
209 #define PCFG_DCDC_MODE_VOLT_SHIFT (0U)
210 #define PCFG_DCDC_MODE_VOLT_SET(x) (((uint32_t)(x) << PCFG_DCDC_MODE_VOLT_SHIFT) & PCFG_DCDC_MODE_VOLT_MASK)
211 #define PCFG_DCDC_MODE_VOLT_GET(x) (((uint32_t)(x) & PCFG_DCDC_MODE_VOLT_MASK) >> PCFG_DCDC_MODE_VOLT_SHIFT)
212 
213 /* Bitfield definition for register: DCDC_LPMODE */
214 /*
215  * STBY_VOLT (RW)
216  *
217  * DCDC voltage in mV in standby mode, , value valid through 600-1375, , step 25mV. Hardware select voltage no less than target if not on valid steps, with maximum 1375mV.
218  * 600: 600mV
219  * 625: 625mV
220  * . . .
221  * 1375:1375mV
222  */
223 #define PCFG_DCDC_LPMODE_STBY_VOLT_MASK (0xFFFU)
224 #define PCFG_DCDC_LPMODE_STBY_VOLT_SHIFT (0U)
225 #define PCFG_DCDC_LPMODE_STBY_VOLT_SET(x) (((uint32_t)(x) << PCFG_DCDC_LPMODE_STBY_VOLT_SHIFT) & PCFG_DCDC_LPMODE_STBY_VOLT_MASK)
226 #define PCFG_DCDC_LPMODE_STBY_VOLT_GET(x) (((uint32_t)(x) & PCFG_DCDC_LPMODE_STBY_VOLT_MASK) >> PCFG_DCDC_LPMODE_STBY_VOLT_SHIFT)
227 
228 /* Bitfield definition for register: DCDC_PROT */
229 /*
230  * ILIMIT_LP (RW)
231  *
232  * over current setting for low power mode
233  * 0:250mA
234  * 1:200mA
235  */
236 #define PCFG_DCDC_PROT_ILIMIT_LP_MASK (0x10000000UL)
237 #define PCFG_DCDC_PROT_ILIMIT_LP_SHIFT (28U)
238 #define PCFG_DCDC_PROT_ILIMIT_LP_SET(x) (((uint32_t)(x) << PCFG_DCDC_PROT_ILIMIT_LP_SHIFT) & PCFG_DCDC_PROT_ILIMIT_LP_MASK)
239 #define PCFG_DCDC_PROT_ILIMIT_LP_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_ILIMIT_LP_MASK) >> PCFG_DCDC_PROT_ILIMIT_LP_SHIFT)
240 
241 /*
242  * OVERLOAD_LP (RO)
243  *
244  * over current in low power mode
245  * 0: current is below setting
246  * 1: overcurrent happened in low power mode
247  */
248 #define PCFG_DCDC_PROT_OVERLOAD_LP_MASK (0x1000000UL)
249 #define PCFG_DCDC_PROT_OVERLOAD_LP_SHIFT (24U)
250 #define PCFG_DCDC_PROT_OVERLOAD_LP_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_OVERLOAD_LP_MASK) >> PCFG_DCDC_PROT_OVERLOAD_LP_SHIFT)
251 
252 /*
253  * DISABLE_POWER_LOSS (RW)
254  *
255  * disable power loss protection
256  * 0: power loss protection enabled, DCDC shuts down when power loss
257  * 1: power loss protection disabled, DCDC try working after power voltage drop
258  */
259 #define PCFG_DCDC_PROT_DISABLE_POWER_LOSS_MASK (0x800000UL)
260 #define PCFG_DCDC_PROT_DISABLE_POWER_LOSS_SHIFT (23U)
261 #define PCFG_DCDC_PROT_DISABLE_POWER_LOSS_SET(x) (((uint32_t)(x) << PCFG_DCDC_PROT_DISABLE_POWER_LOSS_SHIFT) & PCFG_DCDC_PROT_DISABLE_POWER_LOSS_MASK)
262 #define PCFG_DCDC_PROT_DISABLE_POWER_LOSS_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_DISABLE_POWER_LOSS_MASK) >> PCFG_DCDC_PROT_DISABLE_POWER_LOSS_SHIFT)
263 
264 /*
265  * POWER_LOSS_FLAG (RO)
266  *
267  * power loss
268  * 0: input power is good
269  * 1: input power is too low
270  */
271 #define PCFG_DCDC_PROT_POWER_LOSS_FLAG_MASK (0x10000UL)
272 #define PCFG_DCDC_PROT_POWER_LOSS_FLAG_SHIFT (16U)
273 #define PCFG_DCDC_PROT_POWER_LOSS_FLAG_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_POWER_LOSS_FLAG_MASK) >> PCFG_DCDC_PROT_POWER_LOSS_FLAG_SHIFT)
274 
275 /*
276  * DISABLE_OVERVOLTAGE (RW)
277  *
278  * output over voltage protection
279  * 0: protection enabled, DCDC will shut down is output voltage is unexpected high
280  * 1: protection disabled, DCDC continue to adjust output voltage
281  */
282 #define PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_MASK (0x8000U)
283 #define PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_SHIFT (15U)
284 #define PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_SET(x) (((uint32_t)(x) << PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_SHIFT) & PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_MASK)
285 #define PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_MASK) >> PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_SHIFT)
286 
287 /*
288  * OVERVOLT_FLAG (RO)
289  *
290  * output over voltage flag
291  * 0: output is normal
292  * 1: output is unexpected high
293  */
294 #define PCFG_DCDC_PROT_OVERVOLT_FLAG_MASK (0x100U)
295 #define PCFG_DCDC_PROT_OVERVOLT_FLAG_SHIFT (8U)
296 #define PCFG_DCDC_PROT_OVERVOLT_FLAG_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_OVERVOLT_FLAG_MASK) >> PCFG_DCDC_PROT_OVERVOLT_FLAG_SHIFT)
297 
298 /*
299  * DISABLE_SHORT (RW)
300  *
301  * disable output short circuit protection
302  * 0: short circuits protection enabled, DCDC shut down if short circuit on output detected
303  * 1: short circuit protection disabled
304  */
305 #define PCFG_DCDC_PROT_DISABLE_SHORT_MASK (0x80U)
306 #define PCFG_DCDC_PROT_DISABLE_SHORT_SHIFT (7U)
307 #define PCFG_DCDC_PROT_DISABLE_SHORT_SET(x) (((uint32_t)(x) << PCFG_DCDC_PROT_DISABLE_SHORT_SHIFT) & PCFG_DCDC_PROT_DISABLE_SHORT_MASK)
308 #define PCFG_DCDC_PROT_DISABLE_SHORT_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_DISABLE_SHORT_MASK) >> PCFG_DCDC_PROT_DISABLE_SHORT_SHIFT)
309 
310 /*
311  * SHORT_CURRENT (RW)
312  *
313  * short circuit current setting
314  * 0: 2.0A,
315  * 1: 1.3A
316  */
317 #define PCFG_DCDC_PROT_SHORT_CURRENT_MASK (0x10U)
318 #define PCFG_DCDC_PROT_SHORT_CURRENT_SHIFT (4U)
319 #define PCFG_DCDC_PROT_SHORT_CURRENT_SET(x) (((uint32_t)(x) << PCFG_DCDC_PROT_SHORT_CURRENT_SHIFT) & PCFG_DCDC_PROT_SHORT_CURRENT_MASK)
320 #define PCFG_DCDC_PROT_SHORT_CURRENT_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_SHORT_CURRENT_MASK) >> PCFG_DCDC_PROT_SHORT_CURRENT_SHIFT)
321 
322 /*
323  * SHORT_FLAG (RO)
324  *
325  * short circuit flag
326  * 0: current is within limit
327  * 1: short circuits detected
328  */
329 #define PCFG_DCDC_PROT_SHORT_FLAG_MASK (0x1U)
330 #define PCFG_DCDC_PROT_SHORT_FLAG_SHIFT (0U)
331 #define PCFG_DCDC_PROT_SHORT_FLAG_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_SHORT_FLAG_MASK) >> PCFG_DCDC_PROT_SHORT_FLAG_SHIFT)
332 
333 /* Bitfield definition for register: DCDC_CURRENT */
334 /*
335  * ESTI_EN (RW)
336  *
337  * enable current measure
338  */
339 #define PCFG_DCDC_CURRENT_ESTI_EN_MASK (0x8000U)
340 #define PCFG_DCDC_CURRENT_ESTI_EN_SHIFT (15U)
341 #define PCFG_DCDC_CURRENT_ESTI_EN_SET(x) (((uint32_t)(x) << PCFG_DCDC_CURRENT_ESTI_EN_SHIFT) & PCFG_DCDC_CURRENT_ESTI_EN_MASK)
342 #define PCFG_DCDC_CURRENT_ESTI_EN_GET(x) (((uint32_t)(x) & PCFG_DCDC_CURRENT_ESTI_EN_MASK) >> PCFG_DCDC_CURRENT_ESTI_EN_SHIFT)
343 
344 /*
345  * VALID (RO)
346  *
347  * Current level valid
348  * 0: data is invalid
349  * 1: data is valid
350  */
351 #define PCFG_DCDC_CURRENT_VALID_MASK (0x100U)
352 #define PCFG_DCDC_CURRENT_VALID_SHIFT (8U)
353 #define PCFG_DCDC_CURRENT_VALID_GET(x) (((uint32_t)(x) & PCFG_DCDC_CURRENT_VALID_MASK) >> PCFG_DCDC_CURRENT_VALID_SHIFT)
354 
355 /*
356  * LEVEL (RO)
357  *
358  * DCDC current level, current level is num * 50mA
359  */
360 #define PCFG_DCDC_CURRENT_LEVEL_MASK (0x1FU)
361 #define PCFG_DCDC_CURRENT_LEVEL_SHIFT (0U)
362 #define PCFG_DCDC_CURRENT_LEVEL_GET(x) (((uint32_t)(x) & PCFG_DCDC_CURRENT_LEVEL_MASK) >> PCFG_DCDC_CURRENT_LEVEL_SHIFT)
363 
364 /* Bitfield definition for register: DCDC_ADVMODE */
365 /*
366  * EN_RCSCALE (RW)
367  *
368  * Enable RC scale
369  */
370 #define PCFG_DCDC_ADVMODE_EN_RCSCALE_MASK (0x7000000UL)
371 #define PCFG_DCDC_ADVMODE_EN_RCSCALE_SHIFT (24U)
372 #define PCFG_DCDC_ADVMODE_EN_RCSCALE_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_RCSCALE_SHIFT) & PCFG_DCDC_ADVMODE_EN_RCSCALE_MASK)
373 #define PCFG_DCDC_ADVMODE_EN_RCSCALE_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_RCSCALE_MASK) >> PCFG_DCDC_ADVMODE_EN_RCSCALE_SHIFT)
374 
375 /*
376  * DC_C (RW)
377  *
378  * Loop C number
379  */
380 #define PCFG_DCDC_ADVMODE_DC_C_MASK (0x300000UL)
381 #define PCFG_DCDC_ADVMODE_DC_C_SHIFT (20U)
382 #define PCFG_DCDC_ADVMODE_DC_C_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_DC_C_SHIFT) & PCFG_DCDC_ADVMODE_DC_C_MASK)
383 #define PCFG_DCDC_ADVMODE_DC_C_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_DC_C_MASK) >> PCFG_DCDC_ADVMODE_DC_C_SHIFT)
384 
385 /*
386  * DC_R (RW)
387  *
388  * Loop R number
389  */
390 #define PCFG_DCDC_ADVMODE_DC_R_MASK (0xF0000UL)
391 #define PCFG_DCDC_ADVMODE_DC_R_SHIFT (16U)
392 #define PCFG_DCDC_ADVMODE_DC_R_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_DC_R_SHIFT) & PCFG_DCDC_ADVMODE_DC_R_MASK)
393 #define PCFG_DCDC_ADVMODE_DC_R_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_DC_R_MASK) >> PCFG_DCDC_ADVMODE_DC_R_SHIFT)
394 
395 /*
396  * EN_FF_DET (RW)
397  *
398  * enable feed forward detect
399  * 0: feed forward detect is disabled
400  * 1: feed forward detect is enabled
401  */
402 #define PCFG_DCDC_ADVMODE_EN_FF_DET_MASK (0x40U)
403 #define PCFG_DCDC_ADVMODE_EN_FF_DET_SHIFT (6U)
404 #define PCFG_DCDC_ADVMODE_EN_FF_DET_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_FF_DET_SHIFT) & PCFG_DCDC_ADVMODE_EN_FF_DET_MASK)
405 #define PCFG_DCDC_ADVMODE_EN_FF_DET_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_FF_DET_MASK) >> PCFG_DCDC_ADVMODE_EN_FF_DET_SHIFT)
406 
407 /*
408  * EN_FF_LOOP (RW)
409  *
410  * enable feed forward loop
411  * 0: feed forward loop is disabled
412  * 1: feed forward loop is enabled
413  */
414 #define PCFG_DCDC_ADVMODE_EN_FF_LOOP_MASK (0x20U)
415 #define PCFG_DCDC_ADVMODE_EN_FF_LOOP_SHIFT (5U)
416 #define PCFG_DCDC_ADVMODE_EN_FF_LOOP_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_FF_LOOP_SHIFT) & PCFG_DCDC_ADVMODE_EN_FF_LOOP_MASK)
417 #define PCFG_DCDC_ADVMODE_EN_FF_LOOP_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_FF_LOOP_MASK) >> PCFG_DCDC_ADVMODE_EN_FF_LOOP_SHIFT)
418 
419 /*
420  * EN_DCM_EXIT (RW)
421  *
422  * avoid over voltage
423  * 0: stay in DCM mode when voltage excess
424  * 1: change to CCM mode when voltage excess
425  */
426 #define PCFG_DCDC_ADVMODE_EN_DCM_EXIT_MASK (0x8U)
427 #define PCFG_DCDC_ADVMODE_EN_DCM_EXIT_SHIFT (3U)
428 #define PCFG_DCDC_ADVMODE_EN_DCM_EXIT_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_DCM_EXIT_SHIFT) & PCFG_DCDC_ADVMODE_EN_DCM_EXIT_MASK)
429 #define PCFG_DCDC_ADVMODE_EN_DCM_EXIT_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_DCM_EXIT_MASK) >> PCFG_DCDC_ADVMODE_EN_DCM_EXIT_SHIFT)
430 
431 /*
432  * EN_SKIP (RW)
433  *
434  * enable skip on narrow pulse
435  * 0: do not skip narrow pulse
436  * 1: skip narrow pulse
437  */
438 #define PCFG_DCDC_ADVMODE_EN_SKIP_MASK (0x4U)
439 #define PCFG_DCDC_ADVMODE_EN_SKIP_SHIFT (2U)
440 #define PCFG_DCDC_ADVMODE_EN_SKIP_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_SKIP_SHIFT) & PCFG_DCDC_ADVMODE_EN_SKIP_MASK)
441 #define PCFG_DCDC_ADVMODE_EN_SKIP_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_SKIP_MASK) >> PCFG_DCDC_ADVMODE_EN_SKIP_SHIFT)
442 
443 /*
444  * EN_IDLE (RW)
445  *
446  * enable skip when voltage is higher than threshold
447  * 0: do not skip
448  * 1: skip if voltage is excess
449  */
450 #define PCFG_DCDC_ADVMODE_EN_IDLE_MASK (0x2U)
451 #define PCFG_DCDC_ADVMODE_EN_IDLE_SHIFT (1U)
452 #define PCFG_DCDC_ADVMODE_EN_IDLE_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_IDLE_SHIFT) & PCFG_DCDC_ADVMODE_EN_IDLE_MASK)
453 #define PCFG_DCDC_ADVMODE_EN_IDLE_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_IDLE_MASK) >> PCFG_DCDC_ADVMODE_EN_IDLE_SHIFT)
454 
455 /*
456  * EN_DCM (RW)
457  *
458  * DCM mode
459  * 0: CCM mode
460  * 1: DCM mode
461  */
462 #define PCFG_DCDC_ADVMODE_EN_DCM_MASK (0x1U)
463 #define PCFG_DCDC_ADVMODE_EN_DCM_SHIFT (0U)
464 #define PCFG_DCDC_ADVMODE_EN_DCM_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_DCM_SHIFT) & PCFG_DCDC_ADVMODE_EN_DCM_MASK)
465 #define PCFG_DCDC_ADVMODE_EN_DCM_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_DCM_MASK) >> PCFG_DCDC_ADVMODE_EN_DCM_SHIFT)
466 
467 /* Bitfield definition for register: DCDC_ADVPARAM */
468 /*
469  * MIN_DUT (RW)
470  *
471  * minimum duty cycle
472  */
473 #define PCFG_DCDC_ADVPARAM_MIN_DUT_MASK (0x7F00U)
474 #define PCFG_DCDC_ADVPARAM_MIN_DUT_SHIFT (8U)
475 #define PCFG_DCDC_ADVPARAM_MIN_DUT_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVPARAM_MIN_DUT_SHIFT) & PCFG_DCDC_ADVPARAM_MIN_DUT_MASK)
476 #define PCFG_DCDC_ADVPARAM_MIN_DUT_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVPARAM_MIN_DUT_MASK) >> PCFG_DCDC_ADVPARAM_MIN_DUT_SHIFT)
477 
478 /*
479  * MAX_DUT (RW)
480  *
481  * maximum duty cycle
482  */
483 #define PCFG_DCDC_ADVPARAM_MAX_DUT_MASK (0x7FU)
484 #define PCFG_DCDC_ADVPARAM_MAX_DUT_SHIFT (0U)
485 #define PCFG_DCDC_ADVPARAM_MAX_DUT_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVPARAM_MAX_DUT_SHIFT) & PCFG_DCDC_ADVPARAM_MAX_DUT_MASK)
486 #define PCFG_DCDC_ADVPARAM_MAX_DUT_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVPARAM_MAX_DUT_MASK) >> PCFG_DCDC_ADVPARAM_MAX_DUT_SHIFT)
487 
488 /* Bitfield definition for register: DCDC_MISC */
489 /*
490  * EN_HYST (RW)
491  *
492  * hysteres enable
493  */
494 #define PCFG_DCDC_MISC_EN_HYST_MASK (0x10000000UL)
495 #define PCFG_DCDC_MISC_EN_HYST_SHIFT (28U)
496 #define PCFG_DCDC_MISC_EN_HYST_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_EN_HYST_SHIFT) & PCFG_DCDC_MISC_EN_HYST_MASK)
497 #define PCFG_DCDC_MISC_EN_HYST_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_EN_HYST_MASK) >> PCFG_DCDC_MISC_EN_HYST_SHIFT)
498 
499 /*
500  * HYST_SIGN (RW)
501  *
502  * hysteres sign
503  */
504 #define PCFG_DCDC_MISC_HYST_SIGN_MASK (0x2000000UL)
505 #define PCFG_DCDC_MISC_HYST_SIGN_SHIFT (25U)
506 #define PCFG_DCDC_MISC_HYST_SIGN_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_HYST_SIGN_SHIFT) & PCFG_DCDC_MISC_HYST_SIGN_MASK)
507 #define PCFG_DCDC_MISC_HYST_SIGN_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_HYST_SIGN_MASK) >> PCFG_DCDC_MISC_HYST_SIGN_SHIFT)
508 
509 /*
510  * HYST_THRS (RW)
511  *
512  * hysteres threshold
513  */
514 #define PCFG_DCDC_MISC_HYST_THRS_MASK (0x1000000UL)
515 #define PCFG_DCDC_MISC_HYST_THRS_SHIFT (24U)
516 #define PCFG_DCDC_MISC_HYST_THRS_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_HYST_THRS_SHIFT) & PCFG_DCDC_MISC_HYST_THRS_MASK)
517 #define PCFG_DCDC_MISC_HYST_THRS_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_HYST_THRS_MASK) >> PCFG_DCDC_MISC_HYST_THRS_SHIFT)
518 
519 /*
520  * RC_SCALE (RW)
521  *
522  * Loop RC scale threshold
523  */
524 #define PCFG_DCDC_MISC_RC_SCALE_MASK (0x100000UL)
525 #define PCFG_DCDC_MISC_RC_SCALE_SHIFT (20U)
526 #define PCFG_DCDC_MISC_RC_SCALE_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_RC_SCALE_SHIFT) & PCFG_DCDC_MISC_RC_SCALE_MASK)
527 #define PCFG_DCDC_MISC_RC_SCALE_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_RC_SCALE_MASK) >> PCFG_DCDC_MISC_RC_SCALE_SHIFT)
528 
529 /*
530  * DC_FF (RW)
531  *
532  * Loop feed forward number
533  */
534 #define PCFG_DCDC_MISC_DC_FF_MASK (0x70000UL)
535 #define PCFG_DCDC_MISC_DC_FF_SHIFT (16U)
536 #define PCFG_DCDC_MISC_DC_FF_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_DC_FF_SHIFT) & PCFG_DCDC_MISC_DC_FF_MASK)
537 #define PCFG_DCDC_MISC_DC_FF_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_DC_FF_MASK) >> PCFG_DCDC_MISC_DC_FF_SHIFT)
538 
539 /*
540  * OL_THRE (RW)
541  *
542  * overload threshold in low power mode
543  */
544 #define PCFG_DCDC_MISC_OL_THRE_MASK (0x300U)
545 #define PCFG_DCDC_MISC_OL_THRE_SHIFT (8U)
546 #define PCFG_DCDC_MISC_OL_THRE_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_OL_THRE_SHIFT) & PCFG_DCDC_MISC_OL_THRE_MASK)
547 #define PCFG_DCDC_MISC_OL_THRE_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_OL_THRE_MASK) >> PCFG_DCDC_MISC_OL_THRE_SHIFT)
548 
549 /*
550  * OL_HYST (RW)
551  *
552  * voltage ripple threshold in low power mode
553  * 0: 12.5mV
554  * 1: 25mV
555  */
556 #define PCFG_DCDC_MISC_OL_HYST_MASK (0x10U)
557 #define PCFG_DCDC_MISC_OL_HYST_SHIFT (4U)
558 #define PCFG_DCDC_MISC_OL_HYST_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_OL_HYST_SHIFT) & PCFG_DCDC_MISC_OL_HYST_MASK)
559 #define PCFG_DCDC_MISC_OL_HYST_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_OL_HYST_MASK) >> PCFG_DCDC_MISC_OL_HYST_SHIFT)
560 
561 /*
562  * DELAY (RW)
563  *
564  * enable delay
565  * 0: delay disabled,
566  * 1: delay enabled
567  */
568 #define PCFG_DCDC_MISC_DELAY_MASK (0x4U)
569 #define PCFG_DCDC_MISC_DELAY_SHIFT (2U)
570 #define PCFG_DCDC_MISC_DELAY_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_DELAY_SHIFT) & PCFG_DCDC_MISC_DELAY_MASK)
571 #define PCFG_DCDC_MISC_DELAY_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_DELAY_MASK) >> PCFG_DCDC_MISC_DELAY_SHIFT)
572 
573 /*
574  * CLK_SEL (RW)
575  *
576  * clock selection
577  * 0: select DCDC internal oscillator
578  * 1: select RC24M oscillator
579  */
580 #define PCFG_DCDC_MISC_CLK_SEL_MASK (0x2U)
581 #define PCFG_DCDC_MISC_CLK_SEL_SHIFT (1U)
582 #define PCFG_DCDC_MISC_CLK_SEL_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_CLK_SEL_SHIFT) & PCFG_DCDC_MISC_CLK_SEL_MASK)
583 #define PCFG_DCDC_MISC_CLK_SEL_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_CLK_SEL_MASK) >> PCFG_DCDC_MISC_CLK_SEL_SHIFT)
584 
585 /*
586  * EN_STEP (RW)
587  *
588  * enable stepping in voltage change
589  * 0: stepping disabled,
590  * 1: steping enabled
591  */
592 #define PCFG_DCDC_MISC_EN_STEP_MASK (0x1U)
593 #define PCFG_DCDC_MISC_EN_STEP_SHIFT (0U)
594 #define PCFG_DCDC_MISC_EN_STEP_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_EN_STEP_SHIFT) & PCFG_DCDC_MISC_EN_STEP_MASK)
595 #define PCFG_DCDC_MISC_EN_STEP_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_EN_STEP_MASK) >> PCFG_DCDC_MISC_EN_STEP_SHIFT)
596 
597 /* Bitfield definition for register: DCDC_DEBUG */
598 /*
599  * UPDATE_TIME (RW)
600  *
601  * DCDC voltage change time in 24M clock cycles, default value is 1mS
602  */
603 #define PCFG_DCDC_DEBUG_UPDATE_TIME_MASK (0xFFFFFUL)
604 #define PCFG_DCDC_DEBUG_UPDATE_TIME_SHIFT (0U)
605 #define PCFG_DCDC_DEBUG_UPDATE_TIME_SET(x) (((uint32_t)(x) << PCFG_DCDC_DEBUG_UPDATE_TIME_SHIFT) & PCFG_DCDC_DEBUG_UPDATE_TIME_MASK)
606 #define PCFG_DCDC_DEBUG_UPDATE_TIME_GET(x) (((uint32_t)(x) & PCFG_DCDC_DEBUG_UPDATE_TIME_MASK) >> PCFG_DCDC_DEBUG_UPDATE_TIME_SHIFT)
607 
608 /* Bitfield definition for register: DCDC_START_TIME */
609 /*
610  * START_TIME (RW)
611  *
612  * Start delay for DCDC to turn on, in 24M clock cycles, default value is 3mS
613  */
614 #define PCFG_DCDC_START_TIME_START_TIME_MASK (0xFFFFFUL)
615 #define PCFG_DCDC_START_TIME_START_TIME_SHIFT (0U)
616 #define PCFG_DCDC_START_TIME_START_TIME_SET(x) (((uint32_t)(x) << PCFG_DCDC_START_TIME_START_TIME_SHIFT) & PCFG_DCDC_START_TIME_START_TIME_MASK)
617 #define PCFG_DCDC_START_TIME_START_TIME_GET(x) (((uint32_t)(x) & PCFG_DCDC_START_TIME_START_TIME_MASK) >> PCFG_DCDC_START_TIME_START_TIME_SHIFT)
618 
619 /* Bitfield definition for register: DCDC_RESUME_TIME */
620 /*
621  * RESUME_TIME (RW)
622  *
623  * Resume delay for DCDC to recover from low power mode, in 24M clock cycles, default value is 1.5mS
624  */
625 #define PCFG_DCDC_RESUME_TIME_RESUME_TIME_MASK (0xFFFFFUL)
626 #define PCFG_DCDC_RESUME_TIME_RESUME_TIME_SHIFT (0U)
627 #define PCFG_DCDC_RESUME_TIME_RESUME_TIME_SET(x) (((uint32_t)(x) << PCFG_DCDC_RESUME_TIME_RESUME_TIME_SHIFT) & PCFG_DCDC_RESUME_TIME_RESUME_TIME_MASK)
628 #define PCFG_DCDC_RESUME_TIME_RESUME_TIME_GET(x) (((uint32_t)(x) & PCFG_DCDC_RESUME_TIME_RESUME_TIME_MASK) >> PCFG_DCDC_RESUME_TIME_RESUME_TIME_SHIFT)
629 
630 /* Bitfield definition for register: POWER_TRAP */
631 /*
632  * TRIGGERED (RW)
633  *
634  * Low power trap status, thit bit will set when power related low power flow triggered, write 1 to clear this flag.
635  * 0: low power trap is not triggered
636  * 1: low power trap triggered
637  */
638 #define PCFG_POWER_TRAP_TRIGGERED_MASK (0x80000000UL)
639 #define PCFG_POWER_TRAP_TRIGGERED_SHIFT (31U)
640 #define PCFG_POWER_TRAP_TRIGGERED_SET(x) (((uint32_t)(x) << PCFG_POWER_TRAP_TRIGGERED_SHIFT) & PCFG_POWER_TRAP_TRIGGERED_MASK)
641 #define PCFG_POWER_TRAP_TRIGGERED_GET(x) (((uint32_t)(x) & PCFG_POWER_TRAP_TRIGGERED_MASK) >> PCFG_POWER_TRAP_TRIGGERED_SHIFT)
642 
643 /*
644  * RETENTION (RW)
645  *
646  * DCDC enter standby mode, which will reduce voltage for memory content retention
647  * 0: Shutdown DCDC
648  * 1: reduce DCDC voltage
649  */
650 #define PCFG_POWER_TRAP_RETENTION_MASK (0x10000UL)
651 #define PCFG_POWER_TRAP_RETENTION_SHIFT (16U)
652 #define PCFG_POWER_TRAP_RETENTION_SET(x) (((uint32_t)(x) << PCFG_POWER_TRAP_RETENTION_SHIFT) & PCFG_POWER_TRAP_RETENTION_MASK)
653 #define PCFG_POWER_TRAP_RETENTION_GET(x) (((uint32_t)(x) & PCFG_POWER_TRAP_RETENTION_MASK) >> PCFG_POWER_TRAP_RETENTION_SHIFT)
654 
655 /*
656  * TRAP (RW)
657  *
658  * Enable trap of SOC power supply, trap is used to hold SOC in low power mode for DCDC to enter further low power mode, this bit will self-clear when power related low pwer flow triggered
659  * 0: trap not enabled, pmic side low power function disabled
660  * 1: trap enabled, STOP operation leads to PMIC low power flow if SOC is not retentioned.
661  */
662 #define PCFG_POWER_TRAP_TRAP_MASK (0x1U)
663 #define PCFG_POWER_TRAP_TRAP_SHIFT (0U)
664 #define PCFG_POWER_TRAP_TRAP_SET(x) (((uint32_t)(x) << PCFG_POWER_TRAP_TRAP_SHIFT) & PCFG_POWER_TRAP_TRAP_MASK)
665 #define PCFG_POWER_TRAP_TRAP_GET(x) (((uint32_t)(x) & PCFG_POWER_TRAP_TRAP_MASK) >> PCFG_POWER_TRAP_TRAP_SHIFT)
666 
667 /* Bitfield definition for register: WAKE_CAUSE */
668 /*
669  * CAUSE (RW)
670  *
671  * wake up cause, each bit represents one wake up source, write 1 to clear the register bit
672  * 0: wake up source is not active during last wakeup
673  * 1: wake up source is active furing last wakeup
674  * bit 0: pmic_enable
675  * bit 5: VAD interrupt
676  * bit 6: VAD wake interrupt
677  * bit 7: UART interrupt
678  * bit 8: TMR interrupt
679  * bit 9: WDG interrupt
680  * bit10: GPIO in PMIC interrupt
681  * bit16: Security violation in BATT
682  * bit17: GPIO in BATT interrupt
683  * bit19: RTC alarm interrupt
684  */
685 #define PCFG_WAKE_CAUSE_CAUSE_MASK (0xFFFFFFFFUL)
686 #define PCFG_WAKE_CAUSE_CAUSE_SHIFT (0U)
687 #define PCFG_WAKE_CAUSE_CAUSE_SET(x) (((uint32_t)(x) << PCFG_WAKE_CAUSE_CAUSE_SHIFT) & PCFG_WAKE_CAUSE_CAUSE_MASK)
688 #define PCFG_WAKE_CAUSE_CAUSE_GET(x) (((uint32_t)(x) & PCFG_WAKE_CAUSE_CAUSE_MASK) >> PCFG_WAKE_CAUSE_CAUSE_SHIFT)
689 
690 /* Bitfield definition for register: WAKE_MASK */
691 /*
692  * MASK (RW)
693  *
694  * mask for wake up sources, each bit represents one wakeup source
695  * 0: allow source to wake up system
696  * 1: disallow source to wakeup system
697  * bit 0: pmic_enable
698  * bit 5: VAD interrupt
699  * bit 6: VAD wake interrupt
700  * bit 7: UART interrupt
701  * bit 8: TMR interrupt
702  * bit 9: WDG interrupt
703  * bit10: GPIO in PMIC interrupt
704  * bit16: Security violation in BATT
705  * bit17: GPIO in BATT interrupt
706  * bit19: RTC alarm interrupt
707  */
708 #define PCFG_WAKE_MASK_MASK_MASK (0xFFFFFFFFUL)
709 #define PCFG_WAKE_MASK_MASK_SHIFT (0U)
710 #define PCFG_WAKE_MASK_MASK_SET(x) (((uint32_t)(x) << PCFG_WAKE_MASK_MASK_SHIFT) & PCFG_WAKE_MASK_MASK_MASK)
711 #define PCFG_WAKE_MASK_MASK_GET(x) (((uint32_t)(x) & PCFG_WAKE_MASK_MASK_MASK) >> PCFG_WAKE_MASK_MASK_SHIFT)
712 
713 /* Bitfield definition for register: SCG_CTRL */
714 /*
715  * SCG (RW)
716  *
717  * control whether clock being gated during PMIC low power flow, 2 bits for each peripheral
718  * 00,01: reserved
719  * 10: clock is always off
720  * 11: clock is always on
721  * bit6-7:gpio
722  * bit8-9:ioc
723  * bit10-11: timer
724  * bit12-13:wdog
725  * bit14-15:uart
726  * bit16-17:VAD
727  * bit18-19:SRAM
728  */
729 #define PCFG_SCG_CTRL_SCG_MASK (0xFFFFFFFFUL)
730 #define PCFG_SCG_CTRL_SCG_SHIFT (0U)
731 #define PCFG_SCG_CTRL_SCG_SET(x) (((uint32_t)(x) << PCFG_SCG_CTRL_SCG_SHIFT) & PCFG_SCG_CTRL_SCG_MASK)
732 #define PCFG_SCG_CTRL_SCG_GET(x) (((uint32_t)(x) & PCFG_SCG_CTRL_SCG_MASK) >> PCFG_SCG_CTRL_SCG_SHIFT)
733 
734 /* Bitfield definition for register: RC24M */
735 /*
736  * RC_TRIMMED (RW)
737  *
738  * RC24M trim happened, this bit set by hardware after trim value loaded, and stop load, write 0 will clear this bit and reload trim value
739  * 0: RC is not trimmed
740  * 1: RC is trimmed
741  */
742 #define PCFG_RC24M_RC_TRIMMED_MASK (0x80000000UL)
743 #define PCFG_RC24M_RC_TRIMMED_SHIFT (31U)
744 #define PCFG_RC24M_RC_TRIMMED_SET(x) (((uint32_t)(x) << PCFG_RC24M_RC_TRIMMED_SHIFT) & PCFG_RC24M_RC_TRIMMED_MASK)
745 #define PCFG_RC24M_RC_TRIMMED_GET(x) (((uint32_t)(x) & PCFG_RC24M_RC_TRIMMED_MASK) >> PCFG_RC24M_RC_TRIMMED_SHIFT)
746 
747 /*
748  * TRIM_C (RW)
749  *
750  * Coarse trim for RC24M, bigger value means faster
751  */
752 #define PCFG_RC24M_TRIM_C_MASK (0x700U)
753 #define PCFG_RC24M_TRIM_C_SHIFT (8U)
754 #define PCFG_RC24M_TRIM_C_SET(x) (((uint32_t)(x) << PCFG_RC24M_TRIM_C_SHIFT) & PCFG_RC24M_TRIM_C_MASK)
755 #define PCFG_RC24M_TRIM_C_GET(x) (((uint32_t)(x) & PCFG_RC24M_TRIM_C_MASK) >> PCFG_RC24M_TRIM_C_SHIFT)
756 
757 /*
758  * TRIM_F (RW)
759  *
760  * Fine trim for RC24M, bigger value means faster
761  */
762 #define PCFG_RC24M_TRIM_F_MASK (0x1FU)
763 #define PCFG_RC24M_TRIM_F_SHIFT (0U)
764 #define PCFG_RC24M_TRIM_F_SET(x) (((uint32_t)(x) << PCFG_RC24M_TRIM_F_SHIFT) & PCFG_RC24M_TRIM_F_MASK)
765 #define PCFG_RC24M_TRIM_F_GET(x) (((uint32_t)(x) & PCFG_RC24M_TRIM_F_MASK) >> PCFG_RC24M_TRIM_F_SHIFT)
766 
767 /* Bitfield definition for register: RC24M_TRACK */
768 /*
769  * SEL24M (RW)
770  *
771  * Select track reference
772  * 0: select 32K as reference
773  * 1: select 24M XTAL as reference
774  */
775 #define PCFG_RC24M_TRACK_SEL24M_MASK (0x10000UL)
776 #define PCFG_RC24M_TRACK_SEL24M_SHIFT (16U)
777 #define PCFG_RC24M_TRACK_SEL24M_SET(x) (((uint32_t)(x) << PCFG_RC24M_TRACK_SEL24M_SHIFT) & PCFG_RC24M_TRACK_SEL24M_MASK)
778 #define PCFG_RC24M_TRACK_SEL24M_GET(x) (((uint32_t)(x) & PCFG_RC24M_TRACK_SEL24M_MASK) >> PCFG_RC24M_TRACK_SEL24M_SHIFT)
779 
780 /*
781  * RETURN (RW)
782  *
783  * Retrun default value when XTAL loss
784  * 0: remain last tracking value
785  * 1: switch to default value
786  */
787 #define PCFG_RC24M_TRACK_RETURN_MASK (0x10U)
788 #define PCFG_RC24M_TRACK_RETURN_SHIFT (4U)
789 #define PCFG_RC24M_TRACK_RETURN_SET(x) (((uint32_t)(x) << PCFG_RC24M_TRACK_RETURN_SHIFT) & PCFG_RC24M_TRACK_RETURN_MASK)
790 #define PCFG_RC24M_TRACK_RETURN_GET(x) (((uint32_t)(x) & PCFG_RC24M_TRACK_RETURN_MASK) >> PCFG_RC24M_TRACK_RETURN_SHIFT)
791 
792 /*
793  * TRACK (RW)
794  *
795  * track mode
796  * 0: RC24M free running
797  * 1: track RC24M to external XTAL
798  */
799 #define PCFG_RC24M_TRACK_TRACK_MASK (0x1U)
800 #define PCFG_RC24M_TRACK_TRACK_SHIFT (0U)
801 #define PCFG_RC24M_TRACK_TRACK_SET(x) (((uint32_t)(x) << PCFG_RC24M_TRACK_TRACK_SHIFT) & PCFG_RC24M_TRACK_TRACK_MASK)
802 #define PCFG_RC24M_TRACK_TRACK_GET(x) (((uint32_t)(x) & PCFG_RC24M_TRACK_TRACK_MASK) >> PCFG_RC24M_TRACK_TRACK_SHIFT)
803 
804 /* Bitfield definition for register: TRACK_TARGET */
805 /*
806  * PRE_DIV (RW)
807  *
808  * Divider for reference source
809  */
810 #define PCFG_TRACK_TARGET_PRE_DIV_MASK (0xFFFF0000UL)
811 #define PCFG_TRACK_TARGET_PRE_DIV_SHIFT (16U)
812 #define PCFG_TRACK_TARGET_PRE_DIV_SET(x) (((uint32_t)(x) << PCFG_TRACK_TARGET_PRE_DIV_SHIFT) & PCFG_TRACK_TARGET_PRE_DIV_MASK)
813 #define PCFG_TRACK_TARGET_PRE_DIV_GET(x) (((uint32_t)(x) & PCFG_TRACK_TARGET_PRE_DIV_MASK) >> PCFG_TRACK_TARGET_PRE_DIV_SHIFT)
814 
815 /*
816  * TARGET (RW)
817  *
818  * Target frequency multiplier of divided source
819  */
820 #define PCFG_TRACK_TARGET_TARGET_MASK (0xFFFFU)
821 #define PCFG_TRACK_TARGET_TARGET_SHIFT (0U)
822 #define PCFG_TRACK_TARGET_TARGET_SET(x) (((uint32_t)(x) << PCFG_TRACK_TARGET_TARGET_SHIFT) & PCFG_TRACK_TARGET_TARGET_MASK)
823 #define PCFG_TRACK_TARGET_TARGET_GET(x) (((uint32_t)(x) & PCFG_TRACK_TARGET_TARGET_MASK) >> PCFG_TRACK_TARGET_TARGET_SHIFT)
824 
825 /* Bitfield definition for register: STATUS */
826 /*
827  * SEL32K (RO)
828  *
829  * track is using XTAL32K
830  * 0: track is not using XTAL32K
831  * 1: track is using XTAL32K
832  */
833 #define PCFG_STATUS_SEL32K_MASK (0x100000UL)
834 #define PCFG_STATUS_SEL32K_SHIFT (20U)
835 #define PCFG_STATUS_SEL32K_GET(x) (((uint32_t)(x) & PCFG_STATUS_SEL32K_MASK) >> PCFG_STATUS_SEL32K_SHIFT)
836 
837 /*
838  * SEL24M (RO)
839  *
840  * track is using XTAL24M
841  * 0: track is not using XTAL24M
842  * 1: track is using XTAL24M
843  */
844 #define PCFG_STATUS_SEL24M_MASK (0x10000UL)
845 #define PCFG_STATUS_SEL24M_SHIFT (16U)
846 #define PCFG_STATUS_SEL24M_GET(x) (((uint32_t)(x) & PCFG_STATUS_SEL24M_MASK) >> PCFG_STATUS_SEL24M_SHIFT)
847 
848 /*
849  * EN_TRIM (RO)
850  *
851  * default value takes effect
852  * 0: default value is invalid
853  * 1: default value is valid
854  */
855 #define PCFG_STATUS_EN_TRIM_MASK (0x8000U)
856 #define PCFG_STATUS_EN_TRIM_SHIFT (15U)
857 #define PCFG_STATUS_EN_TRIM_GET(x) (((uint32_t)(x) & PCFG_STATUS_EN_TRIM_MASK) >> PCFG_STATUS_EN_TRIM_SHIFT)
858 
859 /*
860  * TRIM_C (RO)
861  *
862  * default coarse trim value
863  */
864 #define PCFG_STATUS_TRIM_C_MASK (0x700U)
865 #define PCFG_STATUS_TRIM_C_SHIFT (8U)
866 #define PCFG_STATUS_TRIM_C_GET(x) (((uint32_t)(x) & PCFG_STATUS_TRIM_C_MASK) >> PCFG_STATUS_TRIM_C_SHIFT)
867 
868 /*
869  * TRIM_F (RO)
870  *
871  * default fine trim value
872  */
873 #define PCFG_STATUS_TRIM_F_MASK (0x1FU)
874 #define PCFG_STATUS_TRIM_F_SHIFT (0U)
875 #define PCFG_STATUS_TRIM_F_GET(x) (((uint32_t)(x) & PCFG_STATUS_TRIM_F_MASK) >> PCFG_STATUS_TRIM_F_SHIFT)
876 
877 /* Bitfield definition for register: DCDCM_MODE */
878 /*
879  * READY (RO)
880  *
881  * Ready flag
882  * 0: DCDCM is applying new change
883  * 1: DCDCM is ready
884  */
885 #define PCFG_DCDCM_MODE_READY_MASK (0x10000000UL)
886 #define PCFG_DCDCM_MODE_READY_SHIFT (28U)
887 #define PCFG_DCDCM_MODE_READY_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MODE_READY_MASK) >> PCFG_DCDCM_MODE_READY_SHIFT)
888 
889 /*
890  * MODE (RW)
891  *
892  * DCDCM work mode
893  * XX0: turn off
894  * 001: basic mode
895  * 011: generic mode
896  * 101: automatic mode
897  * 111: expert mode
898  */
899 #define PCFG_DCDCM_MODE_MODE_MASK (0x70000UL)
900 #define PCFG_DCDCM_MODE_MODE_SHIFT (16U)
901 #define PCFG_DCDCM_MODE_MODE_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MODE_MODE_SHIFT) & PCFG_DCDCM_MODE_MODE_MASK)
902 #define PCFG_DCDCM_MODE_MODE_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MODE_MODE_MASK) >> PCFG_DCDCM_MODE_MODE_SHIFT)
903 
904 /*
905  * VOLT (RW)
906  *
907  * DCDCM voltage in mV in normal mode, value valid through 600-1375, , step 25mV. Hardware select voltage no less than target if not on valid steps, with maximum 1375mV.
908  * 600: 600mV
909  * 625: 625mV
910  * . . .
911  * 1375:1375mV
912  */
913 #define PCFG_DCDCM_MODE_VOLT_MASK (0xFFFU)
914 #define PCFG_DCDCM_MODE_VOLT_SHIFT (0U)
915 #define PCFG_DCDCM_MODE_VOLT_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MODE_VOLT_SHIFT) & PCFG_DCDCM_MODE_VOLT_MASK)
916 #define PCFG_DCDCM_MODE_VOLT_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MODE_VOLT_MASK) >> PCFG_DCDCM_MODE_VOLT_SHIFT)
917 
918 /* Bitfield definition for register: DCDCM_LPMODE */
919 /*
920  * STBY_VOLT (RW)
921  *
922  * DCDCM voltage in mV in standby mode, , value valid through 600-1375, , step 25mV. Hardware select voltage no less than target if not on valid steps, with maximum 1375mV.
923  * 600: 600mV
924  * 625: 625mV
925  * . . .
926  * 1375:1375mV
927  */
928 #define PCFG_DCDCM_LPMODE_STBY_VOLT_MASK (0xFFFU)
929 #define PCFG_DCDCM_LPMODE_STBY_VOLT_SHIFT (0U)
930 #define PCFG_DCDCM_LPMODE_STBY_VOLT_SET(x) (((uint32_t)(x) << PCFG_DCDCM_LPMODE_STBY_VOLT_SHIFT) & PCFG_DCDCM_LPMODE_STBY_VOLT_MASK)
931 #define PCFG_DCDCM_LPMODE_STBY_VOLT_GET(x) (((uint32_t)(x) & PCFG_DCDCM_LPMODE_STBY_VOLT_MASK) >> PCFG_DCDCM_LPMODE_STBY_VOLT_SHIFT)
932 
933 /* Bitfield definition for register: DCDCM_PROT */
934 /*
935  * ILIMIT_LP (RW)
936  *
937  * over current setting for low power mode
938  * 0:250mA
939  * 1:200mA
940  */
941 #define PCFG_DCDCM_PROT_ILIMIT_LP_MASK (0x10000000UL)
942 #define PCFG_DCDCM_PROT_ILIMIT_LP_SHIFT (28U)
943 #define PCFG_DCDCM_PROT_ILIMIT_LP_SET(x) (((uint32_t)(x) << PCFG_DCDCM_PROT_ILIMIT_LP_SHIFT) & PCFG_DCDCM_PROT_ILIMIT_LP_MASK)
944 #define PCFG_DCDCM_PROT_ILIMIT_LP_GET(x) (((uint32_t)(x) & PCFG_DCDCM_PROT_ILIMIT_LP_MASK) >> PCFG_DCDCM_PROT_ILIMIT_LP_SHIFT)
945 
946 /*
947  * OVERLOAD_LP (RO)
948  *
949  * over current in low power mode
950  * 0: current is below setting
951  * 1: overcurrent happened in low power mode
952  */
953 #define PCFG_DCDCM_PROT_OVERLOAD_LP_MASK (0x1000000UL)
954 #define PCFG_DCDCM_PROT_OVERLOAD_LP_SHIFT (24U)
955 #define PCFG_DCDCM_PROT_OVERLOAD_LP_GET(x) (((uint32_t)(x) & PCFG_DCDCM_PROT_OVERLOAD_LP_MASK) >> PCFG_DCDCM_PROT_OVERLOAD_LP_SHIFT)
956 
957 /*
958  * DISABLE_POWER_LOSS (RW)
959  *
960  * disable power loss protection
961  * 0: power loss protection enabled, DCDCM shuts down when power loss
962  * 1: power loss protection disabled, DCDCM try working after power voltage drop
963  */
964 #define PCFG_DCDCM_PROT_DISABLE_POWER_LOSS_MASK (0x800000UL)
965 #define PCFG_DCDCM_PROT_DISABLE_POWER_LOSS_SHIFT (23U)
966 #define PCFG_DCDCM_PROT_DISABLE_POWER_LOSS_SET(x) (((uint32_t)(x) << PCFG_DCDCM_PROT_DISABLE_POWER_LOSS_SHIFT) & PCFG_DCDCM_PROT_DISABLE_POWER_LOSS_MASK)
967 #define PCFG_DCDCM_PROT_DISABLE_POWER_LOSS_GET(x) (((uint32_t)(x) & PCFG_DCDCM_PROT_DISABLE_POWER_LOSS_MASK) >> PCFG_DCDCM_PROT_DISABLE_POWER_LOSS_SHIFT)
968 
969 /*
970  * POWER_LOSS_FLAG (RO)
971  *
972  * power loss
973  * 0: input power is good
974  * 1: input power is too low
975  */
976 #define PCFG_DCDCM_PROT_POWER_LOSS_FLAG_MASK (0x10000UL)
977 #define PCFG_DCDCM_PROT_POWER_LOSS_FLAG_SHIFT (16U)
978 #define PCFG_DCDCM_PROT_POWER_LOSS_FLAG_GET(x) (((uint32_t)(x) & PCFG_DCDCM_PROT_POWER_LOSS_FLAG_MASK) >> PCFG_DCDCM_PROT_POWER_LOSS_FLAG_SHIFT)
979 
980 /*
981  * DISABLE_OVERVOLTAGE (RW)
982  *
983  * output over voltage protection
984  * 0: protection enabled, DCDCM will shut down is output voltage is unexpected high
985  * 1: protection disabled, DCDCM continue to adjust output voltage
986  */
987 #define PCFG_DCDCM_PROT_DISABLE_OVERVOLTAGE_MASK (0x8000U)
988 #define PCFG_DCDCM_PROT_DISABLE_OVERVOLTAGE_SHIFT (15U)
989 #define PCFG_DCDCM_PROT_DISABLE_OVERVOLTAGE_SET(x) (((uint32_t)(x) << PCFG_DCDCM_PROT_DISABLE_OVERVOLTAGE_SHIFT) & PCFG_DCDCM_PROT_DISABLE_OVERVOLTAGE_MASK)
990 #define PCFG_DCDCM_PROT_DISABLE_OVERVOLTAGE_GET(x) (((uint32_t)(x) & PCFG_DCDCM_PROT_DISABLE_OVERVOLTAGE_MASK) >> PCFG_DCDCM_PROT_DISABLE_OVERVOLTAGE_SHIFT)
991 
992 /*
993  * OVERVOLT_FLAG (RO)
994  *
995  * output over voltage flag
996  * 0: output is normal
997  * 1: output is unexpected high
998  */
999 #define PCFG_DCDCM_PROT_OVERVOLT_FLAG_MASK (0x100U)
1000 #define PCFG_DCDCM_PROT_OVERVOLT_FLAG_SHIFT (8U)
1001 #define PCFG_DCDCM_PROT_OVERVOLT_FLAG_GET(x) (((uint32_t)(x) & PCFG_DCDCM_PROT_OVERVOLT_FLAG_MASK) >> PCFG_DCDCM_PROT_OVERVOLT_FLAG_SHIFT)
1002 
1003 /*
1004  * DISABLE_SHORT (RW)
1005  *
1006  * disable output short circuit protection
1007  * 0: short circuits protection enabled, DCDCM shut down if short circuit on output detected
1008  * 1: short circuit protection disabled
1009  */
1010 #define PCFG_DCDCM_PROT_DISABLE_SHORT_MASK (0x80U)
1011 #define PCFG_DCDCM_PROT_DISABLE_SHORT_SHIFT (7U)
1012 #define PCFG_DCDCM_PROT_DISABLE_SHORT_SET(x) (((uint32_t)(x) << PCFG_DCDCM_PROT_DISABLE_SHORT_SHIFT) & PCFG_DCDCM_PROT_DISABLE_SHORT_MASK)
1013 #define PCFG_DCDCM_PROT_DISABLE_SHORT_GET(x) (((uint32_t)(x) & PCFG_DCDCM_PROT_DISABLE_SHORT_MASK) >> PCFG_DCDCM_PROT_DISABLE_SHORT_SHIFT)
1014 
1015 /*
1016  * SHORT_CURRENT (RW)
1017  *
1018  * short circuit current setting
1019  * 0: 2.0A
1020  * 1: 1.3A
1021  */
1022 #define PCFG_DCDCM_PROT_SHORT_CURRENT_MASK (0x10U)
1023 #define PCFG_DCDCM_PROT_SHORT_CURRENT_SHIFT (4U)
1024 #define PCFG_DCDCM_PROT_SHORT_CURRENT_SET(x) (((uint32_t)(x) << PCFG_DCDCM_PROT_SHORT_CURRENT_SHIFT) & PCFG_DCDCM_PROT_SHORT_CURRENT_MASK)
1025 #define PCFG_DCDCM_PROT_SHORT_CURRENT_GET(x) (((uint32_t)(x) & PCFG_DCDCM_PROT_SHORT_CURRENT_MASK) >> PCFG_DCDCM_PROT_SHORT_CURRENT_SHIFT)
1026 
1027 /*
1028  * SHORT_FLAG (RO)
1029  *
1030  * short circuit flag
1031  * 0: current is within limit
1032  * 1: short circuits detected
1033  */
1034 #define PCFG_DCDCM_PROT_SHORT_FLAG_MASK (0x1U)
1035 #define PCFG_DCDCM_PROT_SHORT_FLAG_SHIFT (0U)
1036 #define PCFG_DCDCM_PROT_SHORT_FLAG_GET(x) (((uint32_t)(x) & PCFG_DCDCM_PROT_SHORT_FLAG_MASK) >> PCFG_DCDCM_PROT_SHORT_FLAG_SHIFT)
1037 
1038 /* Bitfield definition for register: DCDCM_CURRENT */
1039 /*
1040  * ESTI_EN (RW)
1041  *
1042  * enable current measure
1043  */
1044 #define PCFG_DCDCM_CURRENT_ESTI_EN_MASK (0x8000U)
1045 #define PCFG_DCDCM_CURRENT_ESTI_EN_SHIFT (15U)
1046 #define PCFG_DCDCM_CURRENT_ESTI_EN_SET(x) (((uint32_t)(x) << PCFG_DCDCM_CURRENT_ESTI_EN_SHIFT) & PCFG_DCDCM_CURRENT_ESTI_EN_MASK)
1047 #define PCFG_DCDCM_CURRENT_ESTI_EN_GET(x) (((uint32_t)(x) & PCFG_DCDCM_CURRENT_ESTI_EN_MASK) >> PCFG_DCDCM_CURRENT_ESTI_EN_SHIFT)
1048 
1049 /*
1050  * VALID (RO)
1051  *
1052  * Current level valid
1053  * 0: data is invalid
1054  * 1: data is valid
1055  */
1056 #define PCFG_DCDCM_CURRENT_VALID_MASK (0x100U)
1057 #define PCFG_DCDCM_CURRENT_VALID_SHIFT (8U)
1058 #define PCFG_DCDCM_CURRENT_VALID_GET(x) (((uint32_t)(x) & PCFG_DCDCM_CURRENT_VALID_MASK) >> PCFG_DCDCM_CURRENT_VALID_SHIFT)
1059 
1060 /*
1061  * LEVEL (RO)
1062  *
1063  * DCDCM current level, current level is num * 50mA
1064  */
1065 #define PCFG_DCDCM_CURRENT_LEVEL_MASK (0x1FU)
1066 #define PCFG_DCDCM_CURRENT_LEVEL_SHIFT (0U)
1067 #define PCFG_DCDCM_CURRENT_LEVEL_GET(x) (((uint32_t)(x) & PCFG_DCDCM_CURRENT_LEVEL_MASK) >> PCFG_DCDCM_CURRENT_LEVEL_SHIFT)
1068 
1069 /* Bitfield definition for register: DCDCM_ADVMODE */
1070 /*
1071  * EN_RCSCALE (RW)
1072  *
1073  * Enable RC scale
1074  */
1075 #define PCFG_DCDCM_ADVMODE_EN_RCSCALE_MASK (0x7000000UL)
1076 #define PCFG_DCDCM_ADVMODE_EN_RCSCALE_SHIFT (24U)
1077 #define PCFG_DCDCM_ADVMODE_EN_RCSCALE_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVMODE_EN_RCSCALE_SHIFT) & PCFG_DCDCM_ADVMODE_EN_RCSCALE_MASK)
1078 #define PCFG_DCDCM_ADVMODE_EN_RCSCALE_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVMODE_EN_RCSCALE_MASK) >> PCFG_DCDCM_ADVMODE_EN_RCSCALE_SHIFT)
1079 
1080 /*
1081  * DC_C (RW)
1082  *
1083  * Loop C number
1084  */
1085 #define PCFG_DCDCM_ADVMODE_DC_C_MASK (0x300000UL)
1086 #define PCFG_DCDCM_ADVMODE_DC_C_SHIFT (20U)
1087 #define PCFG_DCDCM_ADVMODE_DC_C_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVMODE_DC_C_SHIFT) & PCFG_DCDCM_ADVMODE_DC_C_MASK)
1088 #define PCFG_DCDCM_ADVMODE_DC_C_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVMODE_DC_C_MASK) >> PCFG_DCDCM_ADVMODE_DC_C_SHIFT)
1089 
1090 /*
1091  * DC_R (RW)
1092  *
1093  * Loop R number
1094  */
1095 #define PCFG_DCDCM_ADVMODE_DC_R_MASK (0xF0000UL)
1096 #define PCFG_DCDCM_ADVMODE_DC_R_SHIFT (16U)
1097 #define PCFG_DCDCM_ADVMODE_DC_R_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVMODE_DC_R_SHIFT) & PCFG_DCDCM_ADVMODE_DC_R_MASK)
1098 #define PCFG_DCDCM_ADVMODE_DC_R_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVMODE_DC_R_MASK) >> PCFG_DCDCM_ADVMODE_DC_R_SHIFT)
1099 
1100 /*
1101  * EN_FF_DET (RW)
1102  *
1103  * enable feed forward detect
1104  * 0: feed forward detect is disabled
1105  * 1: feed forward detect is enabled
1106  */
1107 #define PCFG_DCDCM_ADVMODE_EN_FF_DET_MASK (0x40U)
1108 #define PCFG_DCDCM_ADVMODE_EN_FF_DET_SHIFT (6U)
1109 #define PCFG_DCDCM_ADVMODE_EN_FF_DET_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVMODE_EN_FF_DET_SHIFT) & PCFG_DCDCM_ADVMODE_EN_FF_DET_MASK)
1110 #define PCFG_DCDCM_ADVMODE_EN_FF_DET_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVMODE_EN_FF_DET_MASK) >> PCFG_DCDCM_ADVMODE_EN_FF_DET_SHIFT)
1111 
1112 /*
1113  * EN_FF_LOOP (RW)
1114  *
1115  * enable feed forward loop
1116  * 0: feed forward loop is disabled
1117  * 1: feed forward loop is enabled
1118  */
1119 #define PCFG_DCDCM_ADVMODE_EN_FF_LOOP_MASK (0x20U)
1120 #define PCFG_DCDCM_ADVMODE_EN_FF_LOOP_SHIFT (5U)
1121 #define PCFG_DCDCM_ADVMODE_EN_FF_LOOP_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVMODE_EN_FF_LOOP_SHIFT) & PCFG_DCDCM_ADVMODE_EN_FF_LOOP_MASK)
1122 #define PCFG_DCDCM_ADVMODE_EN_FF_LOOP_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVMODE_EN_FF_LOOP_MASK) >> PCFG_DCDCM_ADVMODE_EN_FF_LOOP_SHIFT)
1123 
1124 /*
1125  * EN_AUTOLP (RW)
1126  *
1127  * enable auto enter low power mode
1128  * 0: do not enter low power mode
1129  * 1: enter low power mode if current is detected low
1130  */
1131 #define PCFG_DCDCM_ADVMODE_EN_AUTOLP_MASK (0x10U)
1132 #define PCFG_DCDCM_ADVMODE_EN_AUTOLP_SHIFT (4U)
1133 #define PCFG_DCDCM_ADVMODE_EN_AUTOLP_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVMODE_EN_AUTOLP_SHIFT) & PCFG_DCDCM_ADVMODE_EN_AUTOLP_MASK)
1134 #define PCFG_DCDCM_ADVMODE_EN_AUTOLP_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVMODE_EN_AUTOLP_MASK) >> PCFG_DCDCM_ADVMODE_EN_AUTOLP_SHIFT)
1135 
1136 /*
1137  * EN_DCM_EXIT (RW)
1138  *
1139  * avoid over voltage
1140  * 0: stay in DCM mode when voltage excess
1141  * 1: change to CCM mode when voltage excess
1142  */
1143 #define PCFG_DCDCM_ADVMODE_EN_DCM_EXIT_MASK (0x8U)
1144 #define PCFG_DCDCM_ADVMODE_EN_DCM_EXIT_SHIFT (3U)
1145 #define PCFG_DCDCM_ADVMODE_EN_DCM_EXIT_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVMODE_EN_DCM_EXIT_SHIFT) & PCFG_DCDCM_ADVMODE_EN_DCM_EXIT_MASK)
1146 #define PCFG_DCDCM_ADVMODE_EN_DCM_EXIT_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVMODE_EN_DCM_EXIT_MASK) >> PCFG_DCDCM_ADVMODE_EN_DCM_EXIT_SHIFT)
1147 
1148 /*
1149  * EN_SKIP (RW)
1150  *
1151  * enable skip on narrow pulse
1152  * 0: do not skip narrow pulse
1153  * 1: skip narrow pulse
1154  */
1155 #define PCFG_DCDCM_ADVMODE_EN_SKIP_MASK (0x4U)
1156 #define PCFG_DCDCM_ADVMODE_EN_SKIP_SHIFT (2U)
1157 #define PCFG_DCDCM_ADVMODE_EN_SKIP_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVMODE_EN_SKIP_SHIFT) & PCFG_DCDCM_ADVMODE_EN_SKIP_MASK)
1158 #define PCFG_DCDCM_ADVMODE_EN_SKIP_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVMODE_EN_SKIP_MASK) >> PCFG_DCDCM_ADVMODE_EN_SKIP_SHIFT)
1159 
1160 /*
1161  * EN_IDLE (RW)
1162  *
1163  * enable skip when voltage is higher than threshold
1164  * 0: do not skip
1165  * 1: skip if voltage is excess
1166  */
1167 #define PCFG_DCDCM_ADVMODE_EN_IDLE_MASK (0x2U)
1168 #define PCFG_DCDCM_ADVMODE_EN_IDLE_SHIFT (1U)
1169 #define PCFG_DCDCM_ADVMODE_EN_IDLE_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVMODE_EN_IDLE_SHIFT) & PCFG_DCDCM_ADVMODE_EN_IDLE_MASK)
1170 #define PCFG_DCDCM_ADVMODE_EN_IDLE_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVMODE_EN_IDLE_MASK) >> PCFG_DCDCM_ADVMODE_EN_IDLE_SHIFT)
1171 
1172 /*
1173  * EN_DCM (RW)
1174  *
1175  * DCM mode
1176  * 0: CCM mode
1177  * 1: DCM mode
1178  */
1179 #define PCFG_DCDCM_ADVMODE_EN_DCM_MASK (0x1U)
1180 #define PCFG_DCDCM_ADVMODE_EN_DCM_SHIFT (0U)
1181 #define PCFG_DCDCM_ADVMODE_EN_DCM_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVMODE_EN_DCM_SHIFT) & PCFG_DCDCM_ADVMODE_EN_DCM_MASK)
1182 #define PCFG_DCDCM_ADVMODE_EN_DCM_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVMODE_EN_DCM_MASK) >> PCFG_DCDCM_ADVMODE_EN_DCM_SHIFT)
1183 
1184 /* Bitfield definition for register: DCDCM_ADVPARAM */
1185 /*
1186  * MIN_DUT (RW)
1187  *
1188  * minimum duty cycle
1189  */
1190 #define PCFG_DCDCM_ADVPARAM_MIN_DUT_MASK (0x7F00U)
1191 #define PCFG_DCDCM_ADVPARAM_MIN_DUT_SHIFT (8U)
1192 #define PCFG_DCDCM_ADVPARAM_MIN_DUT_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVPARAM_MIN_DUT_SHIFT) & PCFG_DCDCM_ADVPARAM_MIN_DUT_MASK)
1193 #define PCFG_DCDCM_ADVPARAM_MIN_DUT_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVPARAM_MIN_DUT_MASK) >> PCFG_DCDCM_ADVPARAM_MIN_DUT_SHIFT)
1194 
1195 /*
1196  * MAX_DUT (RW)
1197  *
1198  * maximum duty cycle
1199  */
1200 #define PCFG_DCDCM_ADVPARAM_MAX_DUT_MASK (0x7FU)
1201 #define PCFG_DCDCM_ADVPARAM_MAX_DUT_SHIFT (0U)
1202 #define PCFG_DCDCM_ADVPARAM_MAX_DUT_SET(x) (((uint32_t)(x) << PCFG_DCDCM_ADVPARAM_MAX_DUT_SHIFT) & PCFG_DCDCM_ADVPARAM_MAX_DUT_MASK)
1203 #define PCFG_DCDCM_ADVPARAM_MAX_DUT_GET(x) (((uint32_t)(x) & PCFG_DCDCM_ADVPARAM_MAX_DUT_MASK) >> PCFG_DCDCM_ADVPARAM_MAX_DUT_SHIFT)
1204 
1205 /* Bitfield definition for register: DCDCM_MISC */
1206 /*
1207  * EN_HYST (RW)
1208  *
1209  * hysteres enable
1210  */
1211 #define PCFG_DCDCM_MISC_EN_HYST_MASK (0x10000000UL)
1212 #define PCFG_DCDCM_MISC_EN_HYST_SHIFT (28U)
1213 #define PCFG_DCDCM_MISC_EN_HYST_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MISC_EN_HYST_SHIFT) & PCFG_DCDCM_MISC_EN_HYST_MASK)
1214 #define PCFG_DCDCM_MISC_EN_HYST_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MISC_EN_HYST_MASK) >> PCFG_DCDCM_MISC_EN_HYST_SHIFT)
1215 
1216 /*
1217  * HYST_SIGN (RW)
1218  *
1219  * hysteres sign
1220  */
1221 #define PCFG_DCDCM_MISC_HYST_SIGN_MASK (0x2000000UL)
1222 #define PCFG_DCDCM_MISC_HYST_SIGN_SHIFT (25U)
1223 #define PCFG_DCDCM_MISC_HYST_SIGN_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MISC_HYST_SIGN_SHIFT) & PCFG_DCDCM_MISC_HYST_SIGN_MASK)
1224 #define PCFG_DCDCM_MISC_HYST_SIGN_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MISC_HYST_SIGN_MASK) >> PCFG_DCDCM_MISC_HYST_SIGN_SHIFT)
1225 
1226 /*
1227  * HYST_THRS (RW)
1228  *
1229  * hysteres threshold
1230  */
1231 #define PCFG_DCDCM_MISC_HYST_THRS_MASK (0x1000000UL)
1232 #define PCFG_DCDCM_MISC_HYST_THRS_SHIFT (24U)
1233 #define PCFG_DCDCM_MISC_HYST_THRS_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MISC_HYST_THRS_SHIFT) & PCFG_DCDCM_MISC_HYST_THRS_MASK)
1234 #define PCFG_DCDCM_MISC_HYST_THRS_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MISC_HYST_THRS_MASK) >> PCFG_DCDCM_MISC_HYST_THRS_SHIFT)
1235 
1236 /*
1237  * RC_SCALE (RW)
1238  *
1239  * Loop RC scale threshold
1240  */
1241 #define PCFG_DCDCM_MISC_RC_SCALE_MASK (0x100000UL)
1242 #define PCFG_DCDCM_MISC_RC_SCALE_SHIFT (20U)
1243 #define PCFG_DCDCM_MISC_RC_SCALE_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MISC_RC_SCALE_SHIFT) & PCFG_DCDCM_MISC_RC_SCALE_MASK)
1244 #define PCFG_DCDCM_MISC_RC_SCALE_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MISC_RC_SCALE_MASK) >> PCFG_DCDCM_MISC_RC_SCALE_SHIFT)
1245 
1246 /*
1247  * DC_FF (RW)
1248  *
1249  * Loop feed forward number
1250  */
1251 #define PCFG_DCDCM_MISC_DC_FF_MASK (0x70000UL)
1252 #define PCFG_DCDCM_MISC_DC_FF_SHIFT (16U)
1253 #define PCFG_DCDCM_MISC_DC_FF_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MISC_DC_FF_SHIFT) & PCFG_DCDCM_MISC_DC_FF_MASK)
1254 #define PCFG_DCDCM_MISC_DC_FF_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MISC_DC_FF_MASK) >> PCFG_DCDCM_MISC_DC_FF_SHIFT)
1255 
1256 /*
1257  * OL_THRE (RW)
1258  *
1259  * overload for threshold for lod power mode
1260  */
1261 #define PCFG_DCDCM_MISC_OL_THRE_MASK (0x300U)
1262 #define PCFG_DCDCM_MISC_OL_THRE_SHIFT (8U)
1263 #define PCFG_DCDCM_MISC_OL_THRE_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MISC_OL_THRE_SHIFT) & PCFG_DCDCM_MISC_OL_THRE_MASK)
1264 #define PCFG_DCDCM_MISC_OL_THRE_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MISC_OL_THRE_MASK) >> PCFG_DCDCM_MISC_OL_THRE_SHIFT)
1265 
1266 /*
1267  * OL_HYST (RW)
1268  *
1269  * current hysteres range
1270  * 0: 12.5mV
1271  * 1: 25mV
1272  */
1273 #define PCFG_DCDCM_MISC_OL_HYST_MASK (0x10U)
1274 #define PCFG_DCDCM_MISC_OL_HYST_SHIFT (4U)
1275 #define PCFG_DCDCM_MISC_OL_HYST_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MISC_OL_HYST_SHIFT) & PCFG_DCDCM_MISC_OL_HYST_MASK)
1276 #define PCFG_DCDCM_MISC_OL_HYST_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MISC_OL_HYST_MASK) >> PCFG_DCDCM_MISC_OL_HYST_SHIFT)
1277 
1278 /*
1279  * DELAY (RW)
1280  *
1281  * enable delay
1282  * 0: delay disabled,
1283  * 1: delay enabled
1284  */
1285 #define PCFG_DCDCM_MISC_DELAY_MASK (0x4U)
1286 #define PCFG_DCDCM_MISC_DELAY_SHIFT (2U)
1287 #define PCFG_DCDCM_MISC_DELAY_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MISC_DELAY_SHIFT) & PCFG_DCDCM_MISC_DELAY_MASK)
1288 #define PCFG_DCDCM_MISC_DELAY_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MISC_DELAY_MASK) >> PCFG_DCDCM_MISC_DELAY_SHIFT)
1289 
1290 /*
1291  * CLK_SEL (RW)
1292  *
1293  * clock selection
1294  * 0: select DCDCM internal oscillator
1295  * 1: select RC24M oscillator
1296  */
1297 #define PCFG_DCDCM_MISC_CLK_SEL_MASK (0x2U)
1298 #define PCFG_DCDCM_MISC_CLK_SEL_SHIFT (1U)
1299 #define PCFG_DCDCM_MISC_CLK_SEL_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MISC_CLK_SEL_SHIFT) & PCFG_DCDCM_MISC_CLK_SEL_MASK)
1300 #define PCFG_DCDCM_MISC_CLK_SEL_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MISC_CLK_SEL_MASK) >> PCFG_DCDCM_MISC_CLK_SEL_SHIFT)
1301 
1302 /*
1303  * EN_STEP (RW)
1304  *
1305  * enable stepping in voltage change
1306  * 0: stepping disabled,
1307  * 1: steping enabled
1308  */
1309 #define PCFG_DCDCM_MISC_EN_STEP_MASK (0x1U)
1310 #define PCFG_DCDCM_MISC_EN_STEP_SHIFT (0U)
1311 #define PCFG_DCDCM_MISC_EN_STEP_SET(x) (((uint32_t)(x) << PCFG_DCDCM_MISC_EN_STEP_SHIFT) & PCFG_DCDCM_MISC_EN_STEP_MASK)
1312 #define PCFG_DCDCM_MISC_EN_STEP_GET(x) (((uint32_t)(x) & PCFG_DCDCM_MISC_EN_STEP_MASK) >> PCFG_DCDCM_MISC_EN_STEP_SHIFT)
1313 
1314 /* Bitfield definition for register: DCDCM_DEBUG */
1315 /*
1316  * UPDATE_TIME (RW)
1317  *
1318  * DCDCM voltage change time in 24M clock cycles, default value is 1mS
1319  */
1320 #define PCFG_DCDCM_DEBUG_UPDATE_TIME_MASK (0xFFFFFUL)
1321 #define PCFG_DCDCM_DEBUG_UPDATE_TIME_SHIFT (0U)
1322 #define PCFG_DCDCM_DEBUG_UPDATE_TIME_SET(x) (((uint32_t)(x) << PCFG_DCDCM_DEBUG_UPDATE_TIME_SHIFT) & PCFG_DCDCM_DEBUG_UPDATE_TIME_MASK)
1323 #define PCFG_DCDCM_DEBUG_UPDATE_TIME_GET(x) (((uint32_t)(x) & PCFG_DCDCM_DEBUG_UPDATE_TIME_MASK) >> PCFG_DCDCM_DEBUG_UPDATE_TIME_SHIFT)
1324 
1325 /* Bitfield definition for register: DCDCM_START_TIME */
1326 /*
1327  * START_TIME (RW)
1328  *
1329  * Start delay for DCDCM to turn on, in 24M clock cycles, default value is 3mS
1330  */
1331 #define PCFG_DCDCM_START_TIME_START_TIME_MASK (0xFFFFFUL)
1332 #define PCFG_DCDCM_START_TIME_START_TIME_SHIFT (0U)
1333 #define PCFG_DCDCM_START_TIME_START_TIME_SET(x) (((uint32_t)(x) << PCFG_DCDCM_START_TIME_START_TIME_SHIFT) & PCFG_DCDCM_START_TIME_START_TIME_MASK)
1334 #define PCFG_DCDCM_START_TIME_START_TIME_GET(x) (((uint32_t)(x) & PCFG_DCDCM_START_TIME_START_TIME_MASK) >> PCFG_DCDCM_START_TIME_START_TIME_SHIFT)
1335 
1336 /* Bitfield definition for register: DCDCM_RESUME_TIME */
1337 /*
1338  * RESUME_TIME (RW)
1339  *
1340  * Resume delay for DCDCM to recover from low power mode, in 24M clock cycles, default value is 10uS
1341  */
1342 #define PCFG_DCDCM_RESUME_TIME_RESUME_TIME_MASK (0xFFFFFUL)
1343 #define PCFG_DCDCM_RESUME_TIME_RESUME_TIME_SHIFT (0U)
1344 #define PCFG_DCDCM_RESUME_TIME_RESUME_TIME_SET(x) (((uint32_t)(x) << PCFG_DCDCM_RESUME_TIME_RESUME_TIME_SHIFT) & PCFG_DCDCM_RESUME_TIME_RESUME_TIME_MASK)
1345 #define PCFG_DCDCM_RESUME_TIME_RESUME_TIME_GET(x) (((uint32_t)(x) & PCFG_DCDCM_RESUME_TIME_RESUME_TIME_MASK) >> PCFG_DCDCM_RESUME_TIME_RESUME_TIME_SHIFT)
1346 
1347 /* Bitfield definition for register: DCDCM_POWER_CONFIG */
1348 /*
1349  * RETENTION (RW)
1350  *
1351  * DCDCM enter standby mode, which will reduce voltage for memory content retention
1352  * 0: Shutdown DCDCM
1353  * 1: reduce DCDC voltage
1354  */
1355 #define PCFG_DCDCM_POWER_CONFIG_RETENTION_MASK (0x10000UL)
1356 #define PCFG_DCDCM_POWER_CONFIG_RETENTION_SHIFT (16U)
1357 #define PCFG_DCDCM_POWER_CONFIG_RETENTION_SET(x) (((uint32_t)(x) << PCFG_DCDCM_POWER_CONFIG_RETENTION_SHIFT) & PCFG_DCDCM_POWER_CONFIG_RETENTION_MASK)
1358 #define PCFG_DCDCM_POWER_CONFIG_RETENTION_GET(x) (((uint32_t)(x) & PCFG_DCDCM_POWER_CONFIG_RETENTION_MASK) >> PCFG_DCDCM_POWER_CONFIG_RETENTION_SHIFT)
1359 
1360 
1361 
1362 
1363 #endif /* HPM_PCFG_H */
Definition: hpm_pcfg_regs.h:12