> + phy_np = of_parse_phandle(np, "phy-handle", 0); > + if (phy_np) { > + ret = of_property_read_u32(phy_np, "reg", &val); > + if (ret) { > + dev_err(dev, "cannot find phy reg\n"); > + return NULL; > + } > + of_node_put(phy_np); > + } else { > + dev_err(dev, "cannot find phy instance\n"); > + val = 0; > + } > + plat->phy = val;
phy-handle can point to a PHY on any bus. You should not assume it is the devices own bus. Once you have phy_np call of_phy_find_device() which gives you the actual phy device. Please don't let the limitations of the current platform data limit you from implementing this correctly. Andrew