Commit 23da0c20 authored by Pantelis Antoniou's avatar Pantelis Antoniou Committed by Jeff Garzik

[PATCH] fec_8xx: Add support for Intel PHY LX971

The following patch add support for the Intel LX971 PHY.
Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
parent b90bd04d
...@@ -12,3 +12,9 @@ config FEC_8XX_DM9161_PHY ...@@ -12,3 +12,9 @@ config FEC_8XX_DM9161_PHY
bool "Support DM9161 PHY" bool "Support DM9161 PHY"
depends on FEC_8XX depends on FEC_8XX
default n default n
config FEC_8XX_LXT971_PHY
bool "Support LXT971/LXT972 PHY"
depends on FEC_8XX
default n
...@@ -203,6 +203,39 @@ static void dm9161_shutdown(struct net_device *dev) ...@@ -203,6 +203,39 @@ static void dm9161_shutdown(struct net_device *dev)
#endif #endif
#ifdef CONFIG_FEC_8XX_LXT971_PHY
/* Support for LXT971/972 PHY */
#define MII_LXT971_PCR 16 /* Port Control Register */
#define MII_LXT971_SR2 17 /* Status Register 2 */
#define MII_LXT971_IER 18 /* Interrupt Enable Register */
#define MII_LXT971_ISR 19 /* Interrupt Status Register */
#define MII_LXT971_LCR 20 /* LED Control Register */
#define MII_LXT971_TCR 30 /* Transmit Control Register */
static void lxt971_startup(struct net_device *dev)
{
struct fec_enet_private *fep = netdev_priv(dev);
fec_mii_write(dev, fep->mii_if.phy_id, MII_LXT971_IER, 0x00F2);
}
static void lxt971_ack_int(struct net_device *dev)
{
struct fec_enet_private *fep = netdev_priv(dev);
fec_mii_read(dev, fep->mii_if.phy_id, MII_LXT971_ISR);
}
static void lxt971_shutdown(struct net_device *dev)
{
struct fec_enet_private *fep = netdev_priv(dev);
fec_mii_write(dev, fep->mii_if.phy_id, MII_LXT971_IER, 0x0000);
}
#endif
/**********************************************************************************/ /**********************************************************************************/
static const struct phy_info phy_info[] = { static const struct phy_info phy_info[] = {
...@@ -215,6 +248,15 @@ static const struct phy_info phy_info[] = { ...@@ -215,6 +248,15 @@ static const struct phy_info phy_info[] = {
.shutdown = dm9161_shutdown, .shutdown = dm9161_shutdown,
}, },
#endif #endif
#ifdef CONFIG_FEC_8XX_LXT971_PHY
{
.id = 0x0001378e,
.name = "LXT971/972",
.startup = lxt971_startup,
.ack_int = lxt971_ack_int,
.shutdown = lxt971_shutdown,
},
#endif
#ifdef CONFIG_FEC_8XX_GENERIC_PHY #ifdef CONFIG_FEC_8XX_GENERIC_PHY
{ {
.id = 0, .id = 0,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment