summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorFugang Duan <B38611@freescale.com>2011-11-25 18:27:29 +0800
committerJason Liu <r64343@freescale.com>2012-01-09 21:08:20 +0800
commit2e7088e6c8bb3dbb64e7fc13ea3fb4af89d57060 (patch)
tree0599ccc7564932657dde211d975e92fa050e8f07 /arch/arm
parent313242fd9a2e3d889a1a339c7d81ac26700b730c (diff)
ENGR00163040 - FEC : Fix ethernet cannot work after system sleep.
- Descript: Ethernet can't work in uboot and kernel DHCP throught press 'reset' key when send sleep command 'echo mem > /sys/power/state' - Cause: FEC driver will power down phy when system sleep. If just reset the board, FEC driver cannot run resume function. So, need power on phy in uboot and linux driver. Signed-off-by: Fugang Duan <B38611@freescale.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-mx6/board-mx6q_arm2.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_arm2.c b/arch/arm/mach-mx6/board-mx6q_arm2.c
index 4274d3d22008..053d3574bfa2 100644
--- a/arch/arm/mach-mx6/board-mx6q_arm2.c
+++ b/arch/arm/mach-mx6/board-mx6q_arm2.c
@@ -104,6 +104,8 @@
#define MX6Q_SMD_CSI0_RST IMX_GPIO_NR(4, 5)
#define MX6Q_SMD_CSI0_PWN IMX_GPIO_NR(5, 23)
+#define BMCR_PDOWN 0x0800 /* PHY Powerdown */
+
void __init early_console_setup(unsigned long base, struct clk *clk);
static struct clk *sata_clk;
static int esai_record;
@@ -506,6 +508,10 @@ static int mx6q_arm2_fec_phy_init(struct phy_device *phydev)
val |= 0x0100;
phy_write(phydev, 0x1e, val);
+ /*check phy power*/
+ val = phy_read(phydev, 0x0);
+ if (val & BMCR_PDOWN)
+ phy_write(phydev, 0x0, (val & ~BMCR_PDOWN));
return 0;
}