52 #ifndef __GR533x_LL_SLEEP_TIMER_H__
53 #define __GR533x_LL_SLEEP_TIMER_H__
67 #define SLP_TIMER_CFG0_CNT_SLP_ONLY (0x1U << SLP_TIMER_CFG0_COUNT_MODE_Pos)
68 #define SLP_TIMER_CFG0_CNT_ANY_CONDITION (0x0U << SLP_TIMER_CFG0_COUNT_MODE_Pos)
69 #define SLP_TIMER_CFG0_SINGLE_MODE (0x1U << SLP_TIMER_CFG0_MODE_Pos)
70 #define SLP_TIMER_CFG0_AUTO_RELOAD (0x0U << SLP_TIMER_CFG0_MODE_Pos)
71 #define LL_SLEEP_TIMER_SINGLE_MODE_0 (SLP_TIMER_CFG0_SINGLE_MODE | SLP_TIMER_CFG0_CNT_SLP_ONLY)
72 #define LL_SLEEP_TIMER_SINGLE_MODE_1 (SLP_TIMER_CFG0_SINGLE_MODE | SLP_TIMER_CFG0_CNT_ANY_CONDITION)
73 #define LL_SLEEP_TIMER_AUTO_MODE (SLP_TIMER_CFG0_AUTO_RELOAD | SLP_TIMER_CFG0_CNT_ANY_CONDITION)
92 __STATIC_INLINE
void ll_sleep_timer_set_value(uint32_t value)
94 WRITE_REG(SLP_TIMER->TIMER_W, value);
106 __STATIC_INLINE uint32_t ll_sleep_timer_get_value(
void)
108 return READ_REG(SLP_TIMER->TIMER_W);
120 __STATIC_INLINE uint32_t ll_sleep_timer_get_read_value(
void)
122 return READ_REG(SLP_TIMER->TIMER_R);
134 __STATIC_INLINE uint32_t ll_sleep_timer_is_runing(
void)
136 return (uint32_t)(READ_BITS(SLP_TIMER->STAT, SLP_TIMER_STAT_STAT) == SLP_TIMER_STAT_STAT);
148 __STATIC_INLINE uint32_t ll_sleep_timer_is_busy(
void)
150 return (uint32_t)(READ_BITS(SLP_TIMER->STAT, SLP_TIMER_STAT_BUSY) == SLP_TIMER_STAT_BUSY);
163 __STATIC_INLINE
void ll_sleep_timer_set_mode(uint32_t mode)
165 WRITE_REG(SLP_TIMER->CFG0, SLP_TIMER_CFG0_EN | SLP_TIMER_CFG0_VAL_SET | mode | SLP_TIMER_CFG0_CFG);
176 __STATIC_INLINE
void ll_sleep_timer_disable(
void)
178 MODIFY_REG(SLP_TIMER->CFG0, SLP_TIMER_CFG0_EN, SLP_TIMER_CFG0_CFG);
190 __STATIC_INLINE
void ll_sleep_timer_clear_sleep_event(
void)
192 WRITE_REG(AON_CTL->AON_SLP_EVENT, ~AON_CTL_SLP_EVENT_SLP_TIMER);