Skip to content

Commit a1495a2

Browse files
TooniisWim Van Sebroeck
authored andcommitted
watchdog: mediatek: Make sure system reset gets asserted in mtk_wdt_restart()
Clear the IRQ enable bit of WDT_MODE before asserting software reset in order to make TOPRGU issue a system reset signal instead of an IRQ. Fixes: a44a455 ("watchdog: Add driver for Mediatek watchdog") Signed-off-by: Yassine Oudjana <[email protected]> Reviewed-by: AngeloGioacchino Del Regno <[email protected]> Reviewed-by: Guenter Roeck <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Wim Van Sebroeck <[email protected]>
1 parent f6fe9b6 commit a1495a2

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

drivers/watchdog/mtk_wdt.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,15 @@ static int mtk_wdt_restart(struct watchdog_device *wdt_dev,
225225
{
226226
struct mtk_wdt_dev *mtk_wdt = watchdog_get_drvdata(wdt_dev);
227227
void __iomem *wdt_base;
228+
u32 reg;
228229

229230
wdt_base = mtk_wdt->wdt_base;
230231

232+
/* Enable reset in order to issue a system reset instead of an IRQ */
233+
reg = readl(wdt_base + WDT_MODE);
234+
reg &= ~WDT_MODE_IRQ_EN;
235+
writel(reg | WDT_MODE_KEY, wdt_base + WDT_MODE);
236+
231237
while (1) {
232238
writel(WDT_SWRST_KEY, wdt_base + WDT_SWRST);
233239
mdelay(5);

0 commit comments

Comments
 (0)