]> Pileus Git - ~andy/linux/commit
watchdog: at91sam9_wdt: better watchdog support
authorBoris BREZILLON <b.brezillon@overkiz.com>
Fri, 4 Oct 2013 07:24:12 +0000 (09:24 +0200)
committerWim Van Sebroeck <wim@iguana.be>
Tue, 28 Jan 2014 20:28:37 +0000 (21:28 +0100)
commit5161b31dc39a6d6dadc95f298de48a725b73ada8
tree9975955af8b4387f98d9e6e7bfed31e2a215e546
parente30722e49783ed5ea56b5737a2821d022c4e915e
watchdog: at91sam9_wdt: better watchdog support

The at91sam9 watchdog timer can only be configured once, and the current
implementation tries to configure it in a static way:
- 2 seconds timeout
- wdt restart every 500ms

If the timer has already been configured with different values, it returns an
error and do not create any watchdog device.

This is not critical if the watchdog is disabled, but if it has been enabled with
different timeout values it will lead to a SoC reset.

This patch series tries to address this issue by adapting the heartbeat value
according the WDT timer config:
- it first tries to configure the timer as requested.
- if it fails it fallbacks to the current config, adapting its heartbeat timer
to the needs

This patch series also move to a dynamically allocated at91wdt device instead
of the static instance.

It adds a new at91 wdt type: software. This new type make use of the at91 wdt
interrupt to trigger a software reboot.

Finally it adds several properties to the device tree bindings.

Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/at91sam9_wdt.c