ibm_newemac: Add ET1011c PHY support
Stefan Roese [Wed, 5 Dec 2007 00:14:26 +0000 (11:14 +1100)]
This adds support for the Agere ET1011c PHY as found on the AMCC Taishan
board.

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

drivers/net/ibm_newemac/phy.c

index a5e89c5..9308fad 100644 (file)
@@ -327,6 +327,42 @@ static int m88e1111_init(struct mii_phy *phy)
        return  0;
 }
 
+static int et1011c_init(struct mii_phy *phy)
+{
+       u16 reg_short;
+
+       reg_short = (u16)(phy_read(phy, 0x16));
+       reg_short &= ~(0x7);
+       reg_short |= 0x6;       /* RGMII Trace Delay*/
+       phy_write(phy, 0x16, reg_short);
+
+       reg_short = (u16)(phy_read(phy, 0x17));
+       reg_short &= ~(0x40);
+       phy_write(phy, 0x17, reg_short);
+
+       phy_write(phy, 0x1c, 0x74f0);
+       return 0;
+}
+
+static struct mii_phy_ops et1011c_phy_ops = {
+       .init           = et1011c_init,
+       .setup_aneg     = genmii_setup_aneg,
+       .setup_forced   = genmii_setup_forced,
+       .poll_link      = genmii_poll_link,
+       .read_link      = genmii_read_link
+};
+
+static struct mii_phy_def et1011c_phy_def = {
+       .phy_id         = 0x0282f000,
+       .phy_id_mask    = 0x0fffff00,
+       .name           = "ET1011C Gigabit Ethernet",
+       .ops            = &et1011c_phy_ops
+};
+
+
+
+
+
 static struct mii_phy_ops m88e1111_phy_ops = {
        .init           = m88e1111_init,
        .setup_aneg     = genmii_setup_aneg,
@@ -344,6 +380,7 @@ static struct mii_phy_def m88e1111_phy_def = {
 };
 
 static struct mii_phy_def *mii_phy_table[] = {
+       &et1011c_phy_def,
        &cis8201_phy_def,
        &bcm5248_phy_def,
        &m88e1111_phy_def,