[PATCH v2] rtc: ds1307: Handle oscillator-stop bit correctly
trini at konsulko.com
Wed Oct 13 16:16:33 CEST 2021
On Tue, Sep 28, 2021 at 10:10:42AM +1300, Mark Tomlinson wrote:
> The DS1307 driver was originally based on the DS1337 driver. However,
> the functionality of the clock set/get functions has diverged. In the
> original DS1337 driver, the set/get functions did the following:
> 1) Setting the clock ensured the oscillator was enabled.
> 2) Getting the clock checked and reset the oscillator-stop flag.
> The DS1307 does not have an oscillator-stop flag, but the driver tried
> (incorrectly) to emulate this by ensuring the oscillator was running. It
> really makes no sense to start a stopped clock without setting it.
> This patch makes the DS1307 driver behave like the original DS1337
> driver again. For the DS1307 itself, this is just a removal of code,
> since there is no oscillator-fail bit to check or reset, and the clock
> is started when it is set. Since the DS1307 driver can now also be used
> for the DS1337 and DS1340 which do have this bit, add code to handle the
> oscillator-stop bit in the same was the original DS1337 driver did --
> i.e. report that the oscillator had stopped and clear the flag.
> This means that setting the date using the date command (which does both
> a get and a set) will now clear the oscillator-stop flag in addition to
> setting and starting the clock.
> The old-style (non-DM) code has not been updated and will be removed in
> a future patch. Note that this older code does not support the DS1337,
> as there is a separate driver for this. Also note that the original (DM)
> code used the wrong control-register address for the DS1337.
> Signed-off-by: Mark Tomlinson <mark.tomlinson at alliedtelesis.co.nz>
Applied to u-boot/master, thanks!
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 659 bytes
Desc: not available
More information about the U-Boot