SmartSnippets DA1459x SDK
hw_pd.h
Go to the documentation of this file.
1 
41 #ifndef HW_PD_H_
42 #define HW_PD_H_
43 
44 
45 #if dg_configUSE_HW_PD
46 
47 #include "sdk_defs.h"
48 
54 typedef enum {
55  HW_PD_AON = 0,
65 } HW_PD;
66 
71 __STATIC_FORCEINLINE void hw_pd_power_up_periph(void)
72 {
74  REG_CLR_BIT(CRG_TOP, PMU_CTRL_REG, PERIPH_SLEEP);
76  while ((CRG_TOP->SYS_STAT_REG & REG_MSK(CRG_TOP, SYS_STAT_REG, PER_IS_UP)) == 0);
77 }
78 
79 __STATIC_FORCEINLINE void hw_pd_power_down_periph(void)
80 {
82  REG_SET_BIT(CRG_TOP, PMU_CTRL_REG, PERIPH_SLEEP);
84 }
85 
92 __STATIC_FORCEINLINE void hw_pd_wait_power_down_periph(void)
93 {
94  while ((CRG_TOP->SYS_STAT_REG & REG_MSK(CRG_TOP, SYS_STAT_REG, PER_IS_DOWN)) == 0);
95 }
96 
102 __STATIC_INLINE bool hw_pd_check_periph_status(void)
103 {
104  return REG_GETF(CRG_TOP, SYS_STAT_REG, PER_IS_UP) == 1;
105 }
106 
111 __STATIC_FORCEINLINE void hw_pd_power_up_rad(void)
112 {
114  REG_CLR_BIT(CRG_TOP, PMU_CTRL_REG, RADIO_SLEEP);
116  while ((CRG_TOP->SYS_STAT_REG & REG_MSK(CRG_TOP, SYS_STAT_REG, RAD_IS_UP)) == 0);
117 }
118 
127 __STATIC_INLINE void hw_pd_power_down_rad(void)
128 {
130  REG_SET_BIT(CRG_TOP, PMU_CTRL_REG, RADIO_SLEEP);
132 }
133 
140 __STATIC_FORCEINLINE void hw_pd_wait_power_down_rad(void)
141 {
142  while ((CRG_TOP->SYS_STAT_REG & REG_MSK(CRG_TOP, SYS_STAT_REG, RAD_IS_DOWN)) == 0);
143 }
144 
151 __STATIC_INLINE bool hw_pd_check_rad_status(void)
152 {
153  return REG_GETF(CRG_TOP, SYS_STAT_REG, RAD_IS_UP) == 1;
154 }
155 
156 
161 __STATIC_FORCEINLINE void hw_pd_power_up_com(void)
162 {
164  REG_CLR_BIT(CRG_TOP, PMU_CTRL_REG, COM_SLEEP);
166  while ((CRG_TOP->SYS_STAT_REG & REG_MSK(CRG_TOP, SYS_STAT_REG, COM_IS_UP)) == 0);
167 }
168 
177 __STATIC_FORCEINLINE void hw_pd_power_down_com(void)
178 {
180  REG_SET_BIT(CRG_TOP, PMU_CTRL_REG, COM_SLEEP);
182 }
183 
190 __STATIC_FORCEINLINE void hw_pd_wait_power_down_com(void)
191 {
192  while ((CRG_TOP->SYS_STAT_REG & REG_MSK(CRG_TOP, SYS_STAT_REG, COM_IS_DOWN)) == 0);
193 }
194 
200 __STATIC_INLINE bool hw_pd_check_com_status(void)
201 {
202  return REG_GETF(CRG_TOP, SYS_STAT_REG, COM_IS_UP) == 1;
203 }
204 
209 __STATIC_FORCEINLINE void hw_pd_power_up_tim(void)
210 {
212  REG_CLR_BIT(CRG_TOP, PMU_CTRL_REG, TIM_SLEEP);
214  while ((CRG_TOP->SYS_STAT_REG & REG_MSK(CRG_TOP, SYS_STAT_REG, TIM_IS_UP)) == 0);
215 }
216 
225 __STATIC_FORCEINLINE void hw_pd_power_down_tim(void)
226 {
228  REG_SET_BIT(CRG_TOP, PMU_CTRL_REG, TIM_SLEEP);
230 }
231 
238 __STATIC_FORCEINLINE void hw_pd_wait_power_down_tim(void)
239 {
240  while ((CRG_TOP->SYS_STAT_REG & REG_MSK(CRG_TOP, SYS_STAT_REG, TIM_IS_DOWN)) == 0);
241 }
242 
248 __STATIC_INLINE bool hw_pd_check_tim_status(void)
249 {
250  return REG_GETF(CRG_TOP, SYS_STAT_REG, TIM_IS_UP) == 1;
251 }
252 
257 __STATIC_FORCEINLINE void hw_pd_power_up_aud(void)
258 {
260  REG_CLR_BIT(CRG_TOP, PMU_CTRL_REG, AUD_SLEEP);
262  while ((CRG_TOP->SYS_STAT_REG & REG_MSK(CRG_TOP, SYS_STAT_REG, AUD_IS_UP)) == 0);
263 }
264 
273 __STATIC_FORCEINLINE void hw_pd_power_down_aud(void)
274 {
276  REG_SET_BIT(CRG_TOP, PMU_CTRL_REG, AUD_SLEEP);
278 }
279 
286 __STATIC_FORCEINLINE void hw_pd_wait_power_down_aud(void)
287 {
288  while ((CRG_TOP->SYS_STAT_REG & REG_MSK(CRG_TOP, SYS_STAT_REG, AUD_IS_DOWN)) == 0);
289 }
290 
296 __STATIC_INLINE bool hw_pd_check_aud_status(void)
297 {
298  return REG_GETF(CRG_TOP, SYS_STAT_REG, AUD_IS_UP) == 1;
299 }
300 
301 
302 #endif /* dg_configUSE_HW_PD */
303 
304 
305 #endif /* HW_PD_H_ */
306 
hw_pd_power_down_tim
__STATIC_FORCEINLINE void hw_pd_power_down_tim(void)
Power down the Timers Power Domain.
Definition: hw_pd.h:225
HW_PD
HW_PD
Hardware power domains.
Definition: hw_pd.h:54
REG_CLR_BIT
#define REG_CLR_BIT(base, reg, field)
Clear a bit of a register.
Definition: sdk_defs.h:781
hw_pd_power_up_aud
__STATIC_FORCEINLINE void hw_pd_power_up_aud(void)
Power up the Audio Power Domain.
Definition: hw_pd.h:257
REG_SET_BIT
#define REG_SET_BIT(base, reg, field)
Set a bit of a register.
Definition: sdk_defs.h:766
hw_pd_check_com_status
__STATIC_INLINE bool hw_pd_check_com_status(void)
Check the status of Communications Power Domain.
Definition: hw_pd.h:200
hw_pd_check_rad_status
__STATIC_INLINE bool hw_pd_check_rad_status(void)
Check the status of Radio Power Domain.
Definition: hw_pd.h:151
hw_pd_power_up_rad
__STATIC_FORCEINLINE void hw_pd_power_up_rad(void)
Power up the Radio Power Domain.
Definition: hw_pd.h:111
HW_PD_SYS
Definition: hw_pd.h:56
sdk_defs.h
Central include header file with platform definitions.
hw_pd_power_up_com
__STATIC_FORCEINLINE void hw_pd_power_up_com(void)
Power up the Communications Power Domain.
Definition: hw_pd.h:161
HW_PD_AUD
Definition: hw_pd.h:63
hw_pd_check_periph_status
__STATIC_INLINE bool hw_pd_check_periph_status(void)
Check the status of Peripherals Power Domain.
Definition: hw_pd.h:102
hw_pd_power_up_tim
__STATIC_FORCEINLINE void hw_pd_power_up_tim(void)
Power up the Timers Power Domain.
Definition: hw_pd.h:209
hw_pd_check_aud_status
__STATIC_INLINE bool hw_pd_check_aud_status(void)
Check the status of Audio Power Domain.
Definition: hw_pd.h:296
hw_pd_power_down_com
__STATIC_FORCEINLINE void hw_pd_power_down_com(void)
Power down the Communications Power Domain.
Definition: hw_pd.h:177
hw_pd_wait_power_down_com
__STATIC_FORCEINLINE void hw_pd_wait_power_down_com(void)
Wait for Communications Power Domain Power down.
Definition: hw_pd.h:190
HW_PD_PER
Definition: hw_pd.h:60
HW_PD_TMR
Definition: hw_pd.h:59
hw_pd_wait_power_down_aud
__STATIC_FORCEINLINE void hw_pd_wait_power_down_aud(void)
Wait for Audio Power Domain Power down.
Definition: hw_pd.h:286
hw_pd_wait_power_down_periph
__STATIC_FORCEINLINE void hw_pd_wait_power_down_periph(void)
Wait for Peripheral Power Domain Power down.
Definition: hw_pd.h:92
REG_MSK
#define REG_MSK(base, reg, field)
Access register field mask.
Definition: sdk_defs.h:583
HW_PD_MEM
Definition: hw_pd.h:58
hw_pd_wait_power_down_rad
__STATIC_FORCEINLINE void hw_pd_wait_power_down_rad(void)
Wait for Radio Power Domain Power down.
Definition: hw_pd.h:140
hw_pd_power_down_rad
__STATIC_INLINE void hw_pd_power_down_rad(void)
Power down the Radio Power Domain.
Definition: hw_pd.h:127
GLOBAL_INT_RESTORE
#define GLOBAL_INT_RESTORE()
Macro to restore all interrupts.
Definition: sdk_defs.h:477
HW_PD_AON
Definition: hw_pd.h:55
hw_pd_power_up_periph
__STATIC_FORCEINLINE void hw_pd_power_up_periph(void)
Power up the Peripherals Power Domain.
Definition: hw_pd.h:71
REG_GETF
#define REG_GETF(base, reg, field)
Return the value of a register field.
Definition: sdk_defs.h:711
HW_PD_RAD
Definition: hw_pd.h:61
HW_PD_COM
Definition: hw_pd.h:57
hw_pd_power_down_aud
__STATIC_FORCEINLINE void hw_pd_power_down_aud(void)
Power down the Audio Power Domain.
Definition: hw_pd.h:273
HW_PD_MAX
Definition: hw_pd.h:64
GLOBAL_INT_DISABLE
#define GLOBAL_INT_DISABLE()
Macro to disable all interrupts.
Definition: sdk_defs.h:452
hw_pd_check_tim_status
__STATIC_INLINE bool hw_pd_check_tim_status(void)
Check the status of Timers Power Domain.
Definition: hw_pd.h:248
hw_pd_wait_power_down_tim
__STATIC_FORCEINLINE void hw_pd_wait_power_down_tim(void)
Wait for Timers Power Domain Power down.
Definition: hw_pd.h:238
HW_PD_SLP
Definition: hw_pd.h:62