aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc
diff options
context:
space:
mode:
authorHenry Chen <henryc.chen@mediatek.com>2015-07-30 10:53:14 -0400
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>2015-09-05 07:19:08 -0400
commitd7f9777de884daf5721211bddfd21e7c8c156b17 (patch)
treef717b6ebb8db04993a20792093c7bb961c81f5f0 /drivers/rtc
parent3ee2c40b7ac2bf121aaa1176d8ac25b6a26e3a94 (diff)
rtc: mt6397: implement suspend/resume function in rtc-mt6397 driver
Implement the suspend/resume function in order to control rtc's irq_wake flag and handle as wakeup source. Signed-off-by: Henry Chen <henryc.chen@mediatek.com> Acked-by: Eddie Huang <eddie.huang@mediatek.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Diffstat (limited to 'drivers/rtc')
-rw-r--r--drivers/rtc/rtc-mt6397.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/rtc/rtc-mt6397.c b/drivers/rtc/rtc-mt6397.c
index eab230be5a54..30c926b36361 100644
--- a/drivers/rtc/rtc-mt6397.c
+++ b/drivers/rtc/rtc-mt6397.c
@@ -373,6 +373,31 @@ static int mtk_rtc_remove(struct platform_device *pdev)
373 return 0; 373 return 0;
374} 374}
375 375
376#ifdef CONFIG_PM_SLEEP
377static int mt6397_rtc_suspend(struct device *dev)
378{
379 struct mt6397_rtc *rtc = dev_get_drvdata(dev);
380
381 if (device_may_wakeup(dev))
382 enable_irq_wake(rtc->irq);
383
384 return 0;
385}
386
387static int mt6397_rtc_resume(struct device *dev)
388{
389 struct mt6397_rtc *rtc = dev_get_drvdata(dev);
390
391 if (device_may_wakeup(dev))
392 disable_irq_wake(rtc->irq);
393
394 return 0;
395}
396#endif
397
398static SIMPLE_DEV_PM_OPS(mt6397_pm_ops, mt6397_rtc_suspend,
399 mt6397_rtc_resume);
400
376static const struct of_device_id mt6397_rtc_of_match[] = { 401static const struct of_device_id mt6397_rtc_of_match[] = {
377 { .compatible = "mediatek,mt6397-rtc", }, 402 { .compatible = "mediatek,mt6397-rtc", },
378 { } 403 { }
@@ -382,6 +407,7 @@ static struct platform_driver mtk_rtc_driver = {
382 .driver = { 407 .driver = {
383 .name = "mt6397-rtc", 408 .name = "mt6397-rtc",
384 .of_match_table = mt6397_rtc_of_match, 409 .of_match_table = mt6397_rtc_of_match,
410 .pm = &mt6397_pm_ops,
385 }, 411 },
386 .probe = mtk_rtc_probe, 412 .probe = mtk_rtc_probe,
387 .remove = mtk_rtc_remove, 413 .remove = mtk_rtc_remove,