X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fnet%2Fravb.c;fp=drivers%2Fnet%2Fravb.c;h=749562db960e59a8e7df3a0c8c7a6372b9b21e68;hb=701db6e9c62ce1f61ec83a75b0367b4d46284e27;hp=0dd2792c60008aa223f364a34aa7005f022933a9;hpb=536fb5d47c350de0a67279c344470119a9f53886;p=u-boot diff --git a/drivers/net/ravb.c b/drivers/net/ravb.c index 0dd2792c60..749562db96 100644 --- a/drivers/net/ravb.c +++ b/drivers/net/ravb.c @@ -466,6 +466,7 @@ static int ravb_probe(struct udevice *dev) { struct eth_pdata *pdata = dev_get_platdata(dev); struct ravb_priv *eth = dev_get_priv(dev); + struct ofnode_phandle_args phandle_args; struct mii_dev *mdiodev; void __iomem *iobase; int ret; @@ -477,8 +478,16 @@ static int ravb_probe(struct udevice *dev) if (ret < 0) goto err_mdio_alloc; - gpio_request_by_name(dev, "reset-gpios", 0, ð->reset_gpio, - GPIOD_IS_OUT); + ret = dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, 0, &phandle_args); + if (!ret) { + gpio_request_by_name_nodev(phandle_args.node, "reset-gpios", 0, + ð->reset_gpio, GPIOD_IS_OUT); + } + + if (!dm_gpio_is_valid(ð->reset_gpio)) { + gpio_request_by_name(dev, "reset-gpios", 0, ð->reset_gpio, + GPIOD_IS_OUT); + } mdiodev = mdio_alloc(); if (!mdiodev) {