Skip to content

Commit

Permalink
phy: Add support for Marvell 88E1118 PHY
Browse files Browse the repository at this point in the history
This patch will add support for the Marvell 88E1118 PHY which supports gigabit ethernet among other things.

Signed-off-by: Ron Madrid <ron_madrid@sbcglobal.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ron Madrid authored and David S. Miller committed Nov 15, 2008
1 parent d53b93f commit 605f196
Showing 1 changed file with 66 additions and 0 deletions.
66 changes: 66 additions & 0 deletions drivers/net/phy/marvell.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,59 @@ static int m88e1111_config_init(struct phy_device *phydev)
return 0;
}

static int m88e1118_config_aneg(struct phy_device *phydev)
{
int err;

err = phy_write(phydev, MII_BMCR, BMCR_RESET);
if (err < 0)
return err;

err = phy_write(phydev, MII_M1011_PHY_SCR,
MII_M1011_PHY_SCR_AUTO_CROSS);
if (err < 0)
return err;

err = genphy_config_aneg(phydev);
return 0;
}

static int m88e1118_config_init(struct phy_device *phydev)
{
int err;

/* Change address */
err = phy_write(phydev, 0x16, 0x0002);
if (err < 0)
return err;

/* Enable 1000 Mbit */
err = phy_write(phydev, 0x15, 0x1070);
if (err < 0)
return err;

/* Change address */
err = phy_write(phydev, 0x16, 0x0003);
if (err < 0)
return err;

/* Adjust LED Control */
err = phy_write(phydev, 0x10, 0x021e);
if (err < 0)
return err;

/* Reset address */
err = phy_write(phydev, 0x16, 0x0);
if (err < 0)
return err;

err = phy_write(phydev, MII_BMCR, BMCR_RESET);
if (err < 0)
return err;

return 0;
}

static int m88e1145_config_init(struct phy_device *phydev)
{
int err;
Expand Down Expand Up @@ -415,6 +468,19 @@ static struct phy_driver marvell_drivers[] = {
.config_intr = &marvell_config_intr,
.driver = { .owner = THIS_MODULE },
},
{
.phy_id = 0x01410e10,
.phy_id_mask = 0xfffffff0,
.name = "Marvell 88E1118",
.features = PHY_GBIT_FEATURES,
.flags = PHY_HAS_INTERRUPT,
.config_init = &m88e1118_config_init,
.config_aneg = &m88e1118_config_aneg,
.read_status = &genphy_read_status,
.ack_interrupt = &marvell_ack_interrupt,
.config_intr = &marvell_config_intr,
.driver = {.owner = THIS_MODULE,},
},
{
.phy_id = 0x01410cd0,
.phy_id_mask = 0xfffffff0,
Expand Down

0 comments on commit 605f196

Please sign in to comment.