diff options
author | Jacob Chen <jacob2.chen@rock-chips.com> | 2017-03-27 16:54:17 +0800 |
---|---|---|
committer | Joe Hershberger <joe.hershberger@ni.com> | 2017-06-02 14:44:18 -0500 |
commit | 6ec922fae20f791882ee455286b1fefd5372a79a (patch) | |
tree | 7eb1940870782d1c158073040fcb30821df9de69 | |
parent | 449ea2cd0d0c4e46c5b2b21480f34523dd928e33 (diff) |
net: designware: Add phy supply support
Some board need a regulator for gmac phy, so add this code to handle it.
Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
-rw-r--r-- | drivers/net/designware.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/net/designware.c b/drivers/net/designware.c index e3a194c2c0..e8569e6fef 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -18,6 +18,7 @@ #include <linux/compiler.h> #include <linux/err.h> #include <asm/io.h> +#include <power/regulator.h> #include "designware.h" DECLARE_GLOBAL_DATA_PTR; @@ -661,6 +662,22 @@ int designware_eth_probe(struct udevice *dev) ulong ioaddr; int ret; +#if defined(CONFIG_DM_REGULATOR) + struct udevice *phy_supply; + + ret = device_get_supply_regulator(dev, "phy-supply", + &phy_supply); + if (ret) { + debug("%s: No phy supply\n", dev->name); + } else { + ret = regulator_set_enable(phy_supply, true); + if (ret) { + puts("Error enabling phy supply\n"); + return ret; + } + } +#endif + #ifdef CONFIG_DM_PCI /* * If we are on PCI bus, either directly attached to a PCI root port, |