52 #ifndef __GR55xx_LL_SLEEP_TIMER_H__
53 #define __GR55xx_LL_SLEEP_TIMER_H__
72 #define SLP_TIMER_CFG0_CNT_SLP_ONLY (0x1U << SLP_TIMER_CFG0_COUNT_MODE_Pos)
73 #define SLP_TIMER_CFG0_CNT_ANY_CONDITION (0x0U << SLP_TIMER_CFG0_COUNT_MODE_Pos)
74 #define SLP_TIMER_CFG0_SINGLE_MODE (0x1U << SLP_TIMER_CFG0_MODE_Pos)
75 #define SLP_TIMER_CFG0_AUTO_RELOAD (0x0U << SLP_TIMER_CFG0_MODE_Pos)
76 #define LL_SLEEP_TIMER_SINGLE_MODE_0 (SLP_TIMER_CFG0_SINGLE_MODE | SLP_TIMER_CFG0_CNT_SLP_ONLY)
77 #define LL_SLEEP_TIMER_SINGLE_MODE_1 (SLP_TIMER_CFG0_SINGLE_MODE | SLP_TIMER_CFG0_CNT_ANY_CONDITION)
78 #define LL_SLEEP_TIMER_AUTO_MODE (SLP_TIMER_CFG0_AUTO_RELOAD | SLP_TIMER_CFG0_CNT_ANY_CONDITION)
83 #define LL_SLEEP_TIMER_CLK_SEL_RNG_OSC (0x0U << SLP_TIMER_CLK_SEL_Pos)
84 #define LL_SLEEP_TIMER_CLK_SEL_XO (0x1U << SLP_TIMER_CLK_SEL_Pos)
85 #define LL_SLEEP_TIMER_CLK_SEL_RNG2_OSC (0x2U << SLP_TIMER_CLK_SEL_Pos)
86 #define LL_SLEEP_TIMER_CLK_SEL_RTC_OSC (0x3U << SLP_TIMER_CLK_SEL_Pos)
109 __STATIC_INLINE
void ll_sleep_timer_set_clk(uint32_t value)
111 MODIFY_REG(SLP_TIMER->CLK, SLP_TIMER_CLK_SEL, value);
126 __STATIC_INLINE uint32_t ll_sleep_timer_get_clk(
void)
128 return (READ_BITS(SLP_TIMER->CLK, SLP_TIMER_CLK_SEL));
141 __STATIC_INLINE
void ll_sleep_timer_set_value(uint32_t value)
143 WRITE_REG(SLP_TIMER->TIMER_W, value);
155 __STATIC_INLINE uint32_t ll_sleep_timer_get_value(
void)
157 return READ_REG(SLP_TIMER->TIMER_W);
169 SECTION_RAM_CODE __STATIC_INLINE uint32_t ll_sleep_timer_get_read_value(
void)
171 return READ_REG(SLP_TIMER->TIMER_R);
183 __STATIC_INLINE uint32_t ll_sleep_timer_is_runing(
void)
185 return (uint32_t)(READ_BITS(SLP_TIMER->STAT, SLP_TIMER_STAT_STAT) == SLP_TIMER_STAT_STAT);
197 __STATIC_INLINE uint32_t ll_sleep_timer_is_busy(
void)
199 return (uint32_t)(READ_BITS(SLP_TIMER->STAT, SLP_TIMER_STAT_BUSY) == SLP_TIMER_STAT_BUSY);
212 __STATIC_INLINE
void ll_sleep_timer_set_mode(uint32_t mode)
214 WRITE_REG(SLP_TIMER->CFG0, SLP_TIMER_CFG0_EN | SLP_TIMER_CFG0_VAL_SET | mode | SLP_TIMER_CFG0_CFG);
225 __STATIC_INLINE
void ll_sleep_timer_disable(
void)
227 MODIFY_REG(SLP_TIMER->CFG0, SLP_TIMER_CFG0_EN, SLP_TIMER_CFG0_CFG);
239 __STATIC_INLINE
void ll_sleep_timer_clear_sleep_event(
void)
241 WRITE_REG(AON_CTL->AON_SLP_EVENT, ~AON_CTL_SLP_EVENT_SLP_TIMER);