mirror of
https://xff.cz/git/u-boot/
synced 2025-10-22 10:31:56 +02:00
watchdog: designware: make reset really optional
Checking for DM_RESET is not enough since not all watchdog implementations use a reset lane. Such is the case for Rockchip implementation for example. Since reset_assert_bulk will only succeed if the resets property exists in the watchdog DT node, it needs to be called only if a reset property is present. This adds a condition on the resets property presence in the watchdog DT node before assuming a reset lane needs to be fetched with reset_assert_bulk, by calling ofnode_read_prop. Cc: Quentin Schulz <foss+uboot@0leil.net> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
This commit is contained in:
committed by
Stefan Roese
parent
16e49a14b2
commit
dca313ff9d
@@ -72,13 +72,13 @@ static int designware_wdt_reset(struct udevice *dev)
|
|||||||
static int designware_wdt_stop(struct udevice *dev)
|
static int designware_wdt_stop(struct udevice *dev)
|
||||||
{
|
{
|
||||||
struct designware_wdt_priv *priv = dev_get_priv(dev);
|
struct designware_wdt_priv *priv = dev_get_priv(dev);
|
||||||
|
__maybe_unused int ret;
|
||||||
|
|
||||||
designware_wdt_reset(dev);
|
designware_wdt_reset(dev);
|
||||||
writel(0, priv->base + DW_WDT_CR);
|
writel(0, priv->base + DW_WDT_CR);
|
||||||
|
|
||||||
if (CONFIG_IS_ENABLED(DM_RESET)) {
|
if (CONFIG_IS_ENABLED(DM_RESET) &&
|
||||||
int ret;
|
ofnode_read_prop(dev_ofnode(dev), "resets", &ret)) {
|
||||||
|
|
||||||
ret = reset_assert_bulk(&priv->resets);
|
ret = reset_assert_bulk(&priv->resets);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
@@ -135,7 +135,8 @@ static int designware_wdt_probe(struct udevice *dev)
|
|||||||
priv->clk_khz = CONFIG_DW_WDT_CLOCK_KHZ;
|
priv->clk_khz = CONFIG_DW_WDT_CLOCK_KHZ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (CONFIG_IS_ENABLED(DM_RESET)) {
|
if (CONFIG_IS_ENABLED(DM_RESET) &&
|
||||||
|
ofnode_read_prop(dev_ofnode(dev), "resets", &ret)) {
|
||||||
ret = reset_get_bulk(dev, &priv->resets);
|
ret = reset_get_bulk(dev, &priv->resets);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err;
|
goto err;
|
||||||
|
|||||||
Reference in New Issue
Block a user