summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/b44.h
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2013-12-20 02:16:10 +0100
committerDavid S. Miller <davem@davemloft.net>2013-12-20 20:48:48 -0500
commit86f4ea63e696db996f68d1065b55506e75a7d765 (patch)
tree5c530420ff7666ea969c0ca683750062ef771698 /drivers/net/ethernet/broadcom/b44.h
parent348baa6c81cf774811040e4da01438d077a08301 (diff)
downloadlinux-86f4ea63e696db996f68d1065b55506e75a7d765.tar.bz2
b44: add phylib support
Most of the older home routers based on the Broadcom BCM47XX SoC series are using a MAC that is supported by b44. On most of these routers not the internal PHY of this MAC core is used, but a switch sometimes on an external chip or integrated into the same SoC as the Ethernet core. For this switch a special PHY driver is needed which should not be integrated into b44 as the same switches are also used by other Broadcom home networking SoCs which are using different Ethernet MAC drivers. This was tested with the b53 switch driver which is currently on its way to mainline. If the internal PHY is not used, b44 will now search on the MDIO bus for a phy and use the Linux phylib subsystem to register a driver. Support for the internal PHY must stay here, because there are some device which are suing the internal phy. With this patch we scan the mdio bus when the sprom or nvram says that the PHY address is 30, if a PHY was found at this address b44 uses it. This was tested with a BCM4704, BCM4712 and BCM5354. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/b44.h')
-rw-r--r--drivers/net/ethernet/broadcom/b44.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/b44.h b/drivers/net/ethernet/broadcom/b44.h
index 4b0c5d2fa598..de81639d9236 100644
--- a/drivers/net/ethernet/broadcom/b44.h
+++ b/drivers/net/ethernet/broadcom/b44.h
@@ -397,6 +397,9 @@ struct b44 {
u32 tx_pending;
u8 phy_addr;
u8 force_copybreak;
+ struct phy_device *phydev;
+ struct mii_bus *mii_bus;
+ int old_link;
struct mii_if_info mii_if;
};