]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
power: pmic: mtk-pwrap: add PWRAP_CAP_WDT_SRC flag
authorDavid Lechner <dlechner@baylibre.com>
Thu, 9 Apr 2026 20:30:34 +0000 (15:30 -0500)
committerDavid Lechner <dlechner@baylibre.com>
Wed, 29 Apr 2026 14:08:18 +0000 (09:08 -0500)
Add a PWRAP_CAP_WDT_SRC flag to indicate if a PMIC wrapper has a WDT_SRC
or not. Then use this to conditionally enable the watchdog timer.

Prior to this change, since the register was not defined, it defaulted
to 0, so the wrong register (DONE2) was being written to.

Reviewed-by: Julien Stephan <jstephan@baylibre.com>
Link: https://patch.msgid.link/20260409-mtk-pmic-fixes-v2-2-73e83aa6345b@baylibre.com
Signed-off-by: David Lechner <dlechner@baylibre.com>
drivers/power/pmic/mtk-pwrap.c

index f4dfb48e93bf44b3807a625eb44c49e09f1dba2d..3ed21dcf2efe367bcd0b31f079a7441c94c15cee 100644 (file)
@@ -60,8 +60,9 @@ static const struct pmic_child_info mt6359_pmic_children_info[] = {
 
 /* Group of bits used for shown pwrap capability */
 #define PWRAP_CAP_INT1_EN              BIT(3)
-#define PWRAP_CAP_WDT_SRC1             BIT(4)
-#define PWRAP_CAP_ARB                  BIT(5)
+#define PWRAP_CAP_WDT_SRC              BIT(4)
+#define PWRAP_CAP_WDT_SRC1             BIT(5)
+#define PWRAP_CAP_ARB                  BIT(6)
 
 /* defines for slave device wrapper registers */
 enum dew_regs {
@@ -755,7 +756,8 @@ static int mtk_pwrap_probe(struct udevice *dev)
         * Since STAUPD was not used on mt8173 platform,
         * so STAUPD of WDT_SRC which should be turned off
         */
-       pwrap_writel(wrp, wrp->master->wdt_src, PWRAP_WDT_SRC_EN);
+       if (HAS_CAP(wrp->master->caps, PWRAP_CAP_WDT_SRC))
+               pwrap_writel(wrp, wrp->master->wdt_src, PWRAP_WDT_SRC_EN);
 
        if (HAS_CAP(wrp->master->caps, PWRAP_CAP_WDT_SRC1))
                pwrap_writel(wrp, wrp->master->wdt_src, PWRAP_WDT_SRC_EN_1);