Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -12,3 +12,9 @@ config FEC_8XX_DM9161_PHY
	bool "Support DM9161 PHY"
	depends on FEC_8XX
	default n

config FEC_8XX_LXT971_PHY
	bool "Support LXT971/LXT972 PHY"
	depends on FEC_8XX
	default n
+42 −0
Original line number Diff line number Diff line
@@ -203,6 +203,39 @@ static void dm9161_shutdown(struct net_device *dev)

#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[] = {
@@ -215,6 +248,15 @@ static const struct phy_info phy_info[] = {
	 .shutdown = dm9161_shutdown,
	 },
#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
	{
	 .id = 0,