Re: [PATCH v2 1/3] dt-bindings: rtc: pcf8523: add DSM pm option for battery switch-over
From: Russell King - ARM Linux admin
Date: Mon Jul 27 2020 - 11:24:50 EST
On Mon, Jul 27, 2020 at 04:49:38PM +0200, Alexandre Belloni wrote:
> On 27/07/2020 10:45:53+0100, Russell King - ARM Linux admin wrote:
> > > This is but this shouldn't be a DT property as it has to be changed
> > > dynamically. I'm working on an ioctl interface to change this
> > > configuration.
> > Why does it need to be changed dynamically? If the hardware components
> > are not fitted to allow the RTC to be safely used without DSM, then
> > why should userspace be able to disable DSM?
> For RTCs with a standby mode, you want to be able to return to standby
> That would happen for example after factory flashing in that common use
> - the board is manufactured
> - Vbackup is installed, the RTC switches to standby mode
> - the board is then booted to flash a system, Vprimary is now present,
> the RTC switches to DSM.
> At this point, if the board is simply shut down, the RTC will start
> draining Vbackup before leaving the factory. Instead, we want to be able
> to return to standby mode until the final user switches the product on
> for the first time.
I don't think you're understanding what's going on with this proposed
patch. The cubox-i does work today, and the RTC does survive most
power-downs. There are situations where it doesn't.
So, let's take your process above.
- the board is manufactured
- Vbackup is installed, the RTC switches to standby mode
- the board is then booted to flash a system, Vprimary is now present
- the board is powered down. the RTC _might_ switch over to battery
if it notices the power failure in time, or it might not. A random
sample of units leaving the factory have the RTC in standby mode.
Others are draining the battery.
I'm not saying what you propose isn't a good idea. I'm questioning
why we should expose this in the generic kernel on platforms where
it's likely to end up with the RTC being corrupted.
Now, I question your idea that units should leave the factory without
the RTC being programmed. We know that lovely systemd goes utterly
bonkers if the system time is beyond INT_MAX. If the RTC leaves
standby mode containing a date which we translate beyond INT_MAX,
systemd will refuse to boot the system, and the user will have no
way to set the correct time. The user returns the device to the
supplier as faulty...
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!