rtc: pcf2123: convert to devm_rtc_allocate_device
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Mon, 19 Aug 2019 18:26:54 +0000 (20:26 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 20 Aug 2019 19:42:15 +0000 (21:42 +0200)
This allows further improvement of the driver. Also remove the unecessary
error string as the core will already display error messages.

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

index aef0219..fd326fd 100644 (file)
@@ -408,17 +408,12 @@ static int pcf2123_probe(struct spi_device *spi)
                        (spi->max_speed_hz + 500) / 1000);
 
        /* Finalize the initialization */
-       rtc = devm_rtc_device_register(&spi->dev, pcf2123_driver.driver.name,
-                       &pcf2123_rtc_ops, THIS_MODULE);
-
-       if (IS_ERR(rtc)) {
-               dev_err(&spi->dev, "failed to register.\n");
+       rtc = devm_rtc_allocate_device(&spi->dev);
+       if (IS_ERR(rtc))
                return PTR_ERR(rtc);
-       }
 
        pcf2123->rtc = rtc;
 
-
        /* Register alarm irq */
        if (spi->irq > 0) {
                ret = devm_request_threaded_irq(&spi->dev, spi->irq, NULL,
@@ -435,7 +430,12 @@ static int pcf2123_probe(struct spi_device *spi)
         * support to this driver to generate interrupts more than once
         * per minute.
         */
-       pcf2123->rtc->uie_unsupported = 1;
+       rtc->uie_unsupported = 1;
+       rtc->ops = &pcf2123_rtc_ops;
+
+       ret = rtc_register_device(rtc);
+       if (ret)
+               return ret;
 
        return 0;
 }