mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-04-05 14:01:32 +00:00
net: dm: fec: Support the phy-supply binding
Configure the phy regulator if defined by the "phy-supply" DT phandle. Signed-off-by: Martin Fuzzey <martin.fuzzey@flowbird.group> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
331fcabe4f
commit
ad8c43cbca
2 changed files with 23 additions and 0 deletions
|
@ -15,6 +15,7 @@
|
||||||
#include <miiphy.h>
|
#include <miiphy.h>
|
||||||
#include <net.h>
|
#include <net.h>
|
||||||
#include <netdev.h>
|
#include <netdev.h>
|
||||||
|
#include <power/regulator.h>
|
||||||
|
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
|
@ -1272,6 +1273,16 @@ static int fecmxc_probe(struct udevice *dev)
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
#ifdef CONFIG_DM_REGULATOR
|
||||||
|
if (priv->phy_supply) {
|
||||||
|
ret = regulator_autoset(priv->phy_supply);
|
||||||
|
if (ret) {
|
||||||
|
printf("%s: Error enabling phy supply\n", dev->name);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_DM_GPIO
|
#ifdef CONFIG_DM_GPIO
|
||||||
fec_gpio_reset(priv);
|
fec_gpio_reset(priv);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1327,6 +1338,11 @@ static int fecmxc_remove(struct udevice *dev)
|
||||||
mdio_unregister(priv->bus);
|
mdio_unregister(priv->bus);
|
||||||
mdio_free(priv->bus);
|
mdio_free(priv->bus);
|
||||||
|
|
||||||
|
#ifdef CONFIG_DM_REGULATOR
|
||||||
|
if (priv->phy_supply)
|
||||||
|
regulator_set_enable(priv->phy_supply, false);
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1350,6 +1366,10 @@ static int fecmxc_ofdata_to_platdata(struct udevice *dev)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_DM_REGULATOR
|
||||||
|
device_get_supply_regulator(dev, "phy-supply", &priv->phy_supply);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_DM_GPIO
|
#ifdef CONFIG_DM_GPIO
|
||||||
ret = gpio_request_by_name(dev, "phy-reset-gpios", 0,
|
ret = gpio_request_by_name(dev, "phy-reset-gpios", 0,
|
||||||
&priv->phy_reset_gpio, GPIOD_IS_OUT);
|
&priv->phy_reset_gpio, GPIOD_IS_OUT);
|
||||||
|
|
|
@ -250,6 +250,9 @@ struct fec_priv {
|
||||||
int phy_id;
|
int phy_id;
|
||||||
int (*mii_postcall)(int);
|
int (*mii_postcall)(int);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_DM_REGULATOR
|
||||||
|
struct udevice *phy_supply;
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_DM_GPIO
|
#ifdef CONFIG_DM_GPIO
|
||||||
struct gpio_desc phy_reset_gpio;
|
struct gpio_desc phy_reset_gpio;
|
||||||
uint32_t reset_delay;
|
uint32_t reset_delay;
|
||||||
|
|
Loading…
Add table
Reference in a new issue