On 23-07-18, Andrew Lunn wrote: > On Mon, Jul 17, 2023 at 06:43:07PM +0200, Marco Felsch wrote: > > Add generic phy-supply handling support to control the phy regulator. > > Use the common stmmac_platform code path so all drivers using > > stmmac_probe_config_dt() and stmmac_pltfr_pm_ops can use it. > > > > Signed-off-by: Marco Felsch <m.felsch@xxxxxxxxxxxxxx> > > --- > > .../ethernet/stmicro/stmmac/stmmac_platform.c | 51 +++++++++++++++++++ > > include/linux/stmmac.h | 1 + > > 2 files changed, 52 insertions(+) > > > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c > > index eb0b2898daa3d..6193d42b53fb7 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c > > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c > > @@ -10,6 +10,7 @@ > > > > #include <linux/platform_device.h> > > #include <linux/pm_runtime.h> > > +#include <linux/regulator/consumer.h> > > #include <linux/module.h> > > #include <linux/io.h> > > #include <linux/of.h> > > @@ -423,6 +424,15 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) > > if (plat->interface < 0) > > plat->interface = plat->phy_interface; > > > > + /* Optional regulator for PHY */ > > + plat->phy_regulator = devm_regulator_get_optional(&pdev->dev, "phy"); > > + if (IS_ERR(plat->phy_regulator)) { > > + if (PTR_ERR(plat->phy_regulator) == -EPROBE_DEFER) > > + return ERR_CAST(plat->phy_regulator); > > + dev_info(&pdev->dev, "No regulator found\n"); > > + plat->phy_regulator = NULL; > > + } > > + > > So this gets the regulator. When do you actually turn it on? During the suspend/resume logic like the rockchip, sun8i platform integrations did. Regards, Marco > > Andrew >