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>
This commit is contained in:

committed by
David S. Miller

parent
15769ff8b6
commit
69226896ad
@@ -217,6 +217,13 @@ struct mii_bus {
|
||||
* matching its address
|
||||
*/
|
||||
int irq[PHY_MAX_ADDR];
|
||||
|
||||
/* GPIO reset pulse width in microseconds */
|
||||
int reset_delay_us;
|
||||
/* Number of reset GPIOs */
|
||||
int num_reset_gpios;
|
||||
/* Array of RESET GPIO descriptors */
|
||||
struct gpio_desc **reset_gpiod;
|
||||
};
|
||||
#define to_mii_bus(d) container_of(d, struct mii_bus, dev)
|
||||
|
||||
|
Reference in New Issue
Block a user