Commit f956af3f authored by Michael Walle's avatar Michael Walle Committed by David S. Miller

net: phy: bcm54140: add cable diagnostics support

Use the generic cable tester functions from bcm-phy-lib to add cable
tester support.

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 B, result: Open Circuit
  Pair: Pair C, result: Open Circuit
  Pair: Pair D, result: Open Circuit
  Pair: Pair A, fault length: 106.60m
  Pair: Pair B, fault length: 103.32m
  Pair: Pair C, fault length: 104.96m
  Pair: Pair D, fault length: 106.60m

1m cable, A/B connected, pair 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 D, result: Open Circuit
  Pair: Pair C, fault length: 0.82m
  Pair: Pair D, fault length: 1.64m

1m cable, A/B connected, pair C shorted with D:
  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 to another pair
  Pair: Pair D, result: Short to another pair
  Pair: Pair C, fault length: 1.64m
  Pair: Pair D, fault length: 1.64m

The granularity of the length measurement seems to be 82cm.
Signed-off-by: default avatarMichael Walle <michael@walle.cc>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 11ecf8c5
...@@ -831,6 +831,7 @@ static struct phy_driver bcm54140_drivers[] = { ...@@ -831,6 +831,7 @@ static struct phy_driver bcm54140_drivers[] = {
.phy_id = PHY_ID_BCM54140, .phy_id = PHY_ID_BCM54140,
.phy_id_mask = BCM54140_PHY_ID_MASK, .phy_id_mask = BCM54140_PHY_ID_MASK,
.name = "Broadcom BCM54140", .name = "Broadcom BCM54140",
.flags = PHY_POLL_CABLE_TEST,
.features = PHY_GBIT_FEATURES, .features = PHY_GBIT_FEATURES,
.config_init = bcm54140_config_init, .config_init = bcm54140_config_init,
.did_interrupt = bcm54140_did_interrupt, .did_interrupt = bcm54140_did_interrupt,
...@@ -842,6 +843,8 @@ static struct phy_driver bcm54140_drivers[] = { ...@@ -842,6 +843,8 @@ static struct phy_driver bcm54140_drivers[] = {
.soft_reset = genphy_soft_reset, .soft_reset = genphy_soft_reset,
.get_tunable = bcm54140_get_tunable, .get_tunable = bcm54140_get_tunable,
.set_tunable = bcm54140_set_tunable, .set_tunable = bcm54140_set_tunable,
.cable_test_start = bcm_phy_cable_test_start_rdb,
.cable_test_get_status = bcm_phy_cable_test_get_status_rdb,
}, },
}; };
module_phy_driver(bcm54140_drivers); module_phy_driver(bcm54140_drivers);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment