> +static int netsec_register_mdio(struct netsec_priv *priv, u32 phy_addr)
> +{
> +     struct mii_bus *bus;
> +     int ret;
> +
> +     bus = devm_mdiobus_alloc(priv->dev);
> +     if (!bus)
> +             return -ENOMEM;
> +
> +     snprintf(bus->id, MII_BUS_ID_SIZE, "%s", dev_name(priv->dev));
> +     bus->priv = priv;
> +     bus->name = "SNI NETSEC MDIO";
> +     bus->read = netsec_phy_read;
> +     bus->write = netsec_phy_write;
> +     bus->parent = priv->dev;
> +     priv->mii_bus = bus;
> +
> +     if (dev_of_node(priv->dev)) {
> +             struct device_node *parent = dev_of_node(priv->dev);
> +             struct device_node *child_node, *mdio_node = NULL;
> +
> +             for_each_child_of_node(parent, child_node) {
> +                     if (of_device_is_compatible(child_node,
> +                                                 "socionext,snq-mdio")) {

Just use of_get_child_by_name(parent, "mdio");

     Andrew

Reply via email to