|
@@ -694,8 +694,15 @@ static SIMPLE_DEV_PM_OPS(omap_rtc_pm_ops, omap_rtc_suspend, omap_rtc_resume);
|
|
|
static void omap_rtc_shutdown(struct platform_device *pdev)
|
|
|
{
|
|
|
struct omap_rtc *rtc = platform_get_drvdata(pdev);
|
|
|
+ u8 mask;
|
|
|
|
|
|
- rtc_write(rtc, OMAP_RTC_INTERRUPTS_REG, 0);
|
|
|
+ /*
|
|
|
+ * Keep the ALARM interrupt enabled to allow the system to power up on
|
|
|
+ * alarm events.
|
|
|
+ */
|
|
|
+ mask = rtc_read(rtc, OMAP_RTC_INTERRUPTS_REG);
|
|
|
+ mask &= OMAP_RTC_INTERRUPTS_IT_ALARM;
|
|
|
+ rtc_write(rtc, OMAP_RTC_INTERRUPTS_REG, mask);
|
|
|
}
|
|
|
|
|
|
static struct platform_driver omap_rtc_driver = {
|