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 <[email protected]>
Applied to u-boot/master, thanks! -- Tom
signature.asc
Description: PGP signature

