Lines Matching full:alarm
38 * The RTC's value is the RTT counter plus that offset. The RTC's alarm
48 #define AT91_RTT_ALMIEN BIT(16) /* Alarm Interrupt Enable */
52 #define AT91_RTT_AR 0x04 /* Real-time Alarm Register */
53 #define AT91_RTT_ALMV (0xffffffff) /* Alarm Value */
59 #define AT91_RTT_ALMS BIT(0) /* Alarm Status */
63 * We store ALARM_DISABLED in ALMV to record that no alarm is set.
133 u32 offset, alarm, mr; in at91_rtc_settime() local
152 /* adjust the alarm time for the new base */ in at91_rtc_settime()
153 alarm = rtt_readl(rtc, AR); in at91_rtc_settime()
154 if (alarm != ALARM_DISABLED) { in at91_rtc_settime()
156 /* time jumped backwards, increase time until alarm */ in at91_rtc_settime()
157 alarm += (offset - secs); in at91_rtc_settime()
158 } else if ((alarm + offset) > secs) { in at91_rtc_settime()
159 /* time jumped forwards, decrease time until alarm */ in at91_rtc_settime()
160 alarm -= (secs - offset); in at91_rtc_settime()
162 /* time jumped past the alarm, disable alarm */ in at91_rtc_settime()
163 alarm = ALARM_DISABLED; in at91_rtc_settime()
166 rtt_writel(rtc, AR, alarm); in at91_rtc_settime()
179 u32 alarm = rtt_readl(rtc, AR); in at91_rtc_readalarm() local
187 if (alarm != ALARM_DISABLED) { in at91_rtc_readalarm()
188 rtc_time64_to_tm(offset + alarm, tm); in at91_rtc_readalarm()
217 /* alarm in the past? finish and leave disabled */ in at91_rtc_setalarm()
223 /* else set alarm and maybe enable it */ in at91_rtc_setalarm()
271 /* alarm status */ in at91_rtc_cache_events()