This allows for future improvement of the driver.

Signed-off-by: Alexandre Belloni <alexandre.bell...@bootlin.com>
---
 drivers/rtc/rtc-ds1343.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/rtc/rtc-ds1343.c b/drivers/rtc/rtc-ds1343.c
index b5102cdd7f61..a5a5a363c6e1 100644
--- a/drivers/rtc/rtc-ds1343.c
+++ b/drivers/rtc/rtc-ds1343.c
@@ -642,12 +642,15 @@ static int ds1343_probe(struct spi_device *spi)
        data &= ~(DS1343_OSF | DS1343_IRQF1 | DS1343_IRQF0);
        regmap_write(priv->map, DS1343_STATUS_REG, data);
 
-       priv->rtc = devm_rtc_device_register(&spi->dev, "ds1343",
-                                       &ds1343_rtc_ops, THIS_MODULE);
-       if (IS_ERR(priv->rtc)) {
-               dev_err(&spi->dev, "unable to register rtc ds1343\n");
+       priv->rtc = devm_rtc_allocate_device(&spi->dev);
+       if (IS_ERR(priv->rtc))
                return PTR_ERR(priv->rtc);
-       }
+
+       priv->rtc->ops = &ds1343_rtc_ops;
+
+       res = rtc_register_device(priv->rtc);
+       if (res)
+               return res;
 
        priv->irq = spi->irq;
 
-- 
2.16.1

Reply via email to