mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 06:57:57 +00:00
dabcaac443
It will be supported by the new filogic subtarget Signed-off-by: Sam Shih <sam.shih@mediatek.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
58 lines
1.7 KiB
Diff
58 lines
1.7 KiB
Diff
--- a/drivers/watchdog/mtk_wdt.c
|
|
+++ b/drivers/watchdog/mtk_wdt.c
|
|
@@ -9,6 +9,7 @@
|
|
* Based on sunxi_wdt.c
|
|
*/
|
|
|
|
+#include <dt-bindings/reset/mt7986-resets.h>
|
|
#include <dt-bindings/reset-controller/mt2712-resets.h>
|
|
#include <dt-bindings/reset-controller/mt8183-resets.h>
|
|
#include <dt-bindings/reset-controller/mt8192-resets.h>
|
|
@@ -65,6 +66,7 @@ struct mtk_wdt_dev {
|
|
void __iomem *wdt_base;
|
|
spinlock_t lock; /* protects WDT_SWSYSRST reg */
|
|
struct reset_controller_dev rcdev;
|
|
+ bool disable_wdt_extrst;
|
|
};
|
|
|
|
struct mtk_wdt_data {
|
|
@@ -87,6 +89,10 @@ static const struct mtk_wdt_data mt8195_
|
|
.toprgu_sw_rst_num = MT8195_TOPRGU_SW_RST_NUM,
|
|
};
|
|
|
|
+static const struct mtk_wdt_data mt7986_data = {
|
|
+ .toprgu_sw_rst_num = MT7986_TOPRGU_SW_RST_NUM,
|
|
+};
|
|
+
|
|
static int toprgu_reset_update(struct reset_controller_dev *rcdev,
|
|
unsigned long id, bool assert)
|
|
{
|
|
@@ -256,6 +262,8 @@ static int mtk_wdt_start(struct watchdog
|
|
reg |= (WDT_MODE_IRQ_EN | WDT_MODE_DUAL_EN);
|
|
else
|
|
reg &= ~(WDT_MODE_IRQ_EN | WDT_MODE_DUAL_EN);
|
|
+ if (mtk_wdt->disable_wdt_extrst)
|
|
+ reg &= ~WDT_MODE_EXRST_EN;
|
|
reg |= (WDT_MODE_EN | WDT_MODE_KEY);
|
|
iowrite32(reg, wdt_base + WDT_MODE);
|
|
|
|
@@ -381,6 +389,10 @@ static int mtk_wdt_probe(struct platform
|
|
if (err)
|
|
return err;
|
|
}
|
|
+
|
|
+ mtk_wdt->disable_wdt_extrst =
|
|
+ of_property_read_bool(dev->of_node, "mediatek,disable-extrst");
|
|
+
|
|
return 0;
|
|
}
|
|
|
|
@@ -414,6 +426,7 @@ static const struct of_device_id mtk_wdt
|
|
{ .compatible = "mediatek,mt8183-wdt", .data = &mt8183_data },
|
|
{ .compatible = "mediatek,mt8192-wdt", .data = &mt8192_data },
|
|
{ .compatible = "mediatek,mt8195-wdt", .data = &mt8195_data },
|
|
+ { .compatible = "mediatek,mt7986-wdt", .data = &mt7986_data },
|
|
{ /* sentinel */ }
|
|
};
|
|
MODULE_DEVICE_TABLE(of, mtk_wdt_dt_ids);
|