net: phy: marvell: add Marvell specific PHY loopback
authorMohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>
Sat, 15 Jan 2022 09:25:15 +0000 (17:25 +0800)
committerDavid S. Miller <davem@davemloft.net>
Sat, 15 Jan 2022 22:38:27 +0000 (22:38 +0000)
commit020a45aff1190c32b1087cd75b57fbf6bff46ea6
treeaa52ad15a1af61478cced160997419ae593c284f
parent9a9acdccdfa430457986db608ee4ae4840107057
net: phy: marvell: add Marvell specific PHY loopback

Existing genphy_loopback() is not applicable for Marvell PHY. Besides
configuring bit-6 and bit-13 in Page 0 Register 0 (Copper Control
Register), it is also required to configure same bits  in Page 2
Register 21 (MAC Specific Control Register 2) according to speed of
the loopback is operating.

Tested working on Marvell88E1510 PHY for all speeds (1000/100/10Mbps).

FIXME: Based on trial and error test, it seem 1G need to have delay between
soft reset and loopback enablement.

Fixes: 014068dcb5b1 ("net: phy: genphy_loopback: add link speed configuration")
Cc: <stable@vger.kernel.org> # 5.15.x
Signed-off-by: Mohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/marvell.c