> -----Original Message----- > From: Kumar Gala [mailto:ga...@kernel.crashing.org] > Sent: Friday, January 15, 2010 12:20 AM > To: Liu Yu-B13201 > Cc: da...@davemloft.net; linuxppc-dev@lists.ozlabs.org; > net...@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: > > > Signed-off-by: Liu Yu <yu....@freescale.com> > > --- > > drivers/net/phy/marvell.c | 38 > ++++++++++++++++++++++++++++++++++++++ > > 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) > > 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); > > + 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. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev