b44: add phylib support
authorHauke Mehrtens <hauke@hauke-m.de>
Fri, 20 Dec 2013 01:16:10 +0000 (02:16 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 21 Dec 2013 01:48:48 +0000 (20:48 -0500)
commit86f4ea63e696db996f68d1065b55506e75a7d765
tree5c530420ff7666ea969c0ca683750062ef771698
parent348baa6c81cf774811040e4da01438d077a08301
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>
drivers/net/ethernet/broadcom/Kconfig
drivers/net/ethernet/broadcom/b44.c
drivers/net/ethernet/broadcom/b44.h