|
@@ -22,6 +22,7 @@
|
|
|
struct designware_wdt_priv {
|
|
|
void __iomem *base;
|
|
|
unsigned int clk_khz;
|
|
|
+ struct reset_ctl_bulk *resets;
|
|
|
};
|
|
|
|
|
|
/*
|
|
@@ -95,6 +96,18 @@ static int designware_wdt_stop(struct udevice *dev)
|
|
|
designware_wdt_reset(dev);
|
|
|
writel(0, priv->base + DW_WDT_CR);
|
|
|
|
|
|
+ if (CONFIG_IS_ENABLED(DM_RESET)) {
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ ret = reset_assert_bulk(priv->resets);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ ret = reset_deassert_bulk(priv->resets);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -143,13 +156,11 @@ static int designware_wdt_probe(struct udevice *dev)
|
|
|
#endif
|
|
|
|
|
|
if (CONFIG_IS_ENABLED(DM_RESET)) {
|
|
|
- struct reset_ctl_bulk resets;
|
|
|
-
|
|
|
- ret = reset_get_bulk(dev, &resets);
|
|
|
+ ret = reset_get_bulk(dev, priv->resets);
|
|
|
if (ret)
|
|
|
goto err;
|
|
|
|
|
|
- ret = reset_deassert_bulk(&resets);
|
|
|
+ ret = reset_deassert_bulk(priv->resets);
|
|
|
if (ret)
|
|
|
goto err;
|
|
|
}
|