• Boris BREZILLON's avatar
    watchdog: at91sam9_wdt: better watchdog support · 5161b31d
    Boris BREZILLON authored
    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: default avatarBoris BREZILLON <b.brezillon@overkiz.com>
    Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
    5161b31d
at91sam9_wdt.c 9.77 KB