net: phy: micrel: ksz886x/ksz8081: add cabletest support
authorOleksij Rempel <o.rempel@pengutronix.de>
Mon, 14 Jun 2021 04:31:25 +0000 (06:31 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Jun 2021 19:54:43 +0000 (12:54 -0700)
commit49011e0c1555dd7a689d0f32fd78c1ecd43e59cd
tree6419850c016f2e0f5acb59ce2ab6f4c0c6bd42b1
parentc916e8e1ea724db0f7bae36c11aaadc631226321
net: phy: micrel: ksz886x/ksz8081: add cabletest support

This patch support for cable test for the ksz886x switches and the
ksz8081 PHY.

The patch was tested on a KSZ8873RLL switch with following results:

- port 1:
  - provides invalid values, thus return -ENOTSUPP
    (Errata: DS80000830A: "LinkMD does not work on Port 1",
     http://ww1.microchip.com/downloads/en/DeviceDoc/KSZ8873-Errata-DS80000830A.pdf)

- port 2:
  - can detect distance
  - can detect open on each wire of pair A (wire 1 and 2)
  - can detect open only on one wire of pair B (only wire 3)
  - can detect short between wires of a pair (wires 1 + 2 or 3 + 6)
  - short between pairs is detected as open.
    For example short between wires 2 + 3 is detected as open.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/microchip/ksz8795.c
drivers/net/phy/micrel.c
include/linux/micrel_phy.h