From: Jean-Christophe PLAGNIOL-VILLARD Date: Wed, 22 Oct 2008 23:49:44 +0200 Subject: [U-Boot] [PATCH] Hardware watchdog support for AT91SAM9260 CPU In-Reply-To: <12187529674144-git-send-email-slapin@ossfans.org> References: <12187529674144-git-send-email-slapin@ossfans.org> Message-ID: <20081022214944.GE15487@game.jcrosoft.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 02:29 Fri 15 Aug , Sergey Lapin wrote: > > Signed-off-by: Sergey Lapin > --- > cpu/arm926ejs/at91/Makefile | 1 + > cpu/arm926ejs/at91/watchdog.c | 35 +++++++++++++++++++++++++++++++++++ > 2 files changed, 36 insertions(+), 0 deletions(-) > create mode 100644 cpu/arm926ejs/at91/watchdog.c > > diff --git a/cpu/arm926ejs/at91/Makefile b/cpu/arm926ejs/at91/Makefile > index 44cde1a..7befcd7 100644 > --- a/cpu/arm926ejs/at91/Makefile > +++ b/cpu/arm926ejs/at91/Makefile > @@ -29,6 +29,7 @@ COBJS-y += ether.o > COBJS-y += timer.o > COBJS-$(CONFIG_HAS_DATAFLASH) +=spi.o > COBJS-y += usb.o > +COBJS-$(CONFIG_HW_WATCHDOG) +=watchdog.o > SOBJS = lowlevel_init.o > > SRCS := $(SOBJS:.o=.S) $(COBJS-y:.o=.c) > diff --git a/cpu/arm926ejs/at91/watchdog.c b/cpu/arm926ejs/at91/watchdog.c > new file mode 100644 > index 0000000..da15268 > --- /dev/null > +++ b/cpu/arm926ejs/at91/watchdog.c > @@ -0,0 +1,35 @@ > +/* > + * watchdog.c - driver for at91sam9260 watchdog > + * This drivers can be used on all at91sam9 > + * Copyright (c) 2007-2008 Analog Devices Inc. Are you from ADI? > + * > + * Licensed under the GPL-2 or later. > + */ > + > +#include > +#include > +#include > +#include > + > +#ifdef CONFIG_HW_WATCHDOG no need please remove > +#define AT91_WDT_CR (AT91_WDT+0x00) ^ please add space arround '+' > +#define AT91_WDT_MR (AT91_WDT+0x04) > +#define AT91_WDT_SR (AT91_WDT+0x08) > + > +void hw_watchdog_reset(void) > +{ > + at91_sys_write(AT91_WDT_CR, 0xa5000001); ^^^^ please use macro you can import them from Linux > +} > + > +void hw_watchdog_init(void) > +{ > + /* 16 seconds timer, resets enabled */ > + at91_sys_write(AT91_WDT_MR, 0x3FFF2FFF); Ditto > +} > + > +void hw_watchdog_disable(void) > +{ > + /* Can't reenable per documentation */ > + at91_sys_write(AT91_WDT_MR, 0x8000); Ditto > +} > +#endif Best Regargds, J.