[ Upstream commit 882c5e552ffd06856de42261460f46e18319d259 ] The DA9063AD doesn't support alarms on any seconds and its granularity is the minute. Set uie_unsupported in that case.
Reported-by: Wolfram Sang <wsa+rene...@sang-engineering.com> Reported-by: Geert Uytterhoeven <geert+rene...@glider.be> Reviewed-by: Wolfram Sang <wsa+rene...@sang-engineering.com> Tested-by: Wolfram Sang <wsa+rene...@sang-engineering.com> Acked-by: Steve Twiss <stwiss.opensou...@diasemi.com> Signed-off-by: Alexandre Belloni <alexandre.bell...@bootlin.com> Signed-off-by: Sasha Levin <sas...@kernel.org> --- drivers/rtc/rtc-da9063.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/rtc/rtc-da9063.c b/drivers/rtc/rtc-da9063.c index f85cae240f12..7e92e491c2e7 100644 --- a/drivers/rtc/rtc-da9063.c +++ b/drivers/rtc/rtc-da9063.c @@ -480,6 +480,13 @@ 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; + irq_alarm = platform_get_irq_byname(pdev, "ALARM"); ret = devm_request_threaded_irq(&pdev->dev, irq_alarm, NULL, da9063_alarm_event, -- 2.20.1