brcm63xx: do a full reset phy cycle

Make sure we do a proper reset of the phy, if the phy reset is defined.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
lede-17.01
Jonas Gorski 2017-02-01 12:11:07 +01:00
parent 921cecbdf8
commit f49efcd325
1 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,28 @@
From: Jonas Gorski <jonas.gorski@gmail.com>
Subject: [PATCH] net: bcm63xx_enet: fully reset ephy
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
---
drivers/net/ethernet/broadcom/bcm63xx_enet.c | 4 ++--
1 file changed, 2 insertions(+), , 1 deletions(-)
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
@@ -2857,7 +2857,7 @@ static int bcm_enet_shared_probe(struct
memset(bcm_enet_shared_base, 0, sizeof(bcm_enet_shared_base));
- ephy_reset = devm_gpiod_get_optional(&pdev->dev, "ephy-reset", GPIOD_ASIS);
+ ephy_reset = devm_gpiod_get_optional(&pdev->dev, "ephy-reset", GPIOD_OUT_HIGH);
if (IS_ERR(ephy_reset))
return PTR_ERR(ephy_reset);
@@ -2871,7 +2871,7 @@ static int bcm_enet_shared_probe(struct
memcpy(bcm_enet_shared_base, p, sizeof(bcm_enet_shared_base));
if (ephy_reset)
- gpiod_direction_output(ephy_reset, 0);
+ gpiod_set_value(ephy_reset, 0);
return 0;
}