Message ID | 1489570124-26724-2-git-send-email-jacob2.chen@rock-chips.com |
---|---|
State | Changes Requested |
Delegated to: | Simon Glass |
Headers | show |
On Wed, Mar 15, 2017 at 4:28 AM, Jacob Chen <jacob2.chen@rock-chips.com> wrote: > 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> > --- > > drivers/net/gmac_rockchip.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/drivers/net/gmac_rockchip.c b/drivers/net/gmac_rockchip.c > index e9b202a..63cccc9 100644 > --- a/drivers/net/gmac_rockchip.c > +++ b/drivers/net/gmac_rockchip.c > @@ -17,6 +17,7 @@ > #include <asm/arch/grf_rk3288.h> > #include <dm/pinctrl.h> > #include <dt-bindings/clock/rk3288-cru.h> > +#include <power/regulator.h> > #include "designware.h" > > DECLARE_GLOBAL_DATA_PTR; > @@ -79,6 +80,22 @@ static int gmac_rockchip_probe(struct udevice *dev) > struct clk clk; > 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 > + This seems pretty generic. Is there maybe a more common place this could live? Or is the phy-supply binding in DT only defined for rockchip? > ret = clk_get_by_index(dev, 0, &clk); > if (ret) > return ret; > -- > 1.9.1 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot
2017-03-22 2:56 GMT+08:00 Joe Hershberger <joe.hershberger@gmail.com>: > On Wed, Mar 15, 2017 at 4:28 AM, Jacob Chen <jacob2.chen@rock-chips.com> wrote: >> 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> >> --- >> >> drivers/net/gmac_rockchip.c | 17 +++++++++++++++++ >> 1 file changed, 17 insertions(+) >> >> diff --git a/drivers/net/gmac_rockchip.c b/drivers/net/gmac_rockchip.c >> index e9b202a..63cccc9 100644 >> --- a/drivers/net/gmac_rockchip.c >> +++ b/drivers/net/gmac_rockchip.c >> @@ -17,6 +17,7 @@ >> #include <asm/arch/grf_rk3288.h> >> #include <dm/pinctrl.h> >> #include <dt-bindings/clock/rk3288-cru.h> >> +#include <power/regulator.h> >> #include "designware.h" >> >> DECLARE_GLOBAL_DATA_PTR; >> @@ -79,6 +80,22 @@ static int gmac_rockchip_probe(struct udevice *dev) >> struct clk clk; >> 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 >> + > > This seems pretty generic. Is there maybe a more common place this > could live? Or is the phy-supply binding in DT only defined for > rockchip? > I have look kernel driver and phy-supply is set in " drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c". So i think it might not be generic. >> ret = clk_get_by_index(dev, 0, &clk); >> if (ret) >> return ret; >> -- >> 1.9.1 >> >> _______________________________________________ >> U-Boot mailing list >> U-Boot@lists.denx.de >> https://lists.denx.de/listinfo/u-boot > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot
On Wed, 2017-03-22 at 11:17 +0800, Jacob Chen wrote: > 2017-03-22 2:56 GMT+08:00 Joe Hershberger <joe.hershberger@gmail.com> > : > > On Wed, Mar 15, 2017 at 4:28 AM, Jacob Chen <jacob2.chen@rock-chips > > .com> wrote: > > > 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> > > > --- > > > > > > drivers/net/gmac_rockchip.c | 17 +++++++++++++++++ > > > 1 file changed, 17 insertions(+) > > > > > > diff --git a/drivers/net/gmac_rockchip.c > > > b/drivers/net/gmac_rockchip.c > > > index e9b202a..63cccc9 100644 > > > --- a/drivers/net/gmac_rockchip.c > > > +++ b/drivers/net/gmac_rockchip.c > > > @@ -17,6 +17,7 @@ > > > #include <asm/arch/grf_rk3288.h> > > > #include <dm/pinctrl.h> > > > #include <dt-bindings/clock/rk3288-cru.h> > > > +#include <power/regulator.h> > > > #include "designware.h" > > > > > > DECLARE_GLOBAL_DATA_PTR; > > > @@ -79,6 +80,22 @@ static int gmac_rockchip_probe(struct udevice > > > *dev) > > > struct clk clk; > > > 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 > > > + > > > > This seems pretty generic. Is there maybe a more common place this > > could live? Or is the phy-supply binding in DT only defined for > > rockchip? > > > > I have look kernel driver and phy-supply is set in " > drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c". > So i think it might not be generic. From the device-tree bindings, it's specifically documented for allwinner,sun7i-a20-gmac and rockchip,*-gmac. It's also the common naming for in the generic phy bindings (though i haven't seen those used for any networking device-tree bindings). So it's not documented as a generic property but definitely is the convential naming for, well, phy supplies. Which is all pretty inconclusive :) But it might make sense to do it generically for dwmac so e.g. the allwinner support also can use it. > > > > ret = clk_get_by_index(dev, 0, &clk); > > > if (ret) > > > return ret; > > > -- > > > 1.9.1 > > > > > > _______________________________________________ > > > U-Boot mailing list > > > U-Boot@lists.denx.de > > > https://lists.denx.de/listinfo/u-boot > > > > _______________________________________________ > > U-Boot mailing list > > U-Boot@lists.denx.de > > https://lists.denx.de/listinfo/u-boot
diff --git a/drivers/net/gmac_rockchip.c b/drivers/net/gmac_rockchip.c index e9b202a..63cccc9 100644 --- a/drivers/net/gmac_rockchip.c +++ b/drivers/net/gmac_rockchip.c @@ -17,6 +17,7 @@ #include <asm/arch/grf_rk3288.h> #include <dm/pinctrl.h> #include <dt-bindings/clock/rk3288-cru.h> +#include <power/regulator.h> #include "designware.h" DECLARE_GLOBAL_DATA_PTR; @@ -79,6 +80,22 @@ static int gmac_rockchip_probe(struct udevice *dev) struct clk clk; 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 + ret = clk_get_by_index(dev, 0, &clk); if (ret) return ret;
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> --- drivers/net/gmac_rockchip.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)