diff options
author | Sam Shih <sam.shih@mediatek.com> | 2022-04-10 20:49:09 +0800 |
---|---|---|
committer | Daniel Golle <daniel@makrotopia.org> | 2022-08-28 20:33:15 +0100 |
commit | dabcaac443d9ac2e05acc4de5e588356dd1f8bfa (patch) | |
tree | a9e8a079211a9308ba135132f71b2cbeb29165d1 /target/linux/mediatek/patches-5.15/920-watchdog-add-mt7986-assert.patch | |
parent | 0a18456ffc25d6a26911fca6f9079090243c2284 (diff) | |
download | upstream-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.patch | 57 |
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); |