提交 159b3292 编写于 作者: M Marek Vasut

net: sh_eth: Support reset GPIO both in mac and phy node

The recent DTs have the PHY reset GPIO in the PHY node rather than
the ethernet MAC node, support extracting the PHY reset GPIO info
from both the PHY node and ethernet MAC node.
Signed-off-by: NMarek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Joe Hershberger <joe.hershberger@ni.com>
上级 701db6e9
......@@ -810,6 +810,7 @@ static int sh_ether_probe(struct udevice *udev)
struct eth_pdata *pdata = dev_get_platdata(udev);
struct sh_ether_priv *priv = dev_get_priv(udev);
struct sh_eth_dev *eth = &priv->shdev;
struct ofnode_phandle_args phandle_args;
struct mii_dev *mdiodev;
int ret;
......@@ -819,8 +820,16 @@ static int sh_ether_probe(struct udevice *udev)
if (ret < 0)
return ret;
gpio_request_by_name(udev, "reset-gpios", 0, &priv->reset_gpio,
GPIOD_IS_OUT);
ret = dev_read_phandle_with_args(udev, "phy-handle", NULL, 0, 0, &phandle_args);
if (!ret) {
gpio_request_by_name_nodev(phandle_args.node, "reset-gpios", 0,
&priv->reset_gpio, GPIOD_IS_OUT);
}
if (!dm_gpio_is_valid(&priv->reset_gpio)) {
gpio_request_by_name(udev, "reset-gpios", 0, &priv->reset_gpio,
GPIOD_IS_OUT);
}
mdiodev = mdio_alloc();
if (!mdiodev) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册