net: micrel: Cable Diagnostics feature for lan8841 PHY
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Wed, 8 Feb 2023 11:44:06 +0000 (12:44 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 10 Feb 2023 06:29:52 +0000 (22:29 -0800)
Add support for cable diagnostics in lan8841 PHY. It has the same
registers layout as lan8814 PHY, therefore reuse the functionality.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20230208114406.1666671-1-horatiu.vultur@microchip.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/micrel.c

index 01677c28e4079b423f21a58f776628ce51bf13fb..727de4f4a14db4cb703db57a8a6a91f39f1d28a4 100644 (file)
@@ -378,6 +378,8 @@ static const struct kszphy_type lan8841_type = {
        .disable_dll_tx_bit     = BIT(14),
        .disable_dll_rx_bit     = BIT(14),
        .disable_dll_mask       = BIT_MASK(14),
+       .cable_diag_reg         = LAN8814_CABLE_DIAG,
+       .pair_mask              = LAN8814_WIRE_PAIR_MASK,
 };
 
 static int kszphy_extended_write(struct phy_device *phydev,
@@ -3520,6 +3522,7 @@ static struct phy_driver ksphy_driver[] = {
        .phy_id         = PHY_ID_LAN8841,
        .phy_id_mask    = MICREL_PHY_ID_MASK,
        .name           = "Microchip LAN8841 Gigabit PHY",
+       .flags          = PHY_POLL_CABLE_TEST,
        .driver_data    = &lan8841_type,
        .config_init    = lan8841_config_init,
        .probe          = lan8841_probe,
@@ -3531,6 +3534,8 @@ static struct phy_driver ksphy_driver[] = {
        .get_stats      = kszphy_get_stats,
        .suspend        = genphy_suspend,
        .resume         = genphy_resume,
+       .cable_test_start       = lan8814_cable_test_start,
+       .cable_test_get_status  = ksz886x_cable_test_get_status,
 }, {
        .phy_id         = PHY_ID_KSZ9131,
        .phy_id_mask    = MICREL_PHY_ID_MASK,