package: add fitblk util to release /dev/fit* devices
[openwrt/staging/wigyori.git] / target / linux / mediatek / patches-5.15 / 920-v5.16-watchdog-mtk-add-disable_wdt_extrst-support.patch
1 From 59b0f51335644ee603260faaa4298c0115fb7187 Mon Sep 17 00:00:00 2001
2 From: Fengquan Chen <Fengquan.Chen@mediatek.com>
3 Date: Tue, 14 Sep 2021 20:34:54 +0800
4 Subject: [PATCH] watchdog: mtk: add disable_wdt_extrst support
5
6 In some cases, we may need watchdog just to trigger an
7 internal soc reset without sending any output signal.
8
9 Provide a disable_wdt_extrst parameter for configuration.
10 We can disable or enable it just by configuring dts.
11
12 Signed-off-by: Fengquan Chen <fengquan.chen@mediatek.com>
13 Reviewed-by: Guenter Roeck <linux@roeck-us.net>
14 Link: https://lore.kernel.org/r/20210914123454.32603-3-Fengquan.Chen@mediatek.com
15 Signed-off-by: Guenter Roeck <linux@roeck-us.net>
16 Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
17 ---
18 drivers/watchdog/mtk_wdt.c | 7 +++++++
19 1 file changed, 7 insertions(+)
20
21 --- a/drivers/watchdog/mtk_wdt.c
22 +++ b/drivers/watchdog/mtk_wdt.c
23 @@ -65,6 +65,7 @@ struct mtk_wdt_dev {
24 void __iomem *wdt_base;
25 spinlock_t lock; /* protects WDT_SWSYSRST reg */
26 struct reset_controller_dev rcdev;
27 + bool disable_wdt_extrst;
28 };
29
30 struct mtk_wdt_data {
31 @@ -256,6 +257,8 @@ static int mtk_wdt_start(struct watchdog
32 reg |= (WDT_MODE_IRQ_EN | WDT_MODE_DUAL_EN);
33 else
34 reg &= ~(WDT_MODE_IRQ_EN | WDT_MODE_DUAL_EN);
35 + if (mtk_wdt->disable_wdt_extrst)
36 + reg &= ~WDT_MODE_EXRST_EN;
37 reg |= (WDT_MODE_EN | WDT_MODE_KEY);
38 iowrite32(reg, wdt_base + WDT_MODE);
39
40 @@ -381,6 +384,10 @@ static int mtk_wdt_probe(struct platform
41 if (err)
42 return err;
43 }
44 +
45 + mtk_wdt->disable_wdt_extrst =
46 + of_property_read_bool(dev->of_node, "mediatek,disable-extrst");
47 +
48 return 0;
49 }
50