[PATCH] fec_8xx: Add support for Intel PHY LX971
The following patch add support for the Intel LX971 PHY. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
This commit is contained in:
parent
b90bd04d41
commit
23da0c20ef
|
@ -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)
|
||||||
|
|
||||||
#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[] = {
|
||||||
.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,
|
||||||
|
|
Loading…
Reference in a new issue