/* STRAP_STS1 bits */
 #define DP83869_STRAP_STS1_RESERVED            BIT(11)
+#define DP83869_STRAP_MIRROR_ENABLED           BIT(12)
 
 /* PHYCTRL bits */
 #define DP83869_RX_FIFO_SHIFT  12
        else if (of_property_read_bool(of_node, "ti,min-output-impedance"))
                dp83869->io_impedance = DP83869_IO_MUX_CFG_IO_IMPEDANCE_MIN;
 
-       if (of_property_read_bool(of_node, "enet-phy-lane-swap"))
+       if (of_property_read_bool(of_node, "enet-phy-lane-swap")) {
                dp83869->port_mirroring = DP83869_PORT_MIRRORING_EN;
-       else
-               dp83869->port_mirroring = DP83869_PORT_MIRRORING_DIS;
+       } else {
+               /* If the lane swap is not in the DT then check the straps */
+               ret = phy_read_mmd(phydev, DP83869_DEVADDR, DP83869_STRAP_STS1);
+               if (ret < 0)
+                       return ret;
+               if (ret & DP83869_STRAP_MIRROR_ENABLED)
+                       dp83869->port_mirroring = DP83869_PORT_MIRRORING_EN;
+               else
+                       dp83869->port_mirroring = DP83869_PORT_MIRRORING_DIS;
+       }
 
        if (of_property_read_u32(of_node, "rx-fifo-depth",
                                 &dp83869->rx_fifo_depth))