#define DP83TG720S_PHY_RESET                   0x1f
 #define DP83TG720S_HW_RESET                    BIT(15)
 
+#define DP83TG720S_LPS_CFG3                    0x18c
+/* Power modes are documented as bit fields but used as values */
+/* Power Mode 0 is Normal mode */
+#define DP83TG720S_LPS_CFG3_PWR_MODE_0         BIT(0)
+
 #define DP83TG720S_RGMII_DELAY_CTRL            0x602
 /* In RGMII mode, Enable or disable the internal delay for RXD */
 #define DP83TG720S_RGMII_RX_CLK_SEL            BIT(1)
         */
        usleep_range(1000, 2000);
 
-       if (phy_interface_is_rgmii(phydev))
-               return dp83tg720_config_rgmii_delay(phydev);
+       if (phy_interface_is_rgmii(phydev)) {
+               ret = dp83tg720_config_rgmii_delay(phydev);
+               if (ret)
+                       return ret;
+       }
 
-       return 0;
+       /* In case the PHY is bootstrapped in managed mode, we need to
+        * wake it.
+        */
+       return phy_write_mmd(phydev, MDIO_MMD_VEND2, DP83TG720S_LPS_CFG3,
+                            DP83TG720S_LPS_CFG3_PWR_MODE_0);
 }
 
 static struct phy_driver dp83tg720_driver[] = {