Skip to content

Commit

Permalink
net: fec: use pinctrl PM helpers
Browse files Browse the repository at this point in the history
when system suspend, need to set pins to low power state to
save IO power consumption, there are three states of pinctrl:
"default", "idle" and "sleep". Currently enet supports default
and sleep state.

Signed-off-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Nimrod Andy authored and David S. Miller committed May 31, 2014
1 parent ce25b68 commit 5bbde4d
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions drivers/net/ethernet/freescale/fec_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1816,6 +1816,7 @@ fec_enet_open(struct net_device *ndev)
struct fec_enet_private *fep = netdev_priv(ndev);
int ret;

pinctrl_pm_select_default_state(&fep->pdev->dev);
ret = fec_enet_clk_enable(ndev, true);
if (ret)
return ret;
Expand Down Expand Up @@ -1859,6 +1860,7 @@ fec_enet_close(struct net_device *ndev)
}

fec_enet_clk_enable(ndev, false);
pinctrl_pm_select_sleep_state(&fep->pdev->dev);
fec_enet_free_buffers(ndev);

return 0;
Expand Down Expand Up @@ -2162,6 +2164,9 @@ fec_probe(struct platform_device *pdev)
fep->pause_flag |= FEC_PAUSE_FLAG_AUTONEG;
#endif

/* Select default pin state */
pinctrl_pm_select_default_state(&pdev->dev);

r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
fep->hwp = devm_ioremap_resource(&pdev->dev, r);
if (IS_ERR(fep->hwp)) {
Expand Down Expand Up @@ -2258,6 +2263,7 @@ fec_probe(struct platform_device *pdev)
/* Carrier starts down, phylib will bring it up */
netif_carrier_off(ndev);
fec_enet_clk_enable(ndev, false);
pinctrl_pm_select_sleep_state(&pdev->dev);

ret = register_netdev(ndev);
if (ret)
Expand Down Expand Up @@ -2317,6 +2323,7 @@ fec_suspend(struct device *dev)
netif_device_detach(ndev);
}
fec_enet_clk_enable(ndev, false);
pinctrl_pm_select_sleep_state(&fep->pdev->dev);

if (fep->reg_phy)
regulator_disable(fep->reg_phy);
Expand All @@ -2337,6 +2344,7 @@ fec_resume(struct device *dev)
return ret;
}

pinctrl_pm_select_default_state(&fep->pdev->dev);
ret = fec_enet_clk_enable(ndev, true);
if (ret)
goto failed_clk;
Expand Down

0 comments on commit 5bbde4d

Please sign in to comment.