void fec_enet_register_fixup(struct net_device *ndev);
int of_fec_enet_parse_fixup(struct device_node *np);
void fec_enet_get_mac_from_fuse(struct device_node *np, unsigned char *mac);
+void fec_enet_ipg_stop_misc_set(struct device_node *np, bool enabled);
/****************************************************************************/
#endif /* FEC_H */
}
#else
static void imx8qm_get_mac_from_fuse(int dev_id, unsigned char *mac) {}
+static void imx8qm_ipg_stop_enable(int dev_id, bool enabled) {}
#endif
void fec_enet_get_mac_from_fuse(struct device_node *np, unsigned char *mac)
else if (of_machine_is_compatible("fsl,imx8mq"))
imx8mq_get_mac_from_fuse(idx, mac);
}
+
+void fec_enet_ipg_stop_misc_set(struct device_node *np, bool enabled)
+{
+ int idx;
+
+ if (!np)
+ return;
+
+ idx = of_alias_get_id(np, "ethernet");
+ if (idx < 0)
+ idx = 0;
+
+ if (of_machine_is_compatible("fsl,imx8qm") ||
+ of_machine_is_compatible("fsl,imx8qxp"))
+ imx8qm_ipg_stop_enable(idx, enabled);
+}
static int fec_enet_stop_mode(struct fec_enet_private *fep, bool enabled)
{
struct fec_platform_data *pdata = fep->pdev->dev.platform_data;
+ struct device_node *np = fep->pdev->dev.of_node;
if (fep->gpr.gpr) {
if (enabled)
0);
} else if (pdata && pdata->sleep_mode_enable) {
pdata->sleep_mode_enable(enabled);
+ } else {
+ fec_enet_ipg_stop_misc_set(np, enabled);
}
return 0;