rtc: at91rm9200: clear RTC alarm status flag prior to suspending
authorWenyou Yang <wenyou.yang@atmel.com>
Mon, 12 Oct 2015 08:39:23 +0000 (16:39 +0800)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Sun, 8 Nov 2015 13:12:28 +0000 (14:12 +0100)
As said in the SAMA5D2 datasheet, "Prior to instructing the device
to enter ULP mode 1, ... and the internal sources of wake-up must
be cleared."

This patch is to clear the RTC alarm status flag prior to suspending
to avoid the erroneous wake-up activity, as it is often used as
the wake-up source for the ULP mode 1.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
drivers/rtc/rtc-at91rm9200.c

index cb62e21..b60fd47 100644 (file)
@@ -495,6 +495,8 @@ static int at91_rtc_suspend(struct device *dev)
        /* this IRQ is shared with DBGU and other hardware which isn't
         * necessarily doing PM like we are...
         */
+       at91_rtc_write(AT91_RTC_SCCR, AT91_RTC_ALARM);
+
        at91_rtc_imr = at91_rtc_read_imr()
                        & (AT91_RTC_ALARM|AT91_RTC_SECEV);
        if (at91_rtc_imr) {