u-boot-2016/drivers/net/phy
Grygorii Strashko eef0b8a930 net: phy: add ofnode node to struct phy_device
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.strashko@ti.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
2018-07-26 14:08:22 -05:00
..
aquantia.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
atheros.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
b53.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
broadcom.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
cortina.c net/phy/cortina: Add support for CS4223 PHY 2018-06-13 13:54:15 -05:00
davicom.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
et1011c.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fixed.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
generic_10g.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
Kconfig net: phy: Don't limit phy addresses by default 2018-04-13 15:56:47 -05:00
lxt.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
Makefile SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
marvell.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
meson-gxl.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
micrel_ksz8xxx.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
micrel_ksz90x1.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
miiphybb.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mscc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mv88e61xx.c net: phy: mv88e61xx: Force CPU port link up 2018-06-13 13:54:17 -05:00
mv88e6352.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
natsemi.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
phy.c net: phy: add ofnode node to struct phy_device 2018-07-26 14:08:22 -05:00
realtek.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
smsc.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
teranetics.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
ti.c net: phy: dp83867: switch to use ofnode api 2018-07-26 14:08:21 -05:00
vitesse.c net: phy: Clean up includes of common.h 2018-07-26 14:08:22 -05:00
xilinx_phy.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00