aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/patches-5.15/920-watchdog-add-mt7986-assert.patch
diff options
context:
space:
mode:
authorSam Shih <sam.shih@mediatek.com>2022-04-10 20:49:09 +0800
committerDaniel Golle <daniel@makrotopia.org>2022-08-28 20:33:15 +0100
commitdabcaac443d9ac2e05acc4de5e588356dd1f8bfa (patch)
treea9e8a079211a9308ba135132f71b2cbeb29165d1 /target/linux/mediatek/patches-5.15/920-watchdog-add-mt7986-assert.patch
parent0a18456ffc25d6a26911fca6f9079090243c2284 (diff)
downloadupstream-dabcaac443d9ac2e05acc4de5e588356dd1f8bfa.tar.gz
upstream-dabcaac443d9ac2e05acc4de5e588356dd1f8bfa.tar.bz2
upstream-dabcaac443d9ac2e05acc4de5e588356dd1f8bfa.zip
mediatek: add mt7986 soc support to the target
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>
Diffstat (limited to 'target/linux/mediatek/patches-5.15/920-watchdog-add-mt7986-assert.patch')
-rw-r--r--target/linux/mediatek/patches-5.15/920-watchdog-add-mt7986-assert.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/target/linux/mediatek/patches-5.15/920-watchdog-add-mt7986-assert.patch b/target/linux/mediatek/patches-5.15/920-watchdog-add-mt7986-assert.patch
new file mode 100644
index 0000000000..699161458c
--- /dev/null
+++ b/target/linux/mediatek/patches-5.15/920-watchdog-add-mt7986-assert.patch
@@ -0,0 +1,57 @@
+--- 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);