summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/rtc/rtc-tps65910.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/rtc/rtc-tps65910.c b/drivers/rtc/rtc-tps65910.c
index a9caf043b0c..cdbf1a2b251 100644
--- a/drivers/rtc/rtc-tps65910.c
+++ b/drivers/rtc/rtc-tps65910.c
@@ -25,6 +25,9 @@
#include <linux/pm_runtime.h>
#include <linux/interrupt.h>
#include <linux/mfd/tps65910.h>
+#include <linux/wakelock.h>
+
+struct wake_lock rtc_wake_lock;
struct tps65910_rtc {
struct rtc_device *rtc;
@@ -197,6 +200,7 @@ static irqreturn_t tps65910_rtc_interrupt(int irq, void *rtc)
int ret;
u32 rtc_reg;
+ wake_lock_timeout(&rtc_wake_lock, msecs_to_jiffies(2000));
ret = regmap_read(tps->regmap, TPS65910_RTC_STATUS, &rtc_reg);
if (ret)
return IRQ_NONE;
@@ -285,6 +289,7 @@ static int tps65910_rtc_probe(struct platform_device *pdev)
}
platform_set_drvdata(pdev, tps_rtc);
+ wake_lock_init(&rtc_wake_lock, WAKE_LOCK_SUSPEND, "rtc_wake_lock");
return 0;
}