• Michael Walle's avatar
    net: phy: at803x: add cable diagnostics support · 6cb75767
    Michael Walle authored
    The AR8031/AR8033 and the AR8035 support cable diagnostics. Adding
    driver support is straightforward, so lets add it.
    
    The PHY just do one pair at a time, so we have to start the test four
    times. The cable_test_get_status() can block and therefore we can just
    busy poll the test completion and continue with the next pair until we
    are done.
    The time delta counter seems to run at 125MHz which just gives us a
    resolution of about 82.4cm per tick.
    
    100m cable, A/B/C/D open:
      Cable test started for device eth0.
      Cable test completed for device eth0.
      Pair: Pair A, result: Open Circuit
      Pair: Pair A, fault length: 107.94m
      Pair: Pair B, result: Open Circuit
      Pair: Pair B, fault length: 104.64m
      Pair: Pair C, result: Open Circuit
      Pair: Pair C, fault length: 105.47m
      Pair: Pair D, result: Open Circuit
      Pair: Pair D, fault length: 107.94m
    
    1m cable, A/B connected, C shorted, D open:
      Cable test started for device eth0.
      Cable test completed for device eth0.
      Pair: Pair A, result: OK
      Pair: Pair B, result: OK
      Pair: Pair C, result: Short within Pair
      Pair: Pair C, fault length: 0.82m
      Pair: Pair D, result: Open Circuit
      Pair: Pair D, fault length: 0.82m
    Signed-off-by: default avatarMichael Walle <michael@walle.cc>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6cb75767
at803x.c 27.8 KB