rtc: mc13xxx: set range
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 16 Apr 2019 08:33:05 +0000 (10:33 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 16 Apr 2019 16:06:49 +0000 (18:06 +0200)
All supported PMICs have a 15 bits days counter and hours, minutes, seconds

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-mc13xxx.c

index 0fa33708fc49eeba5e0c92c35cde5e31409bccce..5c2862fcb2df3447dad425e3b076554b479b5858 100644 (file)
@@ -285,8 +285,15 @@ static int __init mc13xxx_rtc_probe(struct platform_device *pdev)
        priv->mc13xxx = mc13xxx;
        priv->valid = 1;
 
+       priv->rtc = devm_rtc_allocate_device(&pdev->dev);
+       if (IS_ERR(priv->rtc))
+               return PTR_ERR(priv->rtc);
        platform_set_drvdata(pdev, priv);
 
+       priv->rtc->ops = &mc13xxx_rtc_ops;
+       /* 15bit days + hours, minutes, seconds */
+       priv->rtc->range_max = (timeu64_t)(1 << 15) * SEC_PER_DAY - 1;
+
        mc13xxx_lock(mc13xxx);
 
        mc13xxx_irq_ack(mc13xxx, MC13XXX_IRQ_RTCRST);
@@ -303,8 +310,9 @@ static int __init mc13xxx_rtc_probe(struct platform_device *pdev)
 
        mc13xxx_unlock(mc13xxx);
 
-       priv->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
-                                            &mc13xxx_rtc_ops, THIS_MODULE);
+       ret = rtc_register_device(priv->rtc);
+       if (ret)
+               goto err_irq_request;
 
        return 0;