phy/micrel: Implement support for KSZ8021
authorMarek Vasut <marex@denx.de>
Sun, 23 Sep 2012 16:58:49 +0000 (16:58 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Sep 2012 19:54:32 +0000 (15:54 -0400)
commit212ea99a85d30dbc834888384c57ad5abbc67a0a
tree565c35bd99f9b7a5b3d4fecece05c0a1201261ba
parent2b018d57ff18e5405823e5cb59651a5b4d946d7b
phy/micrel: Implement support for KSZ8021

The KSZ8021 PHY was previously caught by KS8051, which is not correct.
This PHY needs additional setup if it is strapped for address 0. In such
case an reserved bit must be written in the 0x16, "Operation Mode Strap
Override" register. According to the KS8051 datasheet, that bit means
"PHY Address 0 in non-broadcast" and it indeed behaves as such on KSZ8021.
The issue where the ethernet controller (Freescale FEC) did not communicate
with network is fixed by writing this bit as 1.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: David J. Choi <david.choi@micrel.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/micrel.c
include/linux/micrel_phy.h