RTC: LPC32xx: Improve RTC invalid state detection
authorKevin Wells <wellsk40@gmail.com>
Mon, 10 Jan 2011 22:30:44 +0000 (14:30 -0800)
committerKevin Wells <wellsk40@gmail.com>
Mon, 10 Jan 2011 22:30:44 +0000 (14:30 -0800)
commit51e3805546b5860c4d346e3dfd1ba02d8c62c249
treefbb7396c9382e32b7d046f4f739fd9e808ac622b
parent9f14a5a11770aa68186e83e4b7a066d7d986876a
RTC: LPC32xx: Improve RTC invalid state detection

When a power cut of few seconds occurs (time depending on the board power
stage), RTC SRAM can be corrupted. When the RTC voltage starts to deteriorate,
bits in the RTC register change state. But if the key register stays valid and
other bits in the RTC like the up/down time change and the system is repowered
on with the key register still valid, the software will think the RTC is ok.

In these cases, you can see some weird dates like 2035, 1982, ...

This patch uses the down counter value to validate the up counter one (it must
be equal to u32 inverted up counter value). If values don't match, it reset
both counters.

Signed-off by: Martin Chaplet <m.chaplet@kernlink.fr>
drivers/rtc/rtc-lpc32xx.c