phylib: Add device reset GPIO support
The PHY devices sometimes do have their reset signal (maybe even power supply?) tied to some GPIO and sometimes it also does happen that a boot loader does not leave it deasserted. So far this issue has been attacked from (as I believe) a wrong angle: by teaching the MAC driver to manipulate the GPIO in question; that solution, when applied to the device trees, led to adding the PHY reset GPIO properties to the MAC device node, with one exception: Cadence MACB driver which could handle the "reset-gpios" prop in a PHY device subnode. I believe that the correct approach is to teach the 'phylib' to get the MDIO device reset GPIO from the device tree node corresponding to this device -- which this patch is doing... Note that I had to modify the AT803x PHY driver as it would stop working otherwise -- it made use of the reset GPIO for its own purposes... Signed-off-by:Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Acked-by:
Rob Herring <robh@kernel.org> [geert: Propagate actual errors from fwnode_get_named_gpiod()] [geert: Avoid destroying initial setup] [geert: Consolidate GPIO descriptor acquiring code] Signed-off-by:
Geert Uytterhoeven <geert+renesas@glider.be> Tested-by:
Richard Leitner <richard.leitner@skidata.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- Documentation/devicetree/bindings/net/phy.txt 2 additions, 0 deletionsDocumentation/devicetree/bindings/net/phy.txt
- drivers/net/phy/at803x.c 3 additions, 15 deletionsdrivers/net/phy/at803x.c
- drivers/net/phy/mdio_bus.c 21 additions, 0 deletionsdrivers/net/phy/mdio_bus.c
- drivers/net/phy/mdio_device.c 23 additions, 2 deletionsdrivers/net/phy/mdio_device.c
- drivers/net/phy/phy_device.c 30 additions, 2 deletionsdrivers/net/phy/phy_device.c
- include/linux/mdio.h 3 additions, 0 deletionsinclude/linux/mdio.h
- include/linux/phy.h 5 additions, 0 deletionsinclude/linux/phy.h
Loading
Please register or sign in to comment