mdio_bus: Issue GPIO RESET to PHYs.
authorRoger Quadros <rogerq@ti.com>
Fri, 21 Apr 2017 13:15:38 +0000 (16:15 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Apr 2017 16:40:24 +0000 (12:40 -0400)
commit69226896ad636b94f6d2e55d75ff21a29c4de83b
treef5df9ce46570ffe61c581a9feb68471c9a86cdee
parent15769ff8b6d560a358761598aad5fc413ce2251b
mdio_bus: Issue GPIO RESET to PHYs.

Some boards [1] leave the PHYs at an invalid state
during system power-up or reset thus causing unreliability
issues with the PHY which manifests as PHY not being detected
or link not functional. To fix this, these PHYs need to be RESET
via a GPIO connected to the PHY's RESET pin.

Some boards have a single GPIO controlling the PHY RESET pin of all
PHYs on the bus whereas some others have separate GPIOs controlling
individual PHY RESETs.

In both cases, the RESET de-assertion cannot be done in the PHY driver
as the PHY will not probe till its reset is de-asserted.
So do the RESET de-assertion in the MDIO bus driver.

[1] - am572x-idk, am571x-idk, a437x-idk

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/devicetree/bindings/net/mdio.txt [new file with mode: 0644]
drivers/net/phy/mdio_bus.c
drivers/of/of_mdio.c
include/linux/phy.h