static int armada370_start(struct watchdog_device *wdt_dev)
 {
        struct orion_watchdog *dev = watchdog_get_drvdata(wdt_dev);
+       u32 reg;
 
        /* Set watchdog duration */
        writel(dev->clk_rate * wdt_dev->timeout,
        atomic_io_modify(dev->reg + TIMER_CTRL, dev->data->wdt_enable_bit,
                                                dev->data->wdt_enable_bit);
 
-       atomic_io_modify(dev->rstout, dev->data->rstout_enable_bit,
-                                     dev->data->rstout_enable_bit);
+       /* Enable reset on watchdog */
+       reg = readl(dev->rstout);
+       reg |= dev->data->rstout_enable_bit;
+       writel(reg, dev->rstout);
        return 0;
 }