On Thu, Jul 5, 2018 at 12:02 PM, Grygorii Strashko <grygorii.stras...@ti.com> wrote: > Now the UCLASS_ETH device "node" field is owerwritten by some network drivers > in > case of Ethernet PHYs which are linked to UCLASS_ETH device using > "phy-handle" DT property and when Ethernet PHY driver needs to read some > additional information from DT. In such cases following happens (in > general): > > - network drivers > priv->phydev = phy_connect(priv->bus, priv->phyaddr, dev, > priv->interface); > <-- phydev is connected to dev which is UCLASS_ETH device > > if (priv->phy_of_handle > 0) > dev_set_of_offset(priv->phydev->dev, priv->phy_of_handle); > <-- phydev->dev->node is overwritten by phy-handle DT node > > - PHY driver in .config() callback > int node = dev_of_offset(dev); > <-- PHY driver uses overwritten dev->node > const void *fdt = gd->fdt_blob; > > if (fdtdec_get_bool(fdt, node, "property")) > ... > > As result, UCLASS_ETH device can't be used any more for DT accessing. > > This patch adds additional ofnode node field to struct phy_device which can > be set explicitly by network drivers and used by PHY drivers, so > overwriting can be avoided. Also add helper function phy_get_ofnode() > which will check and return phy_device->node or dev_ofnode(phydev->dev) for > backward compatibility with existing drivers. > > Signed-off-by: Grygorii Strashko <grygorii.stras...@ti.com>
Acked-by: Joe Hershberger <joe.hershber...@ni.com> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot