rtc: ds1307: Fix relying on reset value for weekday
authorKeerthy <j-keerthy@ti.com>
Wed, 1 Jun 2016 10:49:07 +0000 (16:19 +0530)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Sat, 9 Jul 2016 08:24:44 +0000 (10:24 +0200)
commite29385fab0bf94017fac130ee32f5bb2daf74417
tree8541a455ce5697bfc01ec92580995d06dda808c8
parentcd9b518b98d3e989f523e63b2ffda78467a3679e
rtc: ds1307: Fix relying on reset value for weekday

The reset value of weekday is 0x1. This is wrong since
the reset values of the day/month/year make up to Jan 1 2001.
When computed weekday comes out to be Monday. On a scale
of 1-7(Sunday - Saturday) it should be 0x2. So we should not
be relying on the reset value.

Hence compute the wday using the current date/month/year values.
Check if reset wday is any different from the computed wday,
If different then set the wday which we computed using
date/month/year values.

Document Referred:
http://ww1.microchip.com/downloads/en/DeviceDoc/20002266F.pdf

Fixes: 1d1945d261a2af "drivers/rtc/rtc-ds1307.c: add alarm support for mcp7941x chips"
Signed-off-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
drivers/rtc/rtc-ds1307.c