[PATCH] phy: add of_set_phy_supported() helper, call from phy_config()

Tom Rini trini at konsulko.com
Thu Jan 26 16:23:45 CET 2023


On Thu, Jan 26, 2023 at 09:29:29AM +0100, Rasmus Villemoes wrote:
> On 18/09/2022 08.13, Ramon Fried wrote:
> > On Tue, Aug 9, 2022 at 2:53 PM Rasmus Villemoes
> > <rasmus.villemoes at prevas.dk> wrote:
> >>
> >> Currently, U-Boot doesn't parse a "max-speed" DT property in a phy's
> >> DT node. That property is a standard binding which should be honoured,
> >> and in linux that is done by the core phy code via a call to an
> >> of_set_phy_supported() helper. (Some ethernet drivers support a
> >> max-speed property in their DT node, but that's orthogonal to what the
> >> phy supports.)
> >>
> >> Add a similar helper in U-Boot, and call it from phy_config().
> >>
> >> Signed-off-by: Rasmus Villemoes <rasmus.villemoes at prevas.dk>
> >> ---
> >> Resending, this time including the u-boot list in recipients. Sorry
> >> for the duplicate.
> >>
> >>  drivers/net/phy/phy.c | 20 ++++++++++++++++++++
> >>  1 file changed, 20 insertions(+)
> >>
> >> diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
> >> index e6e1755518..ec690361e6 100644
> >> --- a/drivers/net/phy/phy.c
> >> +++ b/drivers/net/phy/phy.c
> >> @@ -599,6 +599,20 @@ int phy_register(struct phy_driver *drv)
> >>         return 0;
> >>  }
> >>
> >> +static int of_set_phy_supported(struct phy_device *phydev)
> >> +{
> >> +       ofnode node = phy_get_ofnode(phydev);
> >> +       u32 max_speed;
> >> +
> >> +       if (!ofnode_valid(node))
> >> +               return 0;
> >> +
> >> +       if (!ofnode_read_u32(node, "max-speed", &max_speed))
> >> +               return phy_set_supported(phydev, max_speed);
> >> +
> >> +       return 0;
> >> +}
> >> +
> >>  int phy_set_supported(struct phy_device *phydev, u32 max_speed)
> >>  {
> >>         /* The default values for phydev->supported are provided by the PHY
> >> @@ -1070,6 +1084,12 @@ __weak int board_phy_config(struct phy_device *phydev)
> >>
> >>  int phy_config(struct phy_device *phydev)
> >>  {
> >> +       int ret;
> >> +
> >> +       ret = of_set_phy_supported(phydev);
> >> +       if (ret)
> >> +               return ret;
> >> +
> >>         /* Invoke an optional board-specific helper */
> >>         return board_phy_config(phydev);
> >>  }
> >> --
> >> 2.31.1
> >>
> > Reviewed-by: Ramon Fried <rfried.dev at gmail.com>
> 
> This seems to have fallen through the cracks. Can it be picked up please?

Thanks for spotting, yes, I'll pick this up for real soon.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20230126/f31cdead/attachment.sig>


More information about the U-Boot mailing list