On 09/28/2017 08:53 AM, Geert Uytterhoeven wrote: > If the optional "reset-gpios" property is specified in DT, the generic > MDIO bus code takes care of resetting the PHY during device probe. > However, the PHY may still have to be reset explicitly after system > resume. > > This allows to restore Ethernet operation after resume from s2ram on > Salvator-XS, where the enable pin of the regulator providing PHY power > is connected to PRESETn, and PSCI suspend powers down the SoC. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > --- > drivers/net/ethernet/renesas/ravb_main.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c > index fdf30bfa403bf416..96d1d48e302f8c9a 100644 > --- a/drivers/net/ethernet/renesas/ravb_main.c > +++ b/drivers/net/ethernet/renesas/ravb_main.c > @@ -19,6 +19,7 @@ > #include <linux/etherdevice.h> > #include <linux/ethtool.h> > #include <linux/if_vlan.h> > +#include <linux/gpio/consumer.h> > #include <linux/kernel.h> > #include <linux/list.h> > #include <linux/module.h> > @@ -2268,6 +2269,7 @@ static int __maybe_unused ravb_resume(struct device *dev) > { > struct net_device *ndev = dev_get_drvdata(dev); > struct ravb_private *priv = netdev_priv(ndev); > + struct mii_bus *bus = priv->mii_bus; > int ret = 0; > > if (priv->wol_enabled) { > @@ -2302,6 +2304,13 @@ static int __maybe_unused ravb_resume(struct device *dev) > * reopen device if it was running before system suspended. > */ > > + /* PHY reset */ > + if (bus->reset_gpiod) { > + gpiod_set_value_cansleep(bus->reset_gpiod, 1); > + udelay(bus->reset_delay_us); > + gpiod_set_value_cansleep(bus->reset_gpiod, 0); > + } This is a clever hack, but unfortunately this is also misusing the MDIO bus reset line into a PHY reset line. As commented in patch 3, if this reset line is tied to the PHY, then this should be a PHY property and you cannot (ab)use the MDIO bus GPIO reset logic anymore... Should not you also try to manage this reset line during ravb_open() to achiever better power savings? -- Florian -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html