rtc: sprd: Change to use devm_rtc_allocate_device()
authorBaolin Wang <baolin.wang@linaro.org>
Thu, 26 Apr 2018 02:58:44 +0000 (10:58 +0800)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 3 May 2018 20:11:49 +0000 (22:11 +0200)
This is a preparation patch, changing to use devm_rtc_allocate_device()
that can allow driver to set 'range_max' and 'range_min' for the RTC
device.

Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-sc27xx.c

index 00d87d1..ac86322 100644 (file)
@@ -600,6 +600,10 @@ static int sprd_rtc_probe(struct platform_device *pdev)
                return rtc->irq;
        }
 
+       rtc->rtc = devm_rtc_allocate_device(&pdev->dev);
+       if (IS_ERR(rtc->rtc))
+               return PTR_ERR(rtc->rtc);
+
        rtc->dev = &pdev->dev;
        platform_set_drvdata(pdev, rtc);
 
@@ -626,10 +630,12 @@ static int sprd_rtc_probe(struct platform_device *pdev)
                return ret;
        }
 
-       rtc->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
-                                           &sprd_rtc_ops, THIS_MODULE);
-       if (IS_ERR(rtc->rtc))
-               return PTR_ERR(rtc->rtc);
+       rtc->rtc->ops = &sprd_rtc_ops;
+       ret = rtc_register_device(rtc->rtc);
+       if (ret) {
+               dev_err(&pdev->dev, "failed to register rtc device\n");
+               return ret;
+       }
 
        device_init_wakeup(&pdev->dev, 1);
        return 0;