diff options
author | Tom Rini <trini@ti.com> | 2013-08-28 09:00:29 -0400 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2013-11-01 15:30:22 -0400 |
commit | 22ee39750431c0695497ffab412bb29564c68a80 (patch) | |
tree | 851319e134dc2ee56775eed3b86c0659d6e8f457 /drivers | |
parent | 155d424a9a0228e2f38ce21a92b20c31896d61d2 (diff) | |
download | u-boot-imx-22ee39750431c0695497ffab412bb29564c68a80.zip u-boot-imx-22ee39750431c0695497ffab412bb29564c68a80.tar.gz u-boot-imx-22ee39750431c0695497ffab412bb29564c68a80.tar.bz2 |
bootcount_davinci: Switch to scratch register #2
The RTC IP block here provides 3 scratch registers. Currently when
using DeepSleep on am335x the scratch0/1 registers are used so moving
ourself to scratch2 makes cooperation easier.
Signed-off-by: Tom Rini <trini@ti.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/bootcount/bootcount_davinci.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/bootcount/bootcount_davinci.c b/drivers/bootcount/bootcount_davinci.c index eddd940..f0acfad 100644 --- a/drivers/bootcount/bootcount_davinci.c +++ b/drivers/bootcount/bootcount_davinci.c @@ -20,17 +20,19 @@ void bootcount_store(ulong a) */ writel(RTC_KICK0R_WE, ®->kick0r); writel(RTC_KICK1R_WE, ®->kick1r); - raw_bootcount_store(®->scratch0, a); - raw_bootcount_store(®->scratch1, BOOTCOUNT_MAGIC); + raw_bootcount_store(®->scratch2, + (BOOTCOUNT_MAGIC & 0xffff0000) | (a & 0x0000ffff)); } ulong bootcount_load(void) { + unsigned long val; struct davinci_rtc *reg = (struct davinci_rtc *)CONFIG_SYS_BOOTCOUNT_ADDR; - if (raw_bootcount_load(®->scratch1) != BOOTCOUNT_MAGIC) + val = raw_bootcount_load(®->scratch2); + if ((val & 0xffff0000) != (BOOTCOUNT_MAGIC & 0xffff0000)) return 0; else - return raw_bootcount_load(®->scratch0); + return val & 0x0000ffff; } |