]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
rtc: pcf8563: convert to devm_rtc_allocate_device
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 29 Aug 2019 21:25:45 +0000 (23:25 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Sun, 1 Sep 2019 07:18:46 +0000 (09:18 +0200)
This allows further improvement of the driver.

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

index 1b452da75eb80379aa99aeb58b639eba4c4f5e27..0e375e19c1499d49d18bb4767c650590d79cf322 100644 (file)
@@ -591,13 +591,14 @@ static int pcf8563_probe(struct i2c_client *client,
                return err;
        }
 
-       pcf8563->rtc = devm_rtc_device_register(&client->dev,
-                               pcf8563_driver.driver.name,
-                               &pcf8563_rtc_ops, THIS_MODULE);
-
+       pcf8563->rtc = devm_rtc_allocate_device(&client->dev);
        if (IS_ERR(pcf8563->rtc))
                return PTR_ERR(pcf8563->rtc);
 
+       pcf8563->rtc->ops = &pcf8563_rtc_ops;
+       /* the pcf8563 alarm only supports a minute accuracy */
+       pcf8563->rtc->uie_unsupported = 1;
+
        if (client->irq > 0) {
                err = devm_request_threaded_irq(&client->dev, client->irq,
                                NULL, pcf8563_irq,
@@ -608,17 +609,17 @@ static int pcf8563_probe(struct i2c_client *client,
                                                                client->irq);
                        return err;
                }
-
        }
 
+       err = rtc_register_device(pcf8563->rtc);
+       if (err)
+               return err;
+
 #ifdef CONFIG_COMMON_CLK
        /* register clk in common clk framework */
        pcf8563_clkout_register_clk(pcf8563);
 #endif
 
-       /* the pcf8563 alarm only supports a minute accuracy */
-       pcf8563->rtc->uie_unsupported = 1;
-
        return 0;
 }