OSDN Git Service

rtc: da9063: switch to RTC_FEATURE_UPDATE_INTERRUPT
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 9 Nov 2021 23:47:50 +0000 (00:47 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 30 Nov 2021 23:24:03 +0000 (00:24 +0100)
Stop using uie_unsupported and clear RTC_FEATURE_UPDATE_INTERRUPT instead.
Also, let the core know that the alarm will truncate seconds as it only has
a minute resolution.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Link: https://lore.kernel.org/r/20211109234750.107115-1-alexandre.belloni@bootlin.com
drivers/rtc/rtc-da9063.c

index d4b72a9..54a5e24 100644 (file)
@@ -475,12 +475,14 @@ static int da9063_rtc_probe(struct platform_device *pdev)
        da9063_data_to_tm(data, &rtc->alarm_time, rtc);
        rtc->rtc_sync = false;
 
-       /*
-        * TODO: some models have alarms on a minute boundary but still support
-        * real hardware interrupts. Add this once the core supports it.
-        */
-       if (config->rtc_data_start != RTC_SEC)
-               rtc->rtc_dev->uie_unsupported = 1;
+       if (config->rtc_data_start != RTC_SEC) {
+               set_bit(RTC_FEATURE_ALARM_RES_MINUTE, rtc->rtc_dev->features);
+               /*
+                * TODO: some models have alarms on a minute boundary but still
+                * support real hardware interrupts.
+                */
+               clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, rtc->rtc_dev->features);
+       }
 
        irq_alarm = platform_get_irq_byname(pdev, "ALARM");
        if (irq_alarm < 0)