Thread (11 messages) 11 messages, 5 authors, 2010-02-02

RE: [PATCH 4/4] phy: add RTBI mode for m88e1111

From: Liu Yu-B13201 <hidden>
Date: 2010-01-15 02:49:46
Also in: linuxppc-dev

 
-----Original Message-----
From: Kumar Gala [mailto:galak@kernel.crashing.org] 
Sent: Friday, January 15, 2010 12:20 AM
To: Liu Yu-B13201
Cc: davem@davemloft.net; linuxppc-dev@lists.ozlabs.org; 
netdev@vger.kernel.org
Subject: Re: [PATCH 4/4] phy: add RTBI mode for m88e1111


On Jan 14, 2010, at 2:13 AM, Liu Yu wrote:
quoted
Signed-off-by: Liu Yu <redacted>
---
drivers/net/phy/marvell.c |   38 
++++++++++++++++++++++++++++++++++++++
quoted
1 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index 6f69b9b..65ed385 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -63,6 +63,7 @@
#define MII_M1111_HWCFG_MODE_COPPER_RGMII	0xb
#define MII_M1111_HWCFG_MODE_FIBER_RGMII	0x3
#define MII_M1111_HWCFG_MODE_SGMII_NO_CLK	0x4
+#define MII_M1111_HWCFG_MODE_COPPER_RTBI	0x9
#define MII_M1111_HWCFG_FIBER_COPPER_AUTO	0x8000
#define MII_M1111_HWCFG_FIBER_COPPER_RES	0x2000
@@ -269,6 +270,43 @@ static int m88e1111_config_init(struct 
phy_device *phydev)
quoted
			return err;
	}

+	if (phydev->interface == PHY_INTERFACE_MODE_RTBI) {
+		temp = phy_read(phydev, MII_M1111_PHY_EXT_CR);
+		if (temp < 0)
+			return temp;
+		temp |= (MII_M1111_RX_DELAY | MII_M1111_TX_DELAY);
+		err = phy_write(phydev, MII_M1111_PHY_EXT_CR, temp);
+		if (err < 0)
+			return err;
+
+		temp = phy_read(phydev, MII_M1111_PHY_EXT_SR);
+		if (temp < 0)
+			return temp;
+		temp &= ~(MII_M1111_HWCFG_MODE_MASK | 
MII_M1111_HWCFG_FIBER_COPPER_RES);
quoted
+		temp |= 0x7 | MII_M1111_HWCFG_FIBER_COPPER_AUTO;
Does this magic 0x7 have some meaning?
Hrr...  it's GMII to fibre mode.
Document 88E1111_erata_RevB2  chapter 4.35 describ the reason.
Without this sometimes phys couldnot work.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help