aboutsummaryrefslogtreecommitdiff
path: root/configs/draco_defconfig
diff options
context:
space:
mode:
authorMark Tomlinson2021-09-28 10:10:42 +1300
committerTom Rini2021-10-12 16:49:21 -0400
commit07c652400d4e67cd11ada02b84c60e73bb031130 (patch)
treecf73c0cfe81457682aa662221a1f32af72fa3aa0 /configs/draco_defconfig
parent41130eb8937e43b2307fb67ebb60f0190fc01438 (diff)
rtc: ds1307: Handle oscillator-stop bit correctly
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@alliedtelesis.co.nz>
Diffstat (limited to 'configs/draco_defconfig')
0 files changed, 0 insertions, 0 deletions