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: SOC 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 } PCFG_Type;
38 
39 
40 /* Bitfield definition for register: BANDGAP */
41 /*
42  * VBG_TRIMMED (RW)
43  *
44  * 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
45  * 0: bandgap is not trimmed
46  * 1: bandgap is trimmed
47  */
48 #define PCFG_BANDGAP_VBG_TRIMMED_MASK (0x80000000UL)
49 #define PCFG_BANDGAP_VBG_TRIMMED_SHIFT (31U)
50 #define PCFG_BANDGAP_VBG_TRIMMED_SET(x) (((uint32_t)(x) << PCFG_BANDGAP_VBG_TRIMMED_SHIFT) & PCFG_BANDGAP_VBG_TRIMMED_MASK)
51 #define PCFG_BANDGAP_VBG_TRIMMED_GET(x) (((uint32_t)(x) & PCFG_BANDGAP_VBG_TRIMMED_MASK) >> PCFG_BANDGAP_VBG_TRIMMED_SHIFT)
52 
53 /*
54  * VBG_1P0_TRIM (RW)
55  *
56  * Banggap 1.0V output trim value
57  */
58 #define PCFG_BANDGAP_VBG_1P0_TRIM_MASK (0x1F0000UL)
59 #define PCFG_BANDGAP_VBG_1P0_TRIM_SHIFT (16U)
60 #define PCFG_BANDGAP_VBG_1P0_TRIM_SET(x) (((uint32_t)(x) << PCFG_BANDGAP_VBG_1P0_TRIM_SHIFT) & PCFG_BANDGAP_VBG_1P0_TRIM_MASK)
61 #define PCFG_BANDGAP_VBG_1P0_TRIM_GET(x) (((uint32_t)(x) & PCFG_BANDGAP_VBG_1P0_TRIM_MASK) >> PCFG_BANDGAP_VBG_1P0_TRIM_SHIFT)
62 
63 /*
64  * VBG_P65_TRIM (RW)
65  *
66  * Banggap 1.0V output trim value
67  */
68 #define PCFG_BANDGAP_VBG_P65_TRIM_MASK (0x1F00U)
69 #define PCFG_BANDGAP_VBG_P65_TRIM_SHIFT (8U)
70 #define PCFG_BANDGAP_VBG_P65_TRIM_SET(x) (((uint32_t)(x) << PCFG_BANDGAP_VBG_P65_TRIM_SHIFT) & PCFG_BANDGAP_VBG_P65_TRIM_MASK)
71 #define PCFG_BANDGAP_VBG_P65_TRIM_GET(x) (((uint32_t)(x) & PCFG_BANDGAP_VBG_P65_TRIM_MASK) >> PCFG_BANDGAP_VBG_P65_TRIM_SHIFT)
72 
73 /*
74  * VBG_P50_TRIM (RW)
75  *
76  * Banggap 1.0V output trim value
77  */
78 #define PCFG_BANDGAP_VBG_P50_TRIM_MASK (0x1FU)
79 #define PCFG_BANDGAP_VBG_P50_TRIM_SHIFT (0U)
80 #define PCFG_BANDGAP_VBG_P50_TRIM_SET(x) (((uint32_t)(x) << PCFG_BANDGAP_VBG_P50_TRIM_SHIFT) & PCFG_BANDGAP_VBG_P50_TRIM_MASK)
81 #define PCFG_BANDGAP_VBG_P50_TRIM_GET(x) (((uint32_t)(x) & PCFG_BANDGAP_VBG_P50_TRIM_MASK) >> PCFG_BANDGAP_VBG_P50_TRIM_SHIFT)
82 
83 /* Bitfield definition for register: LDO1P1 */
84 /*
85  * ENABLE (RW)
86  *
87  * LDO enable
88  * 0: turn off LDO
89  * 1: turn on LDO
90  */
91 #define PCFG_LDO1P1_ENABLE_MASK (0x10000UL)
92 #define PCFG_LDO1P1_ENABLE_SHIFT (16U)
93 #define PCFG_LDO1P1_ENABLE_SET(x) (((uint32_t)(x) << PCFG_LDO1P1_ENABLE_SHIFT) & PCFG_LDO1P1_ENABLE_MASK)
94 #define PCFG_LDO1P1_ENABLE_GET(x) (((uint32_t)(x) & PCFG_LDO1P1_ENABLE_MASK) >> PCFG_LDO1P1_ENABLE_SHIFT)
95 
96 /*
97  * VOLT (RW)
98  *
99  * 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.
100  * 700: 700mV
101  * 720: 720mV
102  * . . .
103  * 1320:1320mV
104  */
105 #define PCFG_LDO1P1_VOLT_MASK (0xFFFU)
106 #define PCFG_LDO1P1_VOLT_SHIFT (0U)
107 #define PCFG_LDO1P1_VOLT_SET(x) (((uint32_t)(x) << PCFG_LDO1P1_VOLT_SHIFT) & PCFG_LDO1P1_VOLT_MASK)
108 #define PCFG_LDO1P1_VOLT_GET(x) (((uint32_t)(x) & PCFG_LDO1P1_VOLT_MASK) >> PCFG_LDO1P1_VOLT_SHIFT)
109 
110 /* Bitfield definition for register: LDO2P5 */
111 /*
112  * READY (RO)
113  *
114  * Ready flag, will set 1ms after enabled or voltage change
115  * 0: LDO is not ready for use
116  * 1: LDO is ready
117  */
118 #define PCFG_LDO2P5_READY_MASK (0x10000000UL)
119 #define PCFG_LDO2P5_READY_SHIFT (28U)
120 #define PCFG_LDO2P5_READY_GET(x) (((uint32_t)(x) & PCFG_LDO2P5_READY_MASK) >> PCFG_LDO2P5_READY_SHIFT)
121 
122 /*
123  * ENABLE (RW)
124  *
125  * LDO enable
126  * 0: turn off LDO
127  * 1: turn on LDO
128  */
129 #define PCFG_LDO2P5_ENABLE_MASK (0x10000UL)
130 #define PCFG_LDO2P5_ENABLE_SHIFT (16U)
131 #define PCFG_LDO2P5_ENABLE_SET(x) (((uint32_t)(x) << PCFG_LDO2P5_ENABLE_SHIFT) & PCFG_LDO2P5_ENABLE_MASK)
132 #define PCFG_LDO2P5_ENABLE_GET(x) (((uint32_t)(x) & PCFG_LDO2P5_ENABLE_MASK) >> PCFG_LDO2P5_ENABLE_SHIFT)
133 
134 /*
135  * VOLT (RW)
136  *
137  * 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.
138  * 2125: 2125mV
139  * 2150: 2150mV
140  * . . .
141  * 2900:2900mV
142  */
143 #define PCFG_LDO2P5_VOLT_MASK (0xFFFU)
144 #define PCFG_LDO2P5_VOLT_SHIFT (0U)
145 #define PCFG_LDO2P5_VOLT_SET(x) (((uint32_t)(x) << PCFG_LDO2P5_VOLT_SHIFT) & PCFG_LDO2P5_VOLT_MASK)
146 #define PCFG_LDO2P5_VOLT_GET(x) (((uint32_t)(x) & PCFG_LDO2P5_VOLT_MASK) >> PCFG_LDO2P5_VOLT_SHIFT)
147 
148 /* Bitfield definition for register: DCDC_MODE */
149 /*
150  * READY (RO)
151  *
152  * Ready flag
153  * 0: DCDC is applying new change
154  * 1: DCDC is ready
155  */
156 #define PCFG_DCDC_MODE_READY_MASK (0x10000000UL)
157 #define PCFG_DCDC_MODE_READY_SHIFT (28U)
158 #define PCFG_DCDC_MODE_READY_GET(x) (((uint32_t)(x) & PCFG_DCDC_MODE_READY_MASK) >> PCFG_DCDC_MODE_READY_SHIFT)
159 
160 /*
161  * MODE (RW)
162  *
163  * DCDC work mode
164  * XX0: trun off
165  * 001: basic mode
166  * 011: generic mode
167  * 101: automatic mode
168  * 111: expert mode
169  */
170 #define PCFG_DCDC_MODE_MODE_MASK (0x70000UL)
171 #define PCFG_DCDC_MODE_MODE_SHIFT (16U)
172 #define PCFG_DCDC_MODE_MODE_SET(x) (((uint32_t)(x) << PCFG_DCDC_MODE_MODE_SHIFT) & PCFG_DCDC_MODE_MODE_MASK)
173 #define PCFG_DCDC_MODE_MODE_GET(x) (((uint32_t)(x) & PCFG_DCDC_MODE_MODE_MASK) >> PCFG_DCDC_MODE_MODE_SHIFT)
174 
175 /*
176  * VOLT (RW)
177  *
178  * 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.
179  * 600: 600mV
180  * 625: 625mV
181  * . . .
182  * 1375:1375mV
183  */
184 #define PCFG_DCDC_MODE_VOLT_MASK (0xFFFU)
185 #define PCFG_DCDC_MODE_VOLT_SHIFT (0U)
186 #define PCFG_DCDC_MODE_VOLT_SET(x) (((uint32_t)(x) << PCFG_DCDC_MODE_VOLT_SHIFT) & PCFG_DCDC_MODE_VOLT_MASK)
187 #define PCFG_DCDC_MODE_VOLT_GET(x) (((uint32_t)(x) & PCFG_DCDC_MODE_VOLT_MASK) >> PCFG_DCDC_MODE_VOLT_SHIFT)
188 
189 /* Bitfield definition for register: DCDC_LPMODE */
190 /*
191  * STBY_VOLT (RW)
192  *
193  * 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.
194  * 600: 600mV
195  * 625: 625mV
196  * . . .
197  * 1375:1375mV
198  */
199 #define PCFG_DCDC_LPMODE_STBY_VOLT_MASK (0xFFFU)
200 #define PCFG_DCDC_LPMODE_STBY_VOLT_SHIFT (0U)
201 #define PCFG_DCDC_LPMODE_STBY_VOLT_SET(x) (((uint32_t)(x) << PCFG_DCDC_LPMODE_STBY_VOLT_SHIFT) & PCFG_DCDC_LPMODE_STBY_VOLT_MASK)
202 #define PCFG_DCDC_LPMODE_STBY_VOLT_GET(x) (((uint32_t)(x) & PCFG_DCDC_LPMODE_STBY_VOLT_MASK) >> PCFG_DCDC_LPMODE_STBY_VOLT_SHIFT)
203 
204 /* Bitfield definition for register: DCDC_PROT */
205 /*
206  * ILIMIT_LP (RW)
207  *
208  * over current setting for low power mode
209  * 0:250mA
210  * 1:200mA
211  */
212 #define PCFG_DCDC_PROT_ILIMIT_LP_MASK (0x10000000UL)
213 #define PCFG_DCDC_PROT_ILIMIT_LP_SHIFT (28U)
214 #define PCFG_DCDC_PROT_ILIMIT_LP_SET(x) (((uint32_t)(x) << PCFG_DCDC_PROT_ILIMIT_LP_SHIFT) & PCFG_DCDC_PROT_ILIMIT_LP_MASK)
215 #define PCFG_DCDC_PROT_ILIMIT_LP_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_ILIMIT_LP_MASK) >> PCFG_DCDC_PROT_ILIMIT_LP_SHIFT)
216 
217 /*
218  * OVERLOAD_LP (RO)
219  *
220  * over current in low power mode
221  * 0: current is below setting
222  * 1: overcurrent happened in low power mode
223  */
224 #define PCFG_DCDC_PROT_OVERLOAD_LP_MASK (0x1000000UL)
225 #define PCFG_DCDC_PROT_OVERLOAD_LP_SHIFT (24U)
226 #define PCFG_DCDC_PROT_OVERLOAD_LP_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_OVERLOAD_LP_MASK) >> PCFG_DCDC_PROT_OVERLOAD_LP_SHIFT)
227 
228 /*
229  * POWER_LOSS_FLAG (RO)
230  *
231  * power loss
232  * 0: input power is good
233  * 1: input power is too low
234  */
235 #define PCFG_DCDC_PROT_POWER_LOSS_FLAG_MASK (0x10000UL)
236 #define PCFG_DCDC_PROT_POWER_LOSS_FLAG_SHIFT (16U)
237 #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)
238 
239 /*
240  * DISABLE_OVERVOLTAGE (RW)
241  *
242  * ouput over voltage protection
243  * 0: protection enabled, DCDC will shut down is output voltage is unexpected high
244  * 1: protection disabled, DCDC continue to adjust output voltage
245  */
246 #define PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_MASK (0x8000U)
247 #define PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_SHIFT (15U)
248 #define PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_SET(x) (((uint32_t)(x) << PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_SHIFT) & PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_MASK)
249 #define PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_MASK) >> PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_SHIFT)
250 
251 /*
252  * OVERVOLT_FLAG (RO)
253  *
254  * output over voltage flag
255  * 0: output is normal
256  * 1: output is unexpected high
257  */
258 #define PCFG_DCDC_PROT_OVERVOLT_FLAG_MASK (0x100U)
259 #define PCFG_DCDC_PROT_OVERVOLT_FLAG_SHIFT (8U)
260 #define PCFG_DCDC_PROT_OVERVOLT_FLAG_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_OVERVOLT_FLAG_MASK) >> PCFG_DCDC_PROT_OVERVOLT_FLAG_SHIFT)
261 
262 /*
263  * DISABLE_SHORT (RW)
264  *
265  * disable output short circuit protection
266  * 0: short circuits protection enabled, DCDC shut down if short circuit on ouput detected
267  * 1: short circuit protection disabled
268  */
269 #define PCFG_DCDC_PROT_DISABLE_SHORT_MASK (0x80U)
270 #define PCFG_DCDC_PROT_DISABLE_SHORT_SHIFT (7U)
271 #define PCFG_DCDC_PROT_DISABLE_SHORT_SET(x) (((uint32_t)(x) << PCFG_DCDC_PROT_DISABLE_SHORT_SHIFT) & PCFG_DCDC_PROT_DISABLE_SHORT_MASK)
272 #define PCFG_DCDC_PROT_DISABLE_SHORT_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_DISABLE_SHORT_MASK) >> PCFG_DCDC_PROT_DISABLE_SHORT_SHIFT)
273 
274 /*
275  * SHORT_CURRENT (RW)
276  *
277  * short circuit current setting
278  * 0: 2.0A,
279  * 1: 1.3A
280  */
281 #define PCFG_DCDC_PROT_SHORT_CURRENT_MASK (0x10U)
282 #define PCFG_DCDC_PROT_SHORT_CURRENT_SHIFT (4U)
283 #define PCFG_DCDC_PROT_SHORT_CURRENT_SET(x) (((uint32_t)(x) << PCFG_DCDC_PROT_SHORT_CURRENT_SHIFT) & PCFG_DCDC_PROT_SHORT_CURRENT_MASK)
284 #define PCFG_DCDC_PROT_SHORT_CURRENT_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_SHORT_CURRENT_MASK) >> PCFG_DCDC_PROT_SHORT_CURRENT_SHIFT)
285 
286 /*
287  * SHORT_FLAG (RO)
288  *
289  * short circuit flag
290  * 0: current is within limit
291  * 1: short circuits detected
292  */
293 #define PCFG_DCDC_PROT_SHORT_FLAG_MASK (0x1U)
294 #define PCFG_DCDC_PROT_SHORT_FLAG_SHIFT (0U)
295 #define PCFG_DCDC_PROT_SHORT_FLAG_GET(x) (((uint32_t)(x) & PCFG_DCDC_PROT_SHORT_FLAG_MASK) >> PCFG_DCDC_PROT_SHORT_FLAG_SHIFT)
296 
297 /* Bitfield definition for register: DCDC_CURRENT */
298 /*
299  * ESTI_EN (RW)
300  *
301  * enable current measure
302  */
303 #define PCFG_DCDC_CURRENT_ESTI_EN_MASK (0x8000U)
304 #define PCFG_DCDC_CURRENT_ESTI_EN_SHIFT (15U)
305 #define PCFG_DCDC_CURRENT_ESTI_EN_SET(x) (((uint32_t)(x) << PCFG_DCDC_CURRENT_ESTI_EN_SHIFT) & PCFG_DCDC_CURRENT_ESTI_EN_MASK)
306 #define PCFG_DCDC_CURRENT_ESTI_EN_GET(x) (((uint32_t)(x) & PCFG_DCDC_CURRENT_ESTI_EN_MASK) >> PCFG_DCDC_CURRENT_ESTI_EN_SHIFT)
307 
308 /*
309  * VALID (RO)
310  *
311  * Current level valid
312  * 0: data is invalid
313  * 1: data is valid
314  */
315 #define PCFG_DCDC_CURRENT_VALID_MASK (0x100U)
316 #define PCFG_DCDC_CURRENT_VALID_SHIFT (8U)
317 #define PCFG_DCDC_CURRENT_VALID_GET(x) (((uint32_t)(x) & PCFG_DCDC_CURRENT_VALID_MASK) >> PCFG_DCDC_CURRENT_VALID_SHIFT)
318 
319 /*
320  * LEVEL (RO)
321  *
322  * DCDC current level, current level is num * 50mA
323  */
324 #define PCFG_DCDC_CURRENT_LEVEL_MASK (0x1FU)
325 #define PCFG_DCDC_CURRENT_LEVEL_SHIFT (0U)
326 #define PCFG_DCDC_CURRENT_LEVEL_GET(x) (((uint32_t)(x) & PCFG_DCDC_CURRENT_LEVEL_MASK) >> PCFG_DCDC_CURRENT_LEVEL_SHIFT)
327 
328 /* Bitfield definition for register: DCDC_ADVMODE */
329 /*
330  * EN_RCSCALE (RW)
331  *
332  * Enable RC scale
333  */
334 #define PCFG_DCDC_ADVMODE_EN_RCSCALE_MASK (0x7000000UL)
335 #define PCFG_DCDC_ADVMODE_EN_RCSCALE_SHIFT (24U)
336 #define PCFG_DCDC_ADVMODE_EN_RCSCALE_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_RCSCALE_SHIFT) & PCFG_DCDC_ADVMODE_EN_RCSCALE_MASK)
337 #define PCFG_DCDC_ADVMODE_EN_RCSCALE_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_RCSCALE_MASK) >> PCFG_DCDC_ADVMODE_EN_RCSCALE_SHIFT)
338 
339 /*
340  * DC_C (RW)
341  *
342  * Loop C number
343  */
344 #define PCFG_DCDC_ADVMODE_DC_C_MASK (0x300000UL)
345 #define PCFG_DCDC_ADVMODE_DC_C_SHIFT (20U)
346 #define PCFG_DCDC_ADVMODE_DC_C_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_DC_C_SHIFT) & PCFG_DCDC_ADVMODE_DC_C_MASK)
347 #define PCFG_DCDC_ADVMODE_DC_C_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_DC_C_MASK) >> PCFG_DCDC_ADVMODE_DC_C_SHIFT)
348 
349 /*
350  * DC_R (RW)
351  *
352  * Loop R number
353  */
354 #define PCFG_DCDC_ADVMODE_DC_R_MASK (0xF0000UL)
355 #define PCFG_DCDC_ADVMODE_DC_R_SHIFT (16U)
356 #define PCFG_DCDC_ADVMODE_DC_R_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_DC_R_SHIFT) & PCFG_DCDC_ADVMODE_DC_R_MASK)
357 #define PCFG_DCDC_ADVMODE_DC_R_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_DC_R_MASK) >> PCFG_DCDC_ADVMODE_DC_R_SHIFT)
358 
359 /*
360  * EN_FF_DET (RW)
361  *
362  * enable feed forward detect
363  * 0: feed forward detect is disabled
364  * 1: feed forward detect is enabled
365  */
366 #define PCFG_DCDC_ADVMODE_EN_FF_DET_MASK (0x40U)
367 #define PCFG_DCDC_ADVMODE_EN_FF_DET_SHIFT (6U)
368 #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)
369 #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)
370 
371 /*
372  * EN_FF_LOOP (RW)
373  *
374  * enable feed forward loop
375  * 0: feed forward loop is disabled
376  * 1: feed forward loop is enabled
377  */
378 #define PCFG_DCDC_ADVMODE_EN_FF_LOOP_MASK (0x20U)
379 #define PCFG_DCDC_ADVMODE_EN_FF_LOOP_SHIFT (5U)
380 #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)
381 #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)
382 
383 /*
384  * EN_AUTOLP (RW)
385  *
386  * enable auto enter low power mode
387  * 0: do not enter low power mode
388  * 1: enter low power mode if current is detected low
389  */
390 #define PCFG_DCDC_ADVMODE_EN_AUTOLP_MASK (0x10U)
391 #define PCFG_DCDC_ADVMODE_EN_AUTOLP_SHIFT (4U)
392 #define PCFG_DCDC_ADVMODE_EN_AUTOLP_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_AUTOLP_SHIFT) & PCFG_DCDC_ADVMODE_EN_AUTOLP_MASK)
393 #define PCFG_DCDC_ADVMODE_EN_AUTOLP_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_AUTOLP_MASK) >> PCFG_DCDC_ADVMODE_EN_AUTOLP_SHIFT)
394 
395 /*
396  * EN_DCM_EXIT (RW)
397  *
398  * avoid over voltage
399  * 0: stay in DCM mode when voltage excess
400  * 1: change to CCM mode when voltage excess
401  */
402 #define PCFG_DCDC_ADVMODE_EN_DCM_EXIT_MASK (0x8U)
403 #define PCFG_DCDC_ADVMODE_EN_DCM_EXIT_SHIFT (3U)
404 #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)
405 #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)
406 
407 /*
408  * EN_SKIP (RW)
409  *
410  * enable skip on narrow pulse
411  * 0: do not skip narrow pulse
412  * 1: skip narrow pulse
413  */
414 #define PCFG_DCDC_ADVMODE_EN_SKIP_MASK (0x4U)
415 #define PCFG_DCDC_ADVMODE_EN_SKIP_SHIFT (2U)
416 #define PCFG_DCDC_ADVMODE_EN_SKIP_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_SKIP_SHIFT) & PCFG_DCDC_ADVMODE_EN_SKIP_MASK)
417 #define PCFG_DCDC_ADVMODE_EN_SKIP_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_SKIP_MASK) >> PCFG_DCDC_ADVMODE_EN_SKIP_SHIFT)
418 
419 /*
420  * EN_IDLE (RW)
421  *
422  * enable skip when voltage is higher than threshold
423  * 0: do not skip
424  * 1: skip if voltage is excess
425  */
426 #define PCFG_DCDC_ADVMODE_EN_IDLE_MASK (0x2U)
427 #define PCFG_DCDC_ADVMODE_EN_IDLE_SHIFT (1U)
428 #define PCFG_DCDC_ADVMODE_EN_IDLE_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_IDLE_SHIFT) & PCFG_DCDC_ADVMODE_EN_IDLE_MASK)
429 #define PCFG_DCDC_ADVMODE_EN_IDLE_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_IDLE_MASK) >> PCFG_DCDC_ADVMODE_EN_IDLE_SHIFT)
430 
431 /*
432  * EN_DCM (RW)
433  *
434  * DCM mode
435  * 0: CCM mode
436  * 1: DCM mode
437  */
438 #define PCFG_DCDC_ADVMODE_EN_DCM_MASK (0x1U)
439 #define PCFG_DCDC_ADVMODE_EN_DCM_SHIFT (0U)
440 #define PCFG_DCDC_ADVMODE_EN_DCM_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVMODE_EN_DCM_SHIFT) & PCFG_DCDC_ADVMODE_EN_DCM_MASK)
441 #define PCFG_DCDC_ADVMODE_EN_DCM_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVMODE_EN_DCM_MASK) >> PCFG_DCDC_ADVMODE_EN_DCM_SHIFT)
442 
443 /* Bitfield definition for register: DCDC_ADVPARAM */
444 /*
445  * MIN_DUT (RW)
446  *
447  * minimum duty cycle
448  */
449 #define PCFG_DCDC_ADVPARAM_MIN_DUT_MASK (0x7F00U)
450 #define PCFG_DCDC_ADVPARAM_MIN_DUT_SHIFT (8U)
451 #define PCFG_DCDC_ADVPARAM_MIN_DUT_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVPARAM_MIN_DUT_SHIFT) & PCFG_DCDC_ADVPARAM_MIN_DUT_MASK)
452 #define PCFG_DCDC_ADVPARAM_MIN_DUT_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVPARAM_MIN_DUT_MASK) >> PCFG_DCDC_ADVPARAM_MIN_DUT_SHIFT)
453 
454 /*
455  * MAX_DUT (RW)
456  *
457  * maximum duty cycle
458  */
459 #define PCFG_DCDC_ADVPARAM_MAX_DUT_MASK (0x7FU)
460 #define PCFG_DCDC_ADVPARAM_MAX_DUT_SHIFT (0U)
461 #define PCFG_DCDC_ADVPARAM_MAX_DUT_SET(x) (((uint32_t)(x) << PCFG_DCDC_ADVPARAM_MAX_DUT_SHIFT) & PCFG_DCDC_ADVPARAM_MAX_DUT_MASK)
462 #define PCFG_DCDC_ADVPARAM_MAX_DUT_GET(x) (((uint32_t)(x) & PCFG_DCDC_ADVPARAM_MAX_DUT_MASK) >> PCFG_DCDC_ADVPARAM_MAX_DUT_SHIFT)
463 
464 /* Bitfield definition for register: DCDC_MISC */
465 /*
466  * EN_HYST (RW)
467  *
468  * hysteres enable
469  */
470 #define PCFG_DCDC_MISC_EN_HYST_MASK (0x10000000UL)
471 #define PCFG_DCDC_MISC_EN_HYST_SHIFT (28U)
472 #define PCFG_DCDC_MISC_EN_HYST_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_EN_HYST_SHIFT) & PCFG_DCDC_MISC_EN_HYST_MASK)
473 #define PCFG_DCDC_MISC_EN_HYST_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_EN_HYST_MASK) >> PCFG_DCDC_MISC_EN_HYST_SHIFT)
474 
475 /*
476  * HYST_SIGN (RW)
477  *
478  * hysteres sign
479  */
480 #define PCFG_DCDC_MISC_HYST_SIGN_MASK (0x2000000UL)
481 #define PCFG_DCDC_MISC_HYST_SIGN_SHIFT (25U)
482 #define PCFG_DCDC_MISC_HYST_SIGN_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_HYST_SIGN_SHIFT) & PCFG_DCDC_MISC_HYST_SIGN_MASK)
483 #define PCFG_DCDC_MISC_HYST_SIGN_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_HYST_SIGN_MASK) >> PCFG_DCDC_MISC_HYST_SIGN_SHIFT)
484 
485 /*
486  * HYST_THRS (RW)
487  *
488  * hysteres threshold
489  */
490 #define PCFG_DCDC_MISC_HYST_THRS_MASK (0x1000000UL)
491 #define PCFG_DCDC_MISC_HYST_THRS_SHIFT (24U)
492 #define PCFG_DCDC_MISC_HYST_THRS_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_HYST_THRS_SHIFT) & PCFG_DCDC_MISC_HYST_THRS_MASK)
493 #define PCFG_DCDC_MISC_HYST_THRS_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_HYST_THRS_MASK) >> PCFG_DCDC_MISC_HYST_THRS_SHIFT)
494 
495 /*
496  * RC_SCALE (RW)
497  *
498  * Loop RC scale threshold
499  */
500 #define PCFG_DCDC_MISC_RC_SCALE_MASK (0x100000UL)
501 #define PCFG_DCDC_MISC_RC_SCALE_SHIFT (20U)
502 #define PCFG_DCDC_MISC_RC_SCALE_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_RC_SCALE_SHIFT) & PCFG_DCDC_MISC_RC_SCALE_MASK)
503 #define PCFG_DCDC_MISC_RC_SCALE_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_RC_SCALE_MASK) >> PCFG_DCDC_MISC_RC_SCALE_SHIFT)
504 
505 /*
506  * DC_FF (RW)
507  *
508  * Loop feed forward number
509  */
510 #define PCFG_DCDC_MISC_DC_FF_MASK (0x70000UL)
511 #define PCFG_DCDC_MISC_DC_FF_SHIFT (16U)
512 #define PCFG_DCDC_MISC_DC_FF_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_DC_FF_SHIFT) & PCFG_DCDC_MISC_DC_FF_MASK)
513 #define PCFG_DCDC_MISC_DC_FF_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_DC_FF_MASK) >> PCFG_DCDC_MISC_DC_FF_SHIFT)
514 
515 /*
516  * OL_THRE (RW)
517  *
518  * overload threshold in low power mode
519  */
520 #define PCFG_DCDC_MISC_OL_THRE_MASK (0x300U)
521 #define PCFG_DCDC_MISC_OL_THRE_SHIFT (8U)
522 #define PCFG_DCDC_MISC_OL_THRE_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_OL_THRE_SHIFT) & PCFG_DCDC_MISC_OL_THRE_MASK)
523 #define PCFG_DCDC_MISC_OL_THRE_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_OL_THRE_MASK) >> PCFG_DCDC_MISC_OL_THRE_SHIFT)
524 
525 /*
526  * OL_HYST (RW)
527  *
528  * voltage ripple threshold in low power mode
529  * 0: 12.5mV
530  * 1: 25mV
531  */
532 #define PCFG_DCDC_MISC_OL_HYST_MASK (0x10U)
533 #define PCFG_DCDC_MISC_OL_HYST_SHIFT (4U)
534 #define PCFG_DCDC_MISC_OL_HYST_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_OL_HYST_SHIFT) & PCFG_DCDC_MISC_OL_HYST_MASK)
535 #define PCFG_DCDC_MISC_OL_HYST_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_OL_HYST_MASK) >> PCFG_DCDC_MISC_OL_HYST_SHIFT)
536 
537 /*
538  * DELAY (RW)
539  *
540  * enable delay
541  * 0: delay disabled,
542  * 1: delay enabled
543  */
544 #define PCFG_DCDC_MISC_DELAY_MASK (0x4U)
545 #define PCFG_DCDC_MISC_DELAY_SHIFT (2U)
546 #define PCFG_DCDC_MISC_DELAY_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_DELAY_SHIFT) & PCFG_DCDC_MISC_DELAY_MASK)
547 #define PCFG_DCDC_MISC_DELAY_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_DELAY_MASK) >> PCFG_DCDC_MISC_DELAY_SHIFT)
548 
549 /*
550  * CLK_SEL (RW)
551  *
552  * clock selection
553  * 0: select DCDC internal oscillator
554  * 1: select RC24M oscillator
555  */
556 #define PCFG_DCDC_MISC_CLK_SEL_MASK (0x2U)
557 #define PCFG_DCDC_MISC_CLK_SEL_SHIFT (1U)
558 #define PCFG_DCDC_MISC_CLK_SEL_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_CLK_SEL_SHIFT) & PCFG_DCDC_MISC_CLK_SEL_MASK)
559 #define PCFG_DCDC_MISC_CLK_SEL_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_CLK_SEL_MASK) >> PCFG_DCDC_MISC_CLK_SEL_SHIFT)
560 
561 /*
562  * EN_STEP (RW)
563  *
564  * enable stepping in voltage change
565  * 0: stepping disabled,
566  * 1: steping enabled
567  */
568 #define PCFG_DCDC_MISC_EN_STEP_MASK (0x1U)
569 #define PCFG_DCDC_MISC_EN_STEP_SHIFT (0U)
570 #define PCFG_DCDC_MISC_EN_STEP_SET(x) (((uint32_t)(x) << PCFG_DCDC_MISC_EN_STEP_SHIFT) & PCFG_DCDC_MISC_EN_STEP_MASK)
571 #define PCFG_DCDC_MISC_EN_STEP_GET(x) (((uint32_t)(x) & PCFG_DCDC_MISC_EN_STEP_MASK) >> PCFG_DCDC_MISC_EN_STEP_SHIFT)
572 
573 /* Bitfield definition for register: DCDC_DEBUG */
574 /*
575  * UPDATE_TIME (RW)
576  *
577  * DCDC voltage change time in 24M clock cycles, default value is 1mS
578  */
579 #define PCFG_DCDC_DEBUG_UPDATE_TIME_MASK (0xFFFFFUL)
580 #define PCFG_DCDC_DEBUG_UPDATE_TIME_SHIFT (0U)
581 #define PCFG_DCDC_DEBUG_UPDATE_TIME_SET(x) (((uint32_t)(x) << PCFG_DCDC_DEBUG_UPDATE_TIME_SHIFT) & PCFG_DCDC_DEBUG_UPDATE_TIME_MASK)
582 #define PCFG_DCDC_DEBUG_UPDATE_TIME_GET(x) (((uint32_t)(x) & PCFG_DCDC_DEBUG_UPDATE_TIME_MASK) >> PCFG_DCDC_DEBUG_UPDATE_TIME_SHIFT)
583 
584 /* Bitfield definition for register: DCDC_START_TIME */
585 /*
586  * START_TIME (RW)
587  *
588  * Start delay for DCDC to turn on, in 24M clock cycles, default value is 3mS
589  */
590 #define PCFG_DCDC_START_TIME_START_TIME_MASK (0xFFFFFUL)
591 #define PCFG_DCDC_START_TIME_START_TIME_SHIFT (0U)
592 #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)
593 #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)
594 
595 /* Bitfield definition for register: DCDC_RESUME_TIME */
596 /*
597  * RESUME_TIME (RW)
598  *
599  * Resume delay for DCDC to recover from low power mode, in 24M clock cycles, default value is 1.5mS
600  */
601 #define PCFG_DCDC_RESUME_TIME_RESUME_TIME_MASK (0xFFFFFUL)
602 #define PCFG_DCDC_RESUME_TIME_RESUME_TIME_SHIFT (0U)
603 #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)
604 #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)
605 
606 /* Bitfield definition for register: POWER_TRAP */
607 /*
608  * TRIGGERED (RW)
609  *
610  * Low power trap status, thit bit will set when power related low power flow triggered, write 1 to clear this flag.
611  * 0: low power trap is not triggered
612  * 1: low power trap triggered
613  */
614 #define PCFG_POWER_TRAP_TRIGGERED_MASK (0x80000000UL)
615 #define PCFG_POWER_TRAP_TRIGGERED_SHIFT (31U)
616 #define PCFG_POWER_TRAP_TRIGGERED_SET(x) (((uint32_t)(x) << PCFG_POWER_TRAP_TRIGGERED_SHIFT) & PCFG_POWER_TRAP_TRIGGERED_MASK)
617 #define PCFG_POWER_TRAP_TRIGGERED_GET(x) (((uint32_t)(x) & PCFG_POWER_TRAP_TRIGGERED_MASK) >> PCFG_POWER_TRAP_TRIGGERED_SHIFT)
618 
619 /*
620  * RETENTION (RW)
621  *
622  * DCDC enter standby mode, which will reduce voltage for memory content retention
623  * 0: Shutdown DCDC
624  * 1: reduce DCDC voltage
625  */
626 #define PCFG_POWER_TRAP_RETENTION_MASK (0x10000UL)
627 #define PCFG_POWER_TRAP_RETENTION_SHIFT (16U)
628 #define PCFG_POWER_TRAP_RETENTION_SET(x) (((uint32_t)(x) << PCFG_POWER_TRAP_RETENTION_SHIFT) & PCFG_POWER_TRAP_RETENTION_MASK)
629 #define PCFG_POWER_TRAP_RETENTION_GET(x) (((uint32_t)(x) & PCFG_POWER_TRAP_RETENTION_MASK) >> PCFG_POWER_TRAP_RETENTION_SHIFT)
630 
631 /*
632  * TRAP (RW)
633  *
634  * 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
635  * 0: trap not enabled, pmic side low power function disabled
636  * 1: trap enabled, STOP operation leads to PMIC low power flow if SOC is not retentioned.
637  */
638 #define PCFG_POWER_TRAP_TRAP_MASK (0x1U)
639 #define PCFG_POWER_TRAP_TRAP_SHIFT (0U)
640 #define PCFG_POWER_TRAP_TRAP_SET(x) (((uint32_t)(x) << PCFG_POWER_TRAP_TRAP_SHIFT) & PCFG_POWER_TRAP_TRAP_MASK)
641 #define PCFG_POWER_TRAP_TRAP_GET(x) (((uint32_t)(x) & PCFG_POWER_TRAP_TRAP_MASK) >> PCFG_POWER_TRAP_TRAP_SHIFT)
642 
643 /* Bitfield definition for register: WAKE_CAUSE */
644 /*
645  * CAUSE (RW)
646  *
647  * wake up cause, each bit represents one wake up source, write 1 to clear the register bit
648  * 0: wake up source is not active during last wakeup
649  * 1: wake up source is active furing last wakeup
650  * bit 0: pmic_enable
651  * bit 7: UART interrupt
652  * bit 8: TMR interrupt
653  * bit 9: WDG interrupt
654  * bit10: GPIO in PMIC interrupt
655  * bit16: batt security interrupt
656  * bit17:batt gpio interrupt
657  * bit19:rtc interrupt
658  * bit31: pin wakeup
659  */
660 #define PCFG_WAKE_CAUSE_CAUSE_MASK (0xFFFFFFFFUL)
661 #define PCFG_WAKE_CAUSE_CAUSE_SHIFT (0U)
662 #define PCFG_WAKE_CAUSE_CAUSE_SET(x) (((uint32_t)(x) << PCFG_WAKE_CAUSE_CAUSE_SHIFT) & PCFG_WAKE_CAUSE_CAUSE_MASK)
663 #define PCFG_WAKE_CAUSE_CAUSE_GET(x) (((uint32_t)(x) & PCFG_WAKE_CAUSE_CAUSE_MASK) >> PCFG_WAKE_CAUSE_CAUSE_SHIFT)
664 
665 /* Bitfield definition for register: WAKE_MASK */
666 /*
667  * MASK (RW)
668  *
669  * mask for wake up sources, each bit represents one wakeup source
670  * 0: allow source to wake up system
671  * 1: disallow source to wakeup system
672  * bit 0: pmic_enable
673  * bit 7: UART interrupt
674  * bit 8: TMR interrupt
675  * bit 9: WDG interrupt
676  * bit10: GPIO in PMIC interrupt
677  * bit16: batt security interrupt
678  * bit17:batt gpio interrupt
679  * bit19:rtc interrupt
680  * bit31: pin wakeup
681  */
682 #define PCFG_WAKE_MASK_MASK_MASK (0xFFFFFFFFUL)
683 #define PCFG_WAKE_MASK_MASK_SHIFT (0U)
684 #define PCFG_WAKE_MASK_MASK_SET(x) (((uint32_t)(x) << PCFG_WAKE_MASK_MASK_SHIFT) & PCFG_WAKE_MASK_MASK_MASK)
685 #define PCFG_WAKE_MASK_MASK_GET(x) (((uint32_t)(x) & PCFG_WAKE_MASK_MASK_MASK) >> PCFG_WAKE_MASK_MASK_SHIFT)
686 
687 /* Bitfield definition for register: SCG_CTRL */
688 /*
689  * SCG (RW)
690  *
691  * control whether clock being gated during PMIC low power flow, 2 bits for each peripheral
692  * 00,01: reserved
693  * 10: clock is always off
694  * 11: clock is always on
695  * bit6-7:gpio
696  * bit8-9:ioc
697  * bit10-11: timer
698  * bit12-13:wdog
699  * bit14-15:uart
700  */
701 #define PCFG_SCG_CTRL_SCG_MASK (0xFFFFFFFFUL)
702 #define PCFG_SCG_CTRL_SCG_SHIFT (0U)
703 #define PCFG_SCG_CTRL_SCG_SET(x) (((uint32_t)(x) << PCFG_SCG_CTRL_SCG_SHIFT) & PCFG_SCG_CTRL_SCG_MASK)
704 #define PCFG_SCG_CTRL_SCG_GET(x) (((uint32_t)(x) & PCFG_SCG_CTRL_SCG_MASK) >> PCFG_SCG_CTRL_SCG_SHIFT)
705 
706 /* Bitfield definition for register: RC24M */
707 /*
708  * RC_TRIMMED (RW)
709  *
710  * 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
711  * 0: RC is not trimmed
712  * 1: RC is trimmed
713  */
714 #define PCFG_RC24M_RC_TRIMMED_MASK (0x80000000UL)
715 #define PCFG_RC24M_RC_TRIMMED_SHIFT (31U)
716 #define PCFG_RC24M_RC_TRIMMED_SET(x) (((uint32_t)(x) << PCFG_RC24M_RC_TRIMMED_SHIFT) & PCFG_RC24M_RC_TRIMMED_MASK)
717 #define PCFG_RC24M_RC_TRIMMED_GET(x) (((uint32_t)(x) & PCFG_RC24M_RC_TRIMMED_MASK) >> PCFG_RC24M_RC_TRIMMED_SHIFT)
718 
719 /*
720  * TRIM_C (RW)
721  *
722  * Coarse trim for RC24M, bigger value means faster
723  */
724 #define PCFG_RC24M_TRIM_C_MASK (0x700U)
725 #define PCFG_RC24M_TRIM_C_SHIFT (8U)
726 #define PCFG_RC24M_TRIM_C_SET(x) (((uint32_t)(x) << PCFG_RC24M_TRIM_C_SHIFT) & PCFG_RC24M_TRIM_C_MASK)
727 #define PCFG_RC24M_TRIM_C_GET(x) (((uint32_t)(x) & PCFG_RC24M_TRIM_C_MASK) >> PCFG_RC24M_TRIM_C_SHIFT)
728 
729 /*
730  * TRIM_F (RW)
731  *
732  * Fine trim for RC24M, bigger value means faster
733  */
734 #define PCFG_RC24M_TRIM_F_MASK (0x1FU)
735 #define PCFG_RC24M_TRIM_F_SHIFT (0U)
736 #define PCFG_RC24M_TRIM_F_SET(x) (((uint32_t)(x) << PCFG_RC24M_TRIM_F_SHIFT) & PCFG_RC24M_TRIM_F_MASK)
737 #define PCFG_RC24M_TRIM_F_GET(x) (((uint32_t)(x) & PCFG_RC24M_TRIM_F_MASK) >> PCFG_RC24M_TRIM_F_SHIFT)
738 
739 /* Bitfield definition for register: RC24M_TRACK */
740 /*
741  * SEL24M (RW)
742  *
743  * Select track reference
744  * 0: select 32K as reference
745  * 1: select 24M XTAL as reference
746  */
747 #define PCFG_RC24M_TRACK_SEL24M_MASK (0x10000UL)
748 #define PCFG_RC24M_TRACK_SEL24M_SHIFT (16U)
749 #define PCFG_RC24M_TRACK_SEL24M_SET(x) (((uint32_t)(x) << PCFG_RC24M_TRACK_SEL24M_SHIFT) & PCFG_RC24M_TRACK_SEL24M_MASK)
750 #define PCFG_RC24M_TRACK_SEL24M_GET(x) (((uint32_t)(x) & PCFG_RC24M_TRACK_SEL24M_MASK) >> PCFG_RC24M_TRACK_SEL24M_SHIFT)
751 
752 /*
753  * RETURN (RW)
754  *
755  * Retrun default value when XTAL loss
756  * 0: remain last tracking value
757  * 1: switch to default value
758  */
759 #define PCFG_RC24M_TRACK_RETURN_MASK (0x10U)
760 #define PCFG_RC24M_TRACK_RETURN_SHIFT (4U)
761 #define PCFG_RC24M_TRACK_RETURN_SET(x) (((uint32_t)(x) << PCFG_RC24M_TRACK_RETURN_SHIFT) & PCFG_RC24M_TRACK_RETURN_MASK)
762 #define PCFG_RC24M_TRACK_RETURN_GET(x) (((uint32_t)(x) & PCFG_RC24M_TRACK_RETURN_MASK) >> PCFG_RC24M_TRACK_RETURN_SHIFT)
763 
764 /*
765  * TRACK (RW)
766  *
767  * track mode
768  * 0: RC24M free running
769  * 1: track RC24M to external XTAL
770  */
771 #define PCFG_RC24M_TRACK_TRACK_MASK (0x1U)
772 #define PCFG_RC24M_TRACK_TRACK_SHIFT (0U)
773 #define PCFG_RC24M_TRACK_TRACK_SET(x) (((uint32_t)(x) << PCFG_RC24M_TRACK_TRACK_SHIFT) & PCFG_RC24M_TRACK_TRACK_MASK)
774 #define PCFG_RC24M_TRACK_TRACK_GET(x) (((uint32_t)(x) & PCFG_RC24M_TRACK_TRACK_MASK) >> PCFG_RC24M_TRACK_TRACK_SHIFT)
775 
776 /* Bitfield definition for register: TRACK_TARGET */
777 /*
778  * PRE_DIV (RW)
779  *
780  * Divider for reference source
781  */
782 #define PCFG_TRACK_TARGET_PRE_DIV_MASK (0xFFFF0000UL)
783 #define PCFG_TRACK_TARGET_PRE_DIV_SHIFT (16U)
784 #define PCFG_TRACK_TARGET_PRE_DIV_SET(x) (((uint32_t)(x) << PCFG_TRACK_TARGET_PRE_DIV_SHIFT) & PCFG_TRACK_TARGET_PRE_DIV_MASK)
785 #define PCFG_TRACK_TARGET_PRE_DIV_GET(x) (((uint32_t)(x) & PCFG_TRACK_TARGET_PRE_DIV_MASK) >> PCFG_TRACK_TARGET_PRE_DIV_SHIFT)
786 
787 /*
788  * TARGET (RW)
789  *
790  * Target frequency multiplier of divided source
791  */
792 #define PCFG_TRACK_TARGET_TARGET_MASK (0xFFFFU)
793 #define PCFG_TRACK_TARGET_TARGET_SHIFT (0U)
794 #define PCFG_TRACK_TARGET_TARGET_SET(x) (((uint32_t)(x) << PCFG_TRACK_TARGET_TARGET_SHIFT) & PCFG_TRACK_TARGET_TARGET_MASK)
795 #define PCFG_TRACK_TARGET_TARGET_GET(x) (((uint32_t)(x) & PCFG_TRACK_TARGET_TARGET_MASK) >> PCFG_TRACK_TARGET_TARGET_SHIFT)
796 
797 /* Bitfield definition for register: STATUS */
798 /*
799  * SEL32K (RO)
800  *
801  * track is using XTAL32K
802  * 0: track is not using XTAL32K
803  * 1: track is using XTAL32K
804  */
805 #define PCFG_STATUS_SEL32K_MASK (0x100000UL)
806 #define PCFG_STATUS_SEL32K_SHIFT (20U)
807 #define PCFG_STATUS_SEL32K_GET(x) (((uint32_t)(x) & PCFG_STATUS_SEL32K_MASK) >> PCFG_STATUS_SEL32K_SHIFT)
808 
809 /*
810  * SEL24M (RO)
811  *
812  * track is using XTAL24M
813  * 0: track is not using XTAL24M
814  * 1: track is using XTAL24M
815  */
816 #define PCFG_STATUS_SEL24M_MASK (0x10000UL)
817 #define PCFG_STATUS_SEL24M_SHIFT (16U)
818 #define PCFG_STATUS_SEL24M_GET(x) (((uint32_t)(x) & PCFG_STATUS_SEL24M_MASK) >> PCFG_STATUS_SEL24M_SHIFT)
819 
820 /*
821  * EN_TRIM (RO)
822  *
823  * default value takes effect
824  * 0: default value is invalid
825  * 1: default value is valid
826  */
827 #define PCFG_STATUS_EN_TRIM_MASK (0x8000U)
828 #define PCFG_STATUS_EN_TRIM_SHIFT (15U)
829 #define PCFG_STATUS_EN_TRIM_GET(x) (((uint32_t)(x) & PCFG_STATUS_EN_TRIM_MASK) >> PCFG_STATUS_EN_TRIM_SHIFT)
830 
831 /*
832  * TRIM_C (RO)
833  *
834  * default coarse trim value
835  */
836 #define PCFG_STATUS_TRIM_C_MASK (0x700U)
837 #define PCFG_STATUS_TRIM_C_SHIFT (8U)
838 #define PCFG_STATUS_TRIM_C_GET(x) (((uint32_t)(x) & PCFG_STATUS_TRIM_C_MASK) >> PCFG_STATUS_TRIM_C_SHIFT)
839 
840 /*
841  * TRIM_F (RO)
842  *
843  * default fine trim value
844  */
845 #define PCFG_STATUS_TRIM_F_MASK (0x1FU)
846 #define PCFG_STATUS_TRIM_F_SHIFT (0U)
847 #define PCFG_STATUS_TRIM_F_GET(x) (((uint32_t)(x) & PCFG_STATUS_TRIM_F_MASK) >> PCFG_STATUS_TRIM_F_SHIFT)
848 
849 
850 
851 
852 #endif /* HPM_PCFG_H */
Definition: hpm_pcfg_regs.h:12