}
 }
 
+static const struct soc_device_attribute ravb_delay_mode_quirk_match[] = {
+       { .soc_id = "r8a774c0" },
+       { .soc_id = "r8a77990" },
+       { .soc_id = "r8a77995" },
+       { /* sentinel */ }
+};
+
 /* Set tx and rx clock internal delay modes */
 static void ravb_set_delay_mode(struct net_device *ndev)
 {
                set |= APSR_DM_RDM;
 
        if (priv->phy_interface == PHY_INTERFACE_MODE_RGMII_ID ||
-           priv->phy_interface == PHY_INTERFACE_MODE_RGMII_TXID)
-               set |= APSR_DM_TDM;
+           priv->phy_interface == PHY_INTERFACE_MODE_RGMII_TXID) {
+               if (!WARN(soc_device_match(ravb_delay_mode_quirk_match),
+                         "phy-mode %s requires TX clock internal delay mode which is not supported by this hardware revision. Please update device tree",
+                         phy_modes(priv->phy_interface)))
+                       set |= APSR_DM_TDM;
+       }
 
        ravb_modify(ndev, APSR, APSR_DM, set);
 }