Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d29baef0 authored by Eugen Hristev's avatar Eugen Hristev Committed by Greg Kroah-Hartman
Browse files

watchdog: sama5d4: fix WDD value to be always set to max



commit 8632944841d41a36d77dd1fa88d4201b5291100f upstream.

WDD value must be always set to max (0xFFF) otherwise the hardware
block will reset the board on the first ping of the watchdog.

Signed-off-by: default avatarEugen Hristev <eugen.hristev@microchip.com>
Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarWim Van Sebroeck <wim@linux-watchdog.org>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e91cce02
Loading
Loading
Loading
Loading
+1 −3
Original line number Original line Diff line number Diff line
@@ -111,9 +111,7 @@ static int sama5d4_wdt_set_timeout(struct watchdog_device *wdd,
	u32 value = WDT_SEC2TICKS(timeout);
	u32 value = WDT_SEC2TICKS(timeout);


	wdt->mr &= ~AT91_WDT_WDV;
	wdt->mr &= ~AT91_WDT_WDV;
	wdt->mr &= ~AT91_WDT_WDD;
	wdt->mr |= AT91_WDT_SET_WDV(value);
	wdt->mr |= AT91_WDT_SET_WDV(value);
	wdt->mr |= AT91_WDT_SET_WDD(value);


	/*
	/*
	 * WDDIS has to be 0 when updating WDD/WDV. The datasheet states: When
	 * WDDIS has to be 0 when updating WDD/WDV. The datasheet states: When
@@ -251,7 +249,7 @@ static int sama5d4_wdt_probe(struct platform_device *pdev)


	timeout = WDT_SEC2TICKS(wdd->timeout);
	timeout = WDT_SEC2TICKS(wdd->timeout);


	wdt->mr |= AT91_WDT_SET_WDD(timeout);
	wdt->mr |= AT91_WDT_SET_WDD(WDT_SEC2TICKS(MAX_WDT_TIMEOUT));
	wdt->mr |= AT91_WDT_SET_WDV(timeout);
	wdt->mr |= AT91_WDT_SET_WDV(timeout);


	ret = sama5d4_wdt_init(wdt);
	ret = sama5d4_wdt_init(wdt);