void __iomem                    *vaddr;
        u8                              cell_index;
        struct fman                     *fman;
-       struct device_node              *internal_phy_node;
        /* List of multicast addresses */
        struct list_head                mc_addr_list;
        struct platform_device          *eth_dev;
        params->exception_cb    = mac_exception;
        params->event_cb        = mac_exception;
        params->dev_id          = mac_dev;
-       params->internal_phy_node = priv->internal_phy_node;
 
        return 0;
 }
 
-static int tgec_initialization(struct mac_device *mac_dev)
+static int tgec_initialization(struct mac_device *mac_dev,
+                              struct device_node *mac_node)
 {
        int err;
        struct mac_priv_s       *priv;
        return err;
 }
 
-static int dtsec_initialization(struct mac_device *mac_dev)
+static int dtsec_initialization(struct mac_device *mac_dev,
+                               struct device_node *mac_node)
 {
        int                     err;
        struct mac_priv_s       *priv;
        err = set_fman_mac_params(mac_dev, ¶ms);
        if (err)
                goto _return;
+       params.internal_phy_node = of_parse_phandle(mac_node, "tbi-handle", 0);
 
        mac_dev->fman_mac = dtsec_config(¶ms);
        if (!mac_dev->fman_mac) {
        return err;
 }
 
-static int memac_initialization(struct mac_device *mac_dev)
+static int memac_initialization(struct mac_device *mac_dev,
+                               struct device_node *mac_node)
 {
        int                      err;
        struct mac_priv_s       *priv;
        err = set_fman_mac_params(mac_dev, ¶ms);
        if (err)
                goto _return;
+       params.internal_phy_node = of_parse_phandle(mac_node, "pcsphy-handle", 0);
 
        if (priv->max_speed == SPEED_10000)
                params.phy_if = PHY_INTERFACE_MODE_XGMII;
 
        if (of_device_is_compatible(mac_node, "fsl,fman-dtsec")) {
                setup_dtsec(mac_dev);
-               priv->internal_phy_node = of_parse_phandle(mac_node,
-                                                         "tbi-handle", 0);
        } else if (of_device_is_compatible(mac_node, "fsl,fman-xgec")) {
                setup_tgec(mac_dev);
        } else if (of_device_is_compatible(mac_node, "fsl,fman-memac")) {
                setup_memac(mac_dev);
-               priv->internal_phy_node = of_parse_phandle(mac_node,
-                                                         "pcsphy-handle", 0);
        } else {
                dev_err(dev, "MAC node (%pOF) contains unsupported MAC\n",
                        mac_node);
                put_device(&phy->mdio.dev);
        }
 
-       err = mac_dev->init(mac_dev);
+       err = mac_dev->init(mac_dev, mac_node);
        if (err < 0) {
                dev_err(dev, "mac_dev->init() = %d\n", err);
                of_node_put(mac_dev->phy_node);