rtc: rv3029: convert to devm_rtc_allocate_device
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Sat, 14 Dec 2019 22:10:18 +0000 (23:10 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Wed, 18 Dec 2019 09:38:06 +0000 (10:38 +0100)
This allows further improvement of the driver.

Link: https://lore.kernel.org/r/20191214221022.622482-13-alexandre.belloni@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-rv3029c2.c

index afe1d3bb60846657de08766a79d9a454051f2441..686a0d0e212abd4f402a4d79a9d8325cfe2ee968 100644 (file)
@@ -731,12 +731,9 @@ static int rv3029_probe(struct device *dev, struct regmap *regmap, int irq,
        rv3029_trickle_config(dev);
        rv3029_hwmon_register(dev, name);
 
-       rv3029->rtc = devm_rtc_device_register(dev, name, &rv3029_rtc_ops,
-                                              THIS_MODULE);
-       if (IS_ERR(rv3029->rtc)) {
-               dev_err(dev, "unable to register the class device\n");
+       rv3029->rtc = devm_rtc_allocate_device(dev);
+       if (IS_ERR(rv3029->rtc))
                return PTR_ERR(rv3029->rtc);
-       }
 
        if (rv3029->irq > 0) {
                rc = devm_request_threaded_irq(dev, rv3029->irq,
@@ -753,7 +750,9 @@ static int rv3029_probe(struct device *dev, struct regmap *regmap, int irq,
                }
        }
 
-       return 0;
+       rv3029->rtc->ops = &rv3029_rtc_ops;
+
+       return rtc_register_device(rv3029->rtc);
 }
 
 static const struct regmap_range rv3029_holes_range[] = {