RE: [PATCH v2] rtc: da9063: add as wakeup source

From: Adam Thomson
Date: Fri Nov 26 2021 - 04:52:28 EST


On 26 November 2021 09:10, Nikita Shubin wrote:

> > Can you please make the commit message more detailed, explaining why
> > you're making this change; what it adds/fixes/removes/etc.? Right now
> > just reading this I'm unclear as to why you're adding a call to
> > device_init_wakeup() here. The generic I2C client code will mark the
> > parent MFD device as a wake source, if the relevant boolean 'wakeup'
> > is defined in DT, so what does this add?
>
> Sorry for long response had to double check setting wakeup-source in
> case i have missed something.
>
> I2C_CLIENT_WAKE is set in of_i2c_get_board_info - the place da9063 rtc
> would never get to.
>
> Setting "wakeup-source" for pmic indeed marks it as wakeup source, but
> that's not exactly we want.
>
> What we want is "wakealarm" in RTC sysfs directory, to be able to set
> alarm so we can wake up from SHUTDOWN/DELIVERY/RTC mode of da9063.
>
> We do have /sys/class/rtc/rtc0/wakealarm if marking da9063-rtc as
> device_init_wakeup.
>
> Unfortunately marking pmic or rtc as wakeup-source in device tree gives
> us nothing.
>
> ls /proc/device-tree/soc/i2c\@10030000/pmic\@58/
> compatible interrupt-parent name regulators wakeup-source
> interrupt-controller interrupts reg rtc wdt
>
> ls /proc/device-tree/soc/i2c\@10030000/pmic\@58/rtc/
> compatible name wakeup-source
>
> ls /sys/class/rtc/rtc0/wakealarm
> ls: cannot access '/sys/class/rtc/rtc0/wakealarm': No such file or
> directory
>
> So i currently see that either da9063 RTC should be marked as wakeup
> source, or the da9063 MFD should somehow set that for RTC.
>
> And we want this even if CONFIG_PM is off.
>
> Mentioning "/sys/class/rtc/rtc0/wakealarm" in commit message would be
> enough ?

Thanks for the detailed response; it helped a lot. Having reviewed the core code
along with your description I know understand what's happening here. Basically
marking as 'wakeup-source' is simply a means to expose the sysfs attribute to
user-space.

Yes I think in the commit message you should be clear that there's a need to
access the sys attribute 'wakealarm' in the RTC core and clarify exactly why
there is that need. Your commit log should be good enough so that if anyone else
needs to look at this later they completely understand the intention behind the
change.

By the way, I assume the functionality you're looking for could also have been
achieved through using the /dev/rtcX instance for DA9063?