On 18/09/2022 08.13, Ramon Fried wrote: > On Tue, Aug 9, 2022 at 2:53 PM Rasmus Villemoes > <rasmus.villem...@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.villem...@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....@gmail.com>
This seems to have fallen through the cracks. Can it be picked up please? Rasmus