return err;
        }
 
+       memset(&mac->phylink_config, 0, sizeof(mac->phylink_config));
        mac->phylink_config.dev = &net_dev->dev;
        mac->phylink_config.type = PHYLINK_NETDEV;
 
+       /* We support the current interface mode, and if we have a PCS
+        * similar interface modes that do not require the PLLs to be
+        * reconfigured.
+        */
+       __set_bit(mac->if_mode, mac->phylink_config.supported_interfaces);
+       if (mac->pcs) {
+               switch (mac->if_mode) {
+               case PHY_INTERFACE_MODE_1000BASEX:
+               case PHY_INTERFACE_MODE_SGMII:
+                       __set_bit(PHY_INTERFACE_MODE_1000BASEX,
+                                 mac->phylink_config.supported_interfaces);
+                       __set_bit(PHY_INTERFACE_MODE_SGMII,
+                                 mac->phylink_config.supported_interfaces);
+                       break;
+
+               default:
+                       break;
+               }
+       }
+
        phylink = phylink_create(&mac->phylink_config,
                                 dpmac_node, mac->if_mode,
                                 &dpaa2_mac_phylink_ops);