mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-29 01:09:33 -04:00
net: fec: restore handling of PHY reset line as optional
Conversion of the driver to gpiod API done in468ba54bd6("fec: convert to gpio descriptor") incorrectly made reset line mandatory and resulted in aborting driver probe in cases where reset line was not specified (note: this way of specifying PHY reset line is actually deprecated). Switch to using devm_gpiod_get_optional() and skip manipulating reset line if it can not be located. Fixes:468ba54bd6("fec: convert to gpio descriptor") Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Reported-by: Marc Kleine-Budde <mkl@pengutronix.de> Tested-by: Marc Kleine-Budde <mkl@pengutronix.de> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Link: https://lore.kernel.org/r/20230201215320.528319-1-dmitry.torokhov@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
82b4a9412b
commit
d7b5e5dd66
@@ -4056,12 +4056,15 @@ static int fec_reset_phy(struct platform_device *pdev)
|
||||
|
||||
active_high = of_property_read_bool(np, "phy-reset-active-high");
|
||||
|
||||
phy_reset = devm_gpiod_get(&pdev->dev, "phy-reset",
|
||||
phy_reset = devm_gpiod_get_optional(&pdev->dev, "phy-reset",
|
||||
active_high ? GPIOD_OUT_HIGH : GPIOD_OUT_LOW);
|
||||
if (IS_ERR(phy_reset))
|
||||
return dev_err_probe(&pdev->dev, PTR_ERR(phy_reset),
|
||||
"failed to get phy-reset-gpios\n");
|
||||
|
||||
if (!phy_reset)
|
||||
return 0;
|
||||
|
||||
if (msec > 20)
|
||||
msleep(msec);
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user