net: phy: at803x: add support for qca 8327 A variant internal phy
authorAnsuel Smith <ansuelsmth@gmail.com>
Sun, 19 Sep 2021 16:28:15 +0000 (18:28 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 20 Sep 2021 08:51:21 +0000 (09:51 +0100)
For qca8327 internal phy there are 2 different switch variant with 2
different phy id. Add this missing variant so the internal phy can be
correctly identified and fixed.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/at803x.c

index 719860a..618e014 100644 (file)
 #define ATH8035_PHY_ID                         0x004dd072
 #define AT8030_PHY_ID_MASK                     0xffffffef
 
-#define QCA8327_PHY_ID                         0x004dd034
+#define QCA8327_A_PHY_ID                       0x004dd033
+#define QCA8327_B_PHY_ID                       0x004dd034
 #define QCA8337_PHY_ID                         0x004dd036
 #define QCA8K_PHY_ID_MASK                      0xffffffff
 
@@ -1421,10 +1422,23 @@ static struct phy_driver at803x_driver[] = {
        .get_strings = at803x_get_strings,
        .get_stats = at803x_get_stats,
 }, {
-       /* QCA8327 */
-       .phy_id = QCA8327_PHY_ID,
+       /* QCA8327-A from switch QCA8327-AL1A */
+       .phy_id = QCA8327_A_PHY_ID,
        .phy_id_mask = QCA8K_PHY_ID_MASK,
-       .name = "QCA PHY 8327",
+       .name = "QCA PHY 8327-A",
+       /* PHY_GBIT_FEATURES */
+       .probe = at803x_probe,
+       .flags = PHY_IS_INTERNAL,
+       .config_init = qca83xx_config_init,
+       .soft_reset = genphy_soft_reset,
+       .get_sset_count = at803x_get_sset_count,
+       .get_strings = at803x_get_strings,
+       .get_stats = at803x_get_stats,
+}, {
+       /* QCA8327-B from switch QCA8327-BL1A */
+       .phy_id = QCA8327_B_PHY_ID,
+       .phy_id_mask = QCA8K_PHY_ID_MASK,
+       .name = "QCA PHY 8327-B",
        /* PHY_GBIT_FEATURES */
        .probe = at803x_probe,
        .flags = PHY_IS_INTERNAL,
@@ -1444,7 +1458,8 @@ static struct mdio_device_id __maybe_unused atheros_tbl[] = {
        { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) },
        { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) },
        { PHY_ID_MATCH_EXACT(QCA8337_PHY_ID) },
-       { PHY_ID_MATCH_EXACT(QCA8327_PHY_ID) },
+       { PHY_ID_MATCH_EXACT(QCA8327_A_PHY_ID) },
+       { PHY_ID_MATCH_EXACT(QCA8327_B_PHY_ID) },
        { }
 };