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

Commit 6a443a0f authored by Matt Carlson's avatar Matt Carlson Committed by David S. Miller
Browse files

tg3: Push phylib definitions to phylib



This patch pushes phylib definitions out to phylib headers.  For phy
IDs, this removes some code duplication.

Signed-off-by: default avatarMatt Carlson <mcarlson@broadcom.com>
Reviewed-by: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 79eb6904
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -18,9 +18,6 @@
#include <linux/phy.h>
#include <linux/brcmphy.h>

#define PHY_ID_BCM50610		0x0143bd60
#define PHY_ID_BCM50610M	0x0143bd70
#define PHY_ID_BCM57780		0x03625d90

#define BRCM_PHY_MODEL(phydev) \
	((phydev)->drv->phy_id & (phydev)->drv->phy_id_mask)
@@ -823,7 +820,7 @@ static struct phy_driver bcm57780_driver = {
};

static struct phy_driver bcmac131_driver = {
	.phy_id		= 0x0143bc70,
	.phy_id		= PHY_ID_BCMAC131,
	.phy_id_mask	= 0xfffffff0,
	.name		= "Broadcom BCMAC131",
	.features	= PHY_BASIC_FEATURES |
+16 −16
Original line number Diff line number Diff line
@@ -955,17 +955,17 @@ static void tg3_mdio_config_5785(struct tg3 *tp)

	phydev = tp->mdio_bus->phy_map[TG3_PHY_MII_ADDR];
	switch (phydev->drv->phy_id & phydev->drv->phy_id_mask) {
	case TG3_PHY_ID_BCM50610:
	case TG3_PHY_ID_BCM50610M:
	case PHY_ID_BCM50610:
	case PHY_ID_BCM50610M:
		val = MAC_PHYCFG2_50610_LED_MODES;
		break;
	case TG3_PHY_ID_BCMAC131:
	case PHY_ID_BCMAC131:
		val = MAC_PHYCFG2_AC131_LED_MODES;
		break;
	case TG3_PHY_ID_RTL8211C:
	case PHY_ID_RTL8211C:
		val = MAC_PHYCFG2_RTL8211C_LED_MODES;
		break;
	case TG3_PHY_ID_RTL8201E:
	case PHY_ID_RTL8201E:
		val = MAC_PHYCFG2_RTL8201E_LED_MODES;
		break;
	default:
@@ -1115,12 +1115,12 @@ static int tg3_mdio_init(struct tg3 *tp)
	}

	switch (phydev->drv->phy_id & phydev->drv->phy_id_mask) {
	case TG3_PHY_ID_BCM57780:
	case PHY_ID_BCM57780:
		phydev->interface = PHY_INTERFACE_MODE_GMII;
		phydev->dev_flags |= PHY_BRCM_AUTO_PWRDWN_ENABLE;
		break;
	case TG3_PHY_ID_BCM50610:
	case TG3_PHY_ID_BCM50610M:
	case PHY_ID_BCM50610:
	case PHY_ID_BCM50610M:
		phydev->dev_flags |= PHY_BRCM_CLEAR_RGMII_MODE |
				     PHY_BRCM_RX_REFCLK_UNUSED |
				     PHY_BRCM_DIS_TXCRXC_NOENRGY |
@@ -1132,11 +1132,11 @@ static int tg3_mdio_init(struct tg3 *tp)
		if (tp->tg3_flags3 & TG3_FLG3_RGMII_EXT_IBND_TX_EN)
			phydev->dev_flags |= PHY_BRCM_EXT_IBND_TX_ENABLE;
		/* fallthru */
	case TG3_PHY_ID_RTL8211C:
	case PHY_ID_RTL8211C:
		phydev->interface = PHY_INTERFACE_MODE_RGMII;
		break;
	case TG3_PHY_ID_RTL8201E:
	case TG3_PHY_ID_BCMAC131:
	case PHY_ID_RTL8201E:
	case PHY_ID_BCMAC131:
		phydev->interface = PHY_INTERFACE_MODE_MII;
		phydev->dev_flags |= PHY_BRCM_AUTO_PWRDWN_ENABLE;
		tp->tg3_flags3 |= TG3_FLG3_PHY_IS_FET;
@@ -2563,11 +2563,11 @@ static int tg3_set_power_state(struct tg3 *tp, pci_power_t state)
			phy_start_aneg(phydev);

			phyid = phydev->drv->phy_id & phydev->drv->phy_id_mask;
			if (phyid != TG3_PHY_ID_BCMAC131) {
				phyid &= TG3_PHY_OUI_MASK;
				if (phyid == TG3_PHY_OUI_1 ||
				    phyid == TG3_PHY_OUI_2 ||
				    phyid == TG3_PHY_OUI_3)
			if (phyid != PHY_ID_BCMAC131) {
				phyid &= PHY_BCM_OUI_MASK;
				if (phyid == PHY_BCM_OUI_1 ||
				    phyid == PHY_BCM_OUI_2 ||
				    phyid == PHY_BCM_OUI_3)
					do_low_power = true;
			}
		}
+3 −11
Original line number Diff line number Diff line
@@ -2943,22 +2943,14 @@ struct tg3 {
#define TG3_PHY_ID_BCM57765		0x5c0d8a40
#define TG3_PHY_ID_BCM5906		0xdc00ac40
#define TG3_PHY_ID_BCM8002		0x60010140
#define TG3_PHY_ID_BCM50610		0x0143bd60
#define TG3_PHY_ID_BCM50610M		0x0143bd70
#define TG3_PHY_ID_BCMAC131		0x0143bc70
#define TG3_PHY_ID_RTL8211C		0x001cc910
#define TG3_PHY_ID_RTL8201E		0x00008200
#define TG3_PHY_ID_BCM57780		0x03625d90
#define TG3_PHY_ID_INVALID		0xffffffff

#define PHY_ID_RTL8211C			0x001cc910
#define PHY_ID_RTL8201E			0x00008200

#define TG3_PHY_ID_REV_MASK		0x0000000f
#define TG3_PHY_REV_BCM5401_B0		0x1

#define TG3_PHY_OUI_MASK		0xfffffc00
#define TG3_PHY_OUI_1			0x00206000
#define TG3_PHY_OUI_2			0x0143bc00
#define TG3_PHY_OUI_3			0x03625c00

	/* This macro assumes the passed PHY ID is
	 * already masked with TG3_PHY_ID_MASK.
	 */
+11 −0
Original line number Diff line number Diff line
#define PHY_ID_BCM50610			0x0143bd60
#define PHY_ID_BCM50610M		0x0143bd70
#define PHY_ID_BCMAC131			0x0143bc70
#define PHY_ID_BCM57780			0x03625d90

#define PHY_BCM_OUI_MASK		0xfffffc00
#define PHY_BCM_OUI_1			0x00206000
#define PHY_BCM_OUI_2			0x0143bc00
#define PHY_BCM_OUI_3			0x03625c00


#define PHY_BCM_FLAGS_MODE_COPPER	0x00000001
#define PHY_BCM_FLAGS_MODE_1000BX	0x00000002
#define PHY_BCM_FLAGS_INTF_SGMII	0x00000010