soc/rtc: restore dbg attenuation when waking from sleep
This fixes inability to enter deep sleep after waking up from light sleep
This commit is contained in:
parent
d38b22b11b
commit
ac623a9756
3 changed files with 5 additions and 2 deletions
|
@ -1070,7 +1070,7 @@
|
||||||
#define RTC_CNTL_DBG_ATTEN_M ((RTC_CNTL_DBG_ATTEN_V)<<(RTC_CNTL_DBG_ATTEN_S))
|
#define RTC_CNTL_DBG_ATTEN_M ((RTC_CNTL_DBG_ATTEN_V)<<(RTC_CNTL_DBG_ATTEN_S))
|
||||||
#define RTC_CNTL_DBG_ATTEN_V 0x3
|
#define RTC_CNTL_DBG_ATTEN_V 0x3
|
||||||
#define RTC_CNTL_DBG_ATTEN_S 24
|
#define RTC_CNTL_DBG_ATTEN_S 24
|
||||||
|
#define RTC_CNTL_DBG_ATTEN_DEFAULT 3
|
||||||
#define RTC_CNTL_REG (DR_REG_RTCCNTL_BASE + 0x7c)
|
#define RTC_CNTL_REG (DR_REG_RTCCNTL_BASE + 0x7c)
|
||||||
/* RTC_CNTL_FORCE_PU : R/W ;bitpos:[31] ;default: 1'd1 ; */
|
/* RTC_CNTL_FORCE_PU : R/W ;bitpos:[31] ;default: 1'd1 ; */
|
||||||
/*description: RTC_REG force power up*/
|
/*description: RTC_REG force power up*/
|
||||||
|
|
|
@ -30,7 +30,7 @@ void rtc_init(rtc_config_t cfg)
|
||||||
REG_SET_FIELD(RTC_CNTL_TIMER1_REG, RTC_CNTL_XTL_BUF_WAIT, cfg.xtal_wait);
|
REG_SET_FIELD(RTC_CNTL_TIMER1_REG, RTC_CNTL_XTL_BUF_WAIT, cfg.xtal_wait);
|
||||||
REG_SET_FIELD(RTC_CNTL_TIMER1_REG, RTC_CNTL_CK8M_WAIT, cfg.ck8m_wait);
|
REG_SET_FIELD(RTC_CNTL_TIMER1_REG, RTC_CNTL_CK8M_WAIT, cfg.ck8m_wait);
|
||||||
|
|
||||||
REG_SET_FIELD(RTC_CNTL_BIAS_CONF_REG, RTC_CNTL_DBG_ATTEN, 0x3);
|
REG_SET_FIELD(RTC_CNTL_BIAS_CONF_REG, RTC_CNTL_DBG_ATTEN, RTC_CNTL_DBG_ATTEN_DEFAULT);
|
||||||
SET_PERI_REG_MASK(RTC_CNTL_BIAS_CONF_REG,
|
SET_PERI_REG_MASK(RTC_CNTL_BIAS_CONF_REG,
|
||||||
RTC_CNTL_DEC_HEARTBEAT_WIDTH | RTC_CNTL_INC_HEARTBEAT_PERIOD);
|
RTC_CNTL_DEC_HEARTBEAT_WIDTH | RTC_CNTL_INC_HEARTBEAT_PERIOD);
|
||||||
|
|
||||||
|
|
|
@ -219,5 +219,8 @@ uint32_t rtc_sleep_start(uint32_t wakeup_opt, uint32_t reject_opt)
|
||||||
uint32_t reject = REG_GET_FIELD(RTC_CNTL_INT_RAW_REG, RTC_CNTL_SLP_REJECT_INT_RAW);
|
uint32_t reject = REG_GET_FIELD(RTC_CNTL_INT_RAW_REG, RTC_CNTL_SLP_REJECT_INT_RAW);
|
||||||
SET_PERI_REG_MASK(RTC_CNTL_INT_CLR_REG,
|
SET_PERI_REG_MASK(RTC_CNTL_INT_CLR_REG,
|
||||||
RTC_CNTL_SLP_REJECT_INT_CLR | RTC_CNTL_SLP_WAKEUP_INT_CLR);
|
RTC_CNTL_SLP_REJECT_INT_CLR | RTC_CNTL_SLP_WAKEUP_INT_CLR);
|
||||||
|
|
||||||
|
/* restore DBG_ATTEN to the default value */
|
||||||
|
REG_SET_FIELD(RTC_CNTL_BIAS_CONF_REG, RTC_CNTL_DBG_ATTEN, RTC_CNTL_DBG_ATTEN_DEFAULT);
|
||||||
return reject;
|
return reject;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue