rtc: at91sam9: convert to devm_rtc_allocate_device
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Wed, 20 Mar 2019 12:40:38 +0000 (13:40 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 4 Apr 2019 08:07:09 +0000 (10:07 +0200)
This allows further improvement of the driver.

Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-at91sam9.c

index 7ec114b..cbbf812 100644 (file)
@@ -418,13 +418,14 @@ static int at91_rtc_probe(struct platform_device *pdev)
        mr &= ~(AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN);
        rtt_writel(rtc, MR, mr);
 
-       rtc->rtcdev = devm_rtc_device_register(&pdev->dev, pdev->name,
-                                       &at91_rtc_ops, THIS_MODULE);
+       rtc->rtcdev = devm_rtc_allocate_device(&pdev->dev);
        if (IS_ERR(rtc->rtcdev)) {
                ret = PTR_ERR(rtc->rtcdev);
                goto err_clk;
        }
 
+       rtc->rtcdev->ops = &at91_rtc_ops;
+
        /* register irq handler after we know what name we'll use */
        ret = devm_request_irq(&pdev->dev, rtc->irq, at91_rtc_interrupt,
                               IRQF_SHARED | IRQF_COND_SUSPEND,
@@ -444,7 +445,7 @@ static int at91_rtc_probe(struct platform_device *pdev)
                dev_warn(&pdev->dev, "%s: SET TIME!\n",
                                dev_name(&rtc->rtcdev->dev));
 
-       return 0;
+       return rtc_register_device(rtc->rtcdev);
 
 err_clk:
        clk_disable_unprepare(rtc->sclk);