@@ -133,6 +133,13 @@ extern "C" {
133
133
#define NRF_REGULATORS_HAS_INDUCTOR_DET 0
134
134
#endif
135
135
136
+ #if defined(REGULATORS_HIBERNATOR_SYSTEMHIBERNATE_ResetValue ) || defined(__NRFX_DOXYGEN__ )
137
+ /** @brief Symbol indicating whether HIBERNATOR register is present. */
138
+ #define NRF_REGULATORS_HAS_HIBERNATOR 1
139
+ #else
140
+ #define NRF_REGULATORS_HAS_HIBERNATOR 0
141
+ #endif
142
+
136
143
#if NRF_REGULATORS_HAS_VREG_ANY
137
144
/** @brief Voltage regulators. */
138
145
typedef enum
@@ -156,22 +163,90 @@ typedef enum
156
163
/** @brief POF Comparator thresholds. */
157
164
typedef enum
158
165
{
166
+ #if defined(REGULATORS_POFCON_THRESHOLD_V090 ) || defined(__NRFX_DOXYGEN__ )
167
+ NRF_REGULATORS_POF_THR_0V9 = REGULATORS_POFCON_THRESHOLD_V090 , ///< Set threshold to 0.9 V.
168
+ #endif
169
+ #if defined(REGULATORS_POFCON_THRESHOLD_V095 ) || defined(__NRFX_DOXYGEN__ )
170
+ NRF_REGULATORS_POF_THR_0V95 = REGULATORS_POFCON_THRESHOLD_V095 , ///< Set threshold to 0.95 V.
171
+ #endif
172
+ #if defined(REGULATORS_POFCON_THRESHOLD_V100 ) || defined(__NRFX_DOXYGEN__ )
173
+ NRF_REGULATORS_POF_THR_1V0 = REGULATORS_POFCON_THRESHOLD_V100 , ///< Set threshold to 1.0 V.
174
+ #endif
175
+ #if defined(REGULATORS_POFCON_THRESHOLD_V105 ) || defined(__NRFX_DOXYGEN__ )
176
+ NRF_REGULATORS_POF_THR_1V05 = REGULATORS_POFCON_THRESHOLD_V105 , ///< Set threshold to 1.05 V.
177
+ #endif
178
+ #if defined(REGULATORS_POFCON_THRESHOLD_V110 ) || defined(__NRFX_DOXYGEN__ )
179
+ NRF_REGULATORS_POF_THR_1V1 = REGULATORS_POFCON_THRESHOLD_V110 , ///< Set threshold to 1.1 V.
180
+ #endif
181
+ #if defined(REGULATORS_POFCON_THRESHOLD_V115 ) || defined(__NRFX_DOXYGEN__ )
182
+ NRF_REGULATORS_POF_THR_1V15 = REGULATORS_POFCON_THRESHOLD_V115 , ///< Set threshold to 1.15 V.
183
+ #endif
184
+ #if defined(REGULATORS_POFCON_THRESHOLD_V120 ) || defined(__NRFX_DOXYGEN__ )
185
+ NRF_REGULATORS_POF_THR_1V2 = REGULATORS_POFCON_THRESHOLD_V120 , ///< Set threshold to 1.2 V.
186
+ #endif
187
+ #if defined(REGULATORS_POFCON_THRESHOLD_V125 ) || defined(__NRFX_DOXYGEN__ )
188
+ NRF_REGULATORS_POF_THR_1V25 = REGULATORS_POFCON_THRESHOLD_V125 , ///< Set threshold to 1.25 V.
189
+ #endif
190
+ #if defined(REGULATORS_POFCON_THRESHOLD_V130 ) || defined(__NRFX_DOXYGEN__ )
191
+ NRF_REGULATORS_POF_THR_1V3 = REGULATORS_POFCON_THRESHOLD_V130 , ///< Set threshold to 1.3 V.
192
+ #endif
193
+ #if defined(REGULATORS_POFCON_THRESHOLD_V135 ) || defined(__NRFX_DOXYGEN__ )
194
+ NRF_REGULATORS_POF_THR_1V35 = REGULATORS_POFCON_THRESHOLD_V135 , ///< Set threshold to 1.35 V.
195
+ #endif
196
+ #if defined(REGULATORS_POFCON_THRESHOLD_V140 ) || defined(__NRFX_DOXYGEN__ )
197
+ NRF_REGULATORS_POF_THR_1V4 = REGULATORS_POFCON_THRESHOLD_V140 , ///< Set threshold to 1.4 V.
198
+ #endif
199
+ #if defined(REGULATORS_POFCON_THRESHOLD_V145 ) || defined(__NRFX_DOXYGEN__ )
200
+ NRF_REGULATORS_POF_THR_1V45 = REGULATORS_POFCON_THRESHOLD_V145 , ///< Set threshold to 1.45 V.
201
+ #endif
202
+ #if defined(REGULATORS_POFCON_THRESHOLD_V150 ) || defined(__NRFX_DOXYGEN__ )
203
+ NRF_REGULATORS_POF_THR_1V5 = REGULATORS_POFCON_THRESHOLD_V150 , ///< Set threshold to 1.5 V.
204
+ #endif
205
+ #if defined(REGULATORS_POFCON_THRESHOLD_V155 ) || defined(__NRFX_DOXYGEN__ )
206
+ NRF_REGULATORS_POF_THR_1V55 = REGULATORS_POFCON_THRESHOLD_V155 , ///< Set threshold to 1.55 V.
207
+ #endif
208
+ #if defined(REGULATORS_POFCON_THRESHOLD_V160 ) || defined(__NRFX_DOXYGEN__ )
209
+ NRF_REGULATORS_POF_THR_1V6 = REGULATORS_POFCON_THRESHOLD_V160 , ///< Set threshold to 1.6 V.
210
+ #endif
211
+ #if defined(REGULATORS_POFCON_THRESHOLD_V165 ) || defined(__NRFX_DOXYGEN__ )
212
+ NRF_REGULATORS_POF_THR_1V65 = REGULATORS_POFCON_THRESHOLD_V165 , ///< Set threshold to 1.65 V.
213
+ #endif
159
214
#if defined(REGULATORS_POFCON_THRESHOLD_V17 ) || defined(__NRFX_DOXYGEN__ )
160
- NRF_REGULATORS_POF_THR_1V7 = REGULATORS_POFCON_THRESHOLD_V17 , ///< Set threshold to 1.7 V.
215
+ NRF_REGULATORS_POF_THR_1V7 = REGULATORS_POFCON_THRESHOLD_V17 , ///< Set threshold to 1.7 V.
161
216
#endif
162
217
#if defined(REGULATORS_POFCON_THRESHOLD_V18 ) || defined(__NRFX_DOXYGEN__ )
163
- NRF_REGULATORS_POF_THR_1V8 = REGULATORS_POFCON_THRESHOLD_V18 , ///< Set threshold to 1.8 V.
164
- #endif
165
- NRF_REGULATORS_POF_THR_1V9 = REGULATORS_POFCON_THRESHOLD_V19 , ///< Set threshold to 1.9 V.
166
- NRF_REGULATORS_POF_THR_2V0 = REGULATORS_POFCON_THRESHOLD_V20 , ///< Set threshold to 2.0 V.
167
- NRF_REGULATORS_POF_THR_2V1 = REGULATORS_POFCON_THRESHOLD_V21 , ///< Set threshold to 2.1 V.
168
- NRF_REGULATORS_POF_THR_2V2 = REGULATORS_POFCON_THRESHOLD_V22 , ///< Set threshold to 2.2 V.
169
- NRF_REGULATORS_POF_THR_2V3 = REGULATORS_POFCON_THRESHOLD_V23 , ///< Set threshold to 2.3 V.
170
- NRF_REGULATORS_POF_THR_2V4 = REGULATORS_POFCON_THRESHOLD_V24 , ///< Set threshold to 2.4 V.
171
- NRF_REGULATORS_POF_THR_2V5 = REGULATORS_POFCON_THRESHOLD_V25 , ///< Set threshold to 2.5 V.
172
- NRF_REGULATORS_POF_THR_2V6 = REGULATORS_POFCON_THRESHOLD_V26 , ///< Set threshold to 2.6 V.
173
- NRF_REGULATORS_POF_THR_2V7 = REGULATORS_POFCON_THRESHOLD_V27 , ///< Set threshold to 2.7 V.
174
- NRF_REGULATORS_POF_THR_2V8 = REGULATORS_POFCON_THRESHOLD_V28 , ///< Set threshold to 2.8 V.
218
+ NRF_REGULATORS_POF_THR_1V8 = REGULATORS_POFCON_THRESHOLD_V18 , ///< Set threshold to 1.8 V.
219
+ #endif
220
+ #if defined(REGULATORS_POFCON_THRESHOLD_V19 ) || defined(__NRFX_DOXYGEN__ )
221
+ NRF_REGULATORS_POF_THR_1V9 = REGULATORS_POFCON_THRESHOLD_V19 , ///< Set threshold to 1.9 V.
222
+ #endif
223
+ #if defined(REGULATORS_POFCON_THRESHOLD_V20 ) || defined(__NRFX_DOXYGEN__ )
224
+ NRF_REGULATORS_POF_THR_2V0 = REGULATORS_POFCON_THRESHOLD_V20 , ///< Set threshold to 2.0 V.
225
+ #endif
226
+ #if defined(REGULATORS_POFCON_THRESHOLD_V21 ) || defined(__NRFX_DOXYGEN__ )
227
+ NRF_REGULATORS_POF_THR_2V1 = REGULATORS_POFCON_THRESHOLD_V21 , ///< Set threshold to 2.1 V.
228
+ #endif
229
+ #if defined(REGULATORS_POFCON_THRESHOLD_V22 ) || defined(__NRFX_DOXYGEN__ )
230
+ NRF_REGULATORS_POF_THR_2V2 = REGULATORS_POFCON_THRESHOLD_V22 , ///< Set threshold to 2.2 V.
231
+ #endif
232
+ #if defined(REGULATORS_POFCON_THRESHOLD_V23 ) || defined(__NRFX_DOXYGEN__ )
233
+ NRF_REGULATORS_POF_THR_2V3 = REGULATORS_POFCON_THRESHOLD_V23 , ///< Set threshold to 2.3 V.
234
+ #endif
235
+ #if defined(REGULATORS_POFCON_THRESHOLD_V24 ) || defined(__NRFX_DOXYGEN__ )
236
+ NRF_REGULATORS_POF_THR_2V4 = REGULATORS_POFCON_THRESHOLD_V24 , ///< Set threshold to 2.4 V.
237
+ #endif
238
+ #if defined(REGULATORS_POFCON_THRESHOLD_V25 ) || defined(__NRFX_DOXYGEN__ )
239
+ NRF_REGULATORS_POF_THR_2V5 = REGULATORS_POFCON_THRESHOLD_V25 , ///< Set threshold to 2.5 V.
240
+ #endif
241
+ #if defined(REGULATORS_POFCON_THRESHOLD_V26 ) || defined(__NRFX_DOXYGEN__ )
242
+ NRF_REGULATORS_POF_THR_2V6 = REGULATORS_POFCON_THRESHOLD_V26 , ///< Set threshold to 2.6 V.
243
+ #endif
244
+ #if defined(REGULATORS_POFCON_THRESHOLD_V27 ) || defined(__NRFX_DOXYGEN__ )
245
+ NRF_REGULATORS_POF_THR_2V7 = REGULATORS_POFCON_THRESHOLD_V27 , ///< Set threshold to 2.7 V.
246
+ #endif
247
+ #if defined(REGULATORS_POFCON_THRESHOLD_V28 ) || defined(__NRFX_DOXYGEN__ )
248
+ NRF_REGULATORS_POF_THR_2V8 = REGULATORS_POFCON_THRESHOLD_V28 , ///< Set threshold to 2.8 V.
249
+ #endif
175
250
} nrf_regulators_pof_thr_t ;
176
251
#endif
177
252
@@ -346,6 +421,34 @@ NRF_STATIC_INLINE uint32_t nrf_regulators_elv_mode_allow_get(NRF_REGULATORS_Type
346
421
NRF_STATIC_INLINE bool nrf_regulators_inductor_check (NRF_REGULATORS_Type const * p_reg );
347
422
#endif
348
423
424
+ #if NRF_REGULATORS_HAS_HIBERNATOR
425
+ /**
426
+ * @brief Function for putting the CPU in hibernation mode.
427
+ *
428
+ * @param[in] p_reg Pointer to the structure of registers of the peripheral.
429
+ */
430
+ NRF_STATIC_INLINE void nrf_regulators_system_hibernate (NRF_REGULATORS_Type * p_reg );
431
+
432
+ /**
433
+ * @brief Function for enabling or disabling the GPIO retention release on wake up
434
+ * from hibernation mode.
435
+ *
436
+ * @param[in] p_reg Pointer to the structure of registers of the peripheral.
437
+ * @param[in] enable True if GPIO retention release is to be enabled, false otherwise.
438
+ */
439
+ NRF_STATIC_INLINE void nrf_regulators_gpio_retention_release_set (NRF_REGULATORS_Type * p_reg ,
440
+ bool enable );
441
+ /**
442
+ * @brief Function for checking the GPIO retention status.
443
+ *
444
+ * @param[in] p_reg Pointer to the structure of registers of the peripheral.
445
+ *
446
+ * @retval true GPIO retention is active.
447
+ * @retval false GPIO retention is not active.
448
+ */
449
+ NRF_STATIC_INLINE bool nrf_regulators_gpio_retention_check (NRF_REGULATORS_Type const * p_reg );
450
+ #endif
451
+
349
452
#ifndef NRF_DECLARE_ONLY
350
453
351
454
#if NRF_REGULATORS_HAS_VREG_ANY
@@ -539,6 +642,31 @@ NRF_STATIC_INLINE bool nrf_regulators_inductor_check(NRF_REGULATORS_Type const *
539
642
}
540
643
#endif
541
644
645
+ #if NRF_REGULATORS_HAS_HIBERNATOR
646
+ NRF_STATIC_INLINE void nrf_regulators_system_hibernate (NRF_REGULATORS_Type * p_reg )
647
+ {
648
+ p_reg -> HIBERNATOR .SYSTEMHIBERNATE =
649
+ REGULATORS_HIBERNATOR_SYSTEMHIBERNATE_SYSTEMHIBERNATE_Enter ;
650
+ }
651
+
652
+ NRF_STATIC_INLINE void nrf_regulators_gpio_retention_release_set (NRF_REGULATORS_Type * p_reg ,
653
+ bool enable )
654
+ {
655
+ p_reg -> HIBERNATOR .GPIORETENTIONRELEASE = (enable
656
+ ? REGULATORS_HIBERNATOR_GPIORETENTIONRELEASE_GPIORETENTIONRELEASE_Release
657
+ : REGULATORS_HIBERNATOR_GPIORETENTIONRELEASE_GPIORETENTIONRELEASE_NoRelease )
658
+ << REGULATORS_HIBERNATOR_GPIORETENTIONRELEASE_GPIORETENTIONRELEASE_Pos ;
659
+ }
660
+
661
+ NRF_STATIC_INLINE bool nrf_regulators_gpio_retention_check (NRF_REGULATORS_Type const * p_reg )
662
+ {
663
+ return (p_reg -> HIBERNATOR .GPIORETENTIONSTATUS
664
+ & REGULATORS_HIBERNATOR_GPIORETENTIONSTATUS_GPIORETENTIONSTATUS_Msk )
665
+ >> REGULATORS_HIBERNATOR_GPIORETENTIONSTATUS_GPIORETENTIONSTATUS_Pos
666
+ == REGULATORS_HIBERNATOR_GPIORETENTIONSTATUS_GPIORETENTIONSTATUS_Active ;
667
+ }
668
+ #endif
669
+
542
670
#endif // NRF_DECLARE_ONLY
543
671
544
672
/** @} */
0 commit comments