mac->phylink_config.dev = ð->netdev[id]->dev;
        mac->phylink_config.type = PHYLINK_NETDEV;
+       __set_bit(PHY_INTERFACE_MODE_MII,
+                 mac->phylink_config.supported_interfaces);
+       __set_bit(PHY_INTERFACE_MODE_GMII,
+                 mac->phylink_config.supported_interfaces);
+
+       if (MTK_HAS_CAPS(mac->hw->soc->caps, MTK_RGMII))
+               phy_interface_set_rgmii(mac->phylink_config.supported_interfaces);
+
+       if (MTK_HAS_CAPS(mac->hw->soc->caps, MTK_TRGMII) && !mac->id)
+               __set_bit(PHY_INTERFACE_MODE_TRGMII,
+                         mac->phylink_config.supported_interfaces);
+
+       if (MTK_HAS_CAPS(mac->hw->soc->caps, MTK_SGMII)) {
+               __set_bit(PHY_INTERFACE_MODE_SGMII,
+                         mac->phylink_config.supported_interfaces);
+               __set_bit(PHY_INTERFACE_MODE_1000BASEX,
+                         mac->phylink_config.supported_interfaces);
+               __set_bit(PHY_INTERFACE_MODE_2500BASEX,
+                         mac->phylink_config.supported_interfaces);
+       }
 
        phylink = phylink_create(&mac->phylink_config,
                                 of_fwnode_handle(mac->of_node),