It is a BCD RTC with 4 digits for the year.

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

diff --git a/drivers/rtc/rtc-opal.c b/drivers/rtc/rtc-opal.c
index 7b9f8bcf86fe..c586f695bdc9 100644
--- a/drivers/rtc/rtc-opal.c
+++ b/drivers/rtc/rtc-opal.c
@@ -233,6 +233,10 @@ static int opal_rtc_probe(struct platform_device *pdev)
 {
        struct rtc_device *rtc;
 
+       rtc = devm_rtc_allocate_device(&pdev->dev);
+       if (IS_ERR(rtc))
+               return PTR_ERR(rtc);
+
        if (pdev->dev.of_node &&
            (of_property_read_bool(pdev->dev.of_node, "wakeup-source") ||
             of_property_read_bool(pdev->dev.of_node, "has-tpo")/* legacy */)) {
@@ -242,14 +246,12 @@ static int opal_rtc_probe(struct platform_device *pdev)
                opal_rtc_ops.alarm_irq_enable = opal_tpo_alarm_irq_enable;
        }
 
-       rtc = devm_rtc_device_register(&pdev->dev, DRVNAME, &opal_rtc_ops,
-                                      THIS_MODULE);
-       if (IS_ERR(rtc))
-               return PTR_ERR(rtc);
-
+       rtc->ops = &opal_rtc_ops;
+       rtc->range_min = RTC_TIMESTAMP_BEGIN_0000;
+       rtc->range_max = RTC_TIMESTAMP_END_9999;
        rtc->uie_unsupported = 1;
 
-       return 0;
+       return devm_rtc_register_device(rtc);
 }
 
 static const struct of_device_id opal_rtc_match[] = {
-- 
2.29.2

Reply via email to