Hi, 02 April 2019 09:53 Alexandre Belloni, wrote: > Subject: Re: [PATCH 1/2] rtc: da9063: set range > On 01/04/2019 21:34:25+0200, Wolfram Sang wrote: > > > > Thanks for your assistance! What I did just now was to make use of the > > 'uie_unsupported' flag. This is the outcome: [...] > > I wonder why the_set_minute tests pass, but the other ones fail. > > [...] > > I also wonder why all this works fine for Steve. > > > > I had a look at the driver and I guess you have a 9063AD while Steve > uses another model. That would be my immediate guess also. https://elixir.bootlin.com/linux/v5.1-rc3/source/include/linux/mfd/da9063/core.h#L39 Reading the PMIC register 0x182 and examining the 4 highest bits of that value will provide the variant code for the DA9063. > That explains why you need the uie_unsupported flag. The 9063AD can only > do alarms on a minute boundary. For AD, alarms only happen to the minute boundary (i.e. alarms to 0 seconds only) https://elixir.bootlin.com/linux/v5.1-rc3/source/drivers/rtc/rtc-da9063.c#L84 Whereas, BB and greater can alarm to any of the second values 0-59 https://elixir.bootlin.com/linux/v5.1-rc3/source/drivers/rtc/rtc-da9063.c#L113 I can confirm that I was only running my previous regression tests with a BB and CA compliant silicon version. I didn't even think to mention what variant I was testing with. [...] > I suggest the following patch: > > === > > From 37b2ab7d537e76e42bde64cf4b57701b0ed8e8cd Mon Sep 17 00:00:00 2001 > From: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> > Date: Tue, 2 Apr 2019 10:06:46 +0200 > Subject: [PATCH] rtc: da9063: set uie_unsupported when relevant > > 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@xxxxxxxxxxxxx> > Reported-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> > Signed-off-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> > --- > drivers/rtc/rtc-da9063.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/rtc/rtc-da9063.c b/drivers/rtc/rtc-da9063.c > index 1b792bcea3c7..53e690b0f3a2 100644 > --- a/drivers/rtc/rtc-da9063.c > +++ b/drivers/rtc/rtc-da9063.c > @@ -475,6 +475,9 @@ static int da9063_rtc_probe(struct platform_device > *pdev) > da9063_data_to_tm(data, &rtc->alarm_time, rtc); > rtc->rtc_sync = false; > > + 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, Thanks Alexandre, Acked-by: Steve Twiss <stwiss.opensource@xxxxxxxxxxx> Apologies, I am unable to test this on DA9063 AD silicon since I no longer have that variant. Regards, Steve