rtc: rx8010: switch to using the preferred RTC API
authorBartosz Golaszewski <bgolaszewski@baylibre.com>
Mon, 14 Sep 2020 15:45:58 +0000 (17:45 +0200)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 15 Sep 2020 08:50:38 +0000 (10:50 +0200)
Use devm_rtc_allocate_device() + rtc_register_device() instead of the
deprecated devm_rtc_device_register().

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20200914154601.32245-12-brgl@bgdev.pl
drivers/rtc/rtc-rx8010.c

index aa357f8..6aeed38 100644 (file)
@@ -418,7 +418,6 @@ static int rx8010_probe(struct i2c_client *client,
                        const struct i2c_device_id *id)
 {
        struct i2c_adapter *adapter = client->adapter;
-       const struct rtc_class_ops *rtc_ops;
        struct device *dev = &client->dev;
        struct rx8010_data *rx8010;
        int err = 0;
@@ -440,6 +439,10 @@ static int rx8010_probe(struct i2c_client *client,
        if (err)
                return err;
 
+       rx8010->rtc = devm_rtc_allocate_device(dev);
+       if (IS_ERR(rx8010->rtc))
+               return PTR_ERR(rx8010->rtc);
+
        if (client->irq > 0) {
                dev_info(dev, "IRQ %d supplied\n", client->irq);
                err = devm_request_threaded_irq(dev, client->irq, NULL,
@@ -451,21 +454,14 @@ static int rx8010_probe(struct i2c_client *client,
                        return err;
                }
 
-               rtc_ops = &rx8010_rtc_ops_alarm;
+               rx8010->rtc->ops = &rx8010_rtc_ops_alarm;
        } else {
-               rtc_ops = &rx8010_rtc_ops_default;
-       }
-
-       rx8010->rtc = devm_rtc_device_register(dev, client->name,
-                                              rtc_ops, THIS_MODULE);
-       if (IS_ERR(rx8010->rtc)) {
-               dev_err(dev, "unable to register the class device\n");
-               return PTR_ERR(rx8010->rtc);
+               rx8010->rtc->ops = &rx8010_rtc_ops_default;
        }
 
        rx8010->rtc->max_user_freq = 1;
 
-       return 0;
+       return rtc_register_device(rx8010->rtc);
 }
 
 static struct i2c_driver rx8010_driver = {