aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-rc5t583.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/rtc/rtc-rc5t583.c')
-rw-r--r--drivers/rtc/rtc-rc5t583.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/rtc/rtc-rc5t583.c b/drivers/rtc/rtc-rc5t583.c
index eb3194d664a8..8eabcf51b35a 100644
--- a/drivers/rtc/rtc-rc5t583.c
+++ b/drivers/rtc/rtc-rc5t583.c
@@ -256,7 +256,7 @@ static int rc5t583_rtc_probe(struct platform_device *pdev)
256 } 256 }
257 device_init_wakeup(&pdev->dev, 1); 257 device_init_wakeup(&pdev->dev, 1);
258 258
259 ricoh_rtc->rtc = rtc_device_register(pdev->name, &pdev->dev, 259 ricoh_rtc->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
260 &rc5t583_rtc_ops, THIS_MODULE); 260 &rc5t583_rtc_ops, THIS_MODULE);
261 if (IS_ERR(ricoh_rtc->rtc)) { 261 if (IS_ERR(ricoh_rtc->rtc)) {
262 ret = PTR_ERR(ricoh_rtc->rtc); 262 ret = PTR_ERR(ricoh_rtc->rtc);
@@ -276,13 +276,10 @@ static int rc5t583_rtc_remove(struct platform_device *pdev)
276 struct rc5t583_rtc *rc5t583_rtc = dev_get_drvdata(&pdev->dev); 276 struct rc5t583_rtc *rc5t583_rtc = dev_get_drvdata(&pdev->dev);
277 277
278 rc5t583_rtc_alarm_irq_enable(&rc5t583_rtc->rtc->dev, 0); 278 rc5t583_rtc_alarm_irq_enable(&rc5t583_rtc->rtc->dev, 0);
279
280 rtc_device_unregister(rc5t583_rtc->rtc);
281 return 0; 279 return 0;
282} 280}
283 281
284#ifdef CONFIG_PM_SLEEP 282#ifdef CONFIG_PM_SLEEP
285
286static int rc5t583_rtc_suspend(struct device *dev) 283static int rc5t583_rtc_suspend(struct device *dev)
287{ 284{
288 struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent); 285 struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent);
@@ -304,24 +301,18 @@ static int rc5t583_rtc_resume(struct device *dev)
304 return regmap_write(rc5t583->regmap, RC5T583_RTC_CTL1, 301 return regmap_write(rc5t583->regmap, RC5T583_RTC_CTL1,
305 rc5t583_rtc->irqen); 302 rc5t583_rtc->irqen);
306} 303}
307
308static const struct dev_pm_ops rc5t583_rtc_pm_ops = {
309 .suspend = rc5t583_rtc_suspend,
310 .resume = rc5t583_rtc_resume,
311};
312
313#define DEV_PM_OPS (&rc5t583_rtc_pm_ops)
314#else
315#define DEV_PM_OPS NULL
316#endif 304#endif
317 305
306static SIMPLE_DEV_PM_OPS(rc5t583_rtc_pm_ops, rc5t583_rtc_suspend,
307 rc5t583_rtc_resume);
308
318static struct platform_driver rc5t583_rtc_driver = { 309static struct platform_driver rc5t583_rtc_driver = {
319 .probe = rc5t583_rtc_probe, 310 .probe = rc5t583_rtc_probe,
320 .remove = rc5t583_rtc_remove, 311 .remove = rc5t583_rtc_remove,
321 .driver = { 312 .driver = {
322 .owner = THIS_MODULE, 313 .owner = THIS_MODULE,
323 .name = "rtc-rc5t583", 314 .name = "rtc-rc5t583",
324 .pm = DEV_PM_OPS, 315 .pm = &rc5t583_rtc_pm_ops,
325 }, 316 },
326}; 317};
327 318