]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: phy: mchp: Add support for LAN8814 QUAD PHY
authorDivya Koppera <Divya.Koppera@microchip.com>
Fri, 11 Sep 2020 13:18:44 +0000 (18:48 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 5 Jul 2024 07:08:27 +0000 (09:08 +0200)
[ Upstream commit 1623ad8ec04c771a54975fb84b22bc21c2dbcac1 ]

LAN8814 is a low-power, quad-port triple-speed (10BASE-T/100BASETX/1000BASE-T)
Ethernet physical layer transceiver (PHY). It supports transmission and
reception of data on standard CAT-5, as well as CAT-5e and CAT-6, unshielded
twisted pair (UTP) cables.

LAN8814 supports industry-standard QSGMII (Quad Serial Gigabit Media
Independent Interface) and Q-USGMII (Quad Universal Serial Gigabit Media
Independent Interface) providing chip-to-chip connection to four Gigabit
Ethernet MACs using a single serialized link (differential pair) in each
direction.

The LAN8814 SKU supports high-accuracy timestamping functions to
support IEEE-1588 solutions using Microchip Ethernet switches, as well as
customer solutions based on SoCs and FPGAs.

The LAN8804 SKU has same features as that of LAN8814 SKU except that it does
not support 1588, SyncE, or Q-USGMII with PCH/MCH.

This adds support for 10BASE-T, 100BASE-TX, and 1000BASE-T,
QSGMII link with the MAC.

Signed-off-by: Divya Koppera<divya.koppera@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stable-dep-of: 54a4e5c16382 ("net: phy: micrel: add Microchip KSZ 9477 to the device table")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/phy/micrel.c
include/linux/micrel_phy.h

index caaa51a70cbdca1d469d967b97aae225cfed05bf..2cd812c097baff8f83fb12fd47a6ef46de3f0138 100644 (file)
@@ -1149,6 +1149,19 @@ static struct phy_driver ksphy_driver[] = {
        .get_stats      = kszphy_get_stats,
        .suspend        = genphy_suspend,
        .resume         = kszphy_resume,
+}, {
+       .phy_id         = PHY_ID_LAN8814,
+       .phy_id_mask    = MICREL_PHY_ID_MASK,
+       .name           = "Microchip INDY Gigabit Quad PHY",
+       .driver_data    = &ksz9021_type,
+       .probe          = kszphy_probe,
+       .soft_reset     = genphy_soft_reset,
+       .read_status    = ksz9031_read_status,
+       .get_sset_count = kszphy_get_sset_count,
+       .get_strings    = kszphy_get_strings,
+       .get_stats      = kszphy_get_stats,
+       .suspend        = genphy_suspend,
+       .resume         = kszphy_resume,
 }, {
        .phy_id         = PHY_ID_KSZ9131,
        .phy_id_mask    = MICREL_PHY_ID_MASK,
@@ -1221,6 +1234,7 @@ static struct mdio_device_id __maybe_unused micrel_tbl[] = {
        { PHY_ID_KSZ8081, MICREL_PHY_ID_MASK },
        { PHY_ID_KSZ8873MLL, MICREL_PHY_ID_MASK },
        { PHY_ID_KSZ886X, MICREL_PHY_ID_MASK },
+       { PHY_ID_LAN8814, MICREL_PHY_ID_MASK },
        { }
 };
 
index 75f880c25bb86cacd9370a61bd2db66c9427296f..416ee6dd25743d97e12f086d25364bb2cca8c169 100644 (file)
@@ -27,6 +27,7 @@
 #define PHY_ID_KSZ8061         0x00221570
 #define PHY_ID_KSZ9031         0x00221620
 #define PHY_ID_KSZ9131         0x00221640
+#define PHY_ID_LAN8814         0x00221660
 
 #define PHY_ID_KSZ886X         0x00221430
 #define PHY_ID_KSZ8863         0x00221435