OSDN Git Service

net: phy: at803x: add support for AR8032 PHY
authorDavid Bauer <mail@david-bauer.net>
Fri, 17 Apr 2020 13:41:59 +0000 (15:41 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 18 Apr 2020 22:45:52 +0000 (15:45 -0700)
This adds support for the Qualcomm Atheros AR8032 Fast Ethernet PHY.

It shares many similarities with the already supported AR8030 PHY but
additionally supports MII connection to the MAC.

Signed-off-by: David Bauer <mail@david-bauer.net>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/at803x.c

index 31f731e..31b6edc 100644 (file)
 #define ATH9331_PHY_ID 0x004dd041
 #define ATH8030_PHY_ID 0x004dd076
 #define ATH8031_PHY_ID 0x004dd074
+#define ATH8032_PHY_ID 0x004dd023
 #define ATH8035_PHY_ID 0x004dd072
 #define AT803X_PHY_ID_MASK                     0xffffffef
 
@@ -763,6 +764,21 @@ static struct phy_driver at803x_driver[] = {
        .ack_interrupt          = &at803x_ack_interrupt,
        .config_intr            = &at803x_config_intr,
 }, {
+       /* Qualcomm Atheros AR8032 */
+       PHY_ID_MATCH_EXACT(ATH8032_PHY_ID),
+       .name                   = "Qualcomm Atheros AR8032",
+       .probe                  = at803x_probe,
+       .remove                 = at803x_remove,
+       .config_init            = at803x_config_init,
+       .link_change_notify     = at803x_link_change_notify,
+       .set_wol                = at803x_set_wol,
+       .get_wol                = at803x_get_wol,
+       .suspend                = at803x_suspend,
+       .resume                 = at803x_resume,
+       /* PHY_BASIC_FEATURES */
+       .ack_interrupt          = at803x_ack_interrupt,
+       .config_intr            = at803x_config_intr,
+}, {
        /* ATHEROS AR9331 */
        PHY_ID_MATCH_EXACT(ATH9331_PHY_ID),
        .name                   = "Qualcomm Atheros AR9331 built-in PHY",
@@ -778,6 +794,7 @@ module_phy_driver(at803x_driver);
 static struct mdio_device_id __maybe_unused atheros_tbl[] = {
        { ATH8030_PHY_ID, AT803X_PHY_ID_MASK },
        { ATH8031_PHY_ID, AT803X_PHY_ID_MASK },
+       { PHY_ID_MATCH_EXACT(ATH8032_PHY_ID) },
        { ATH8035_PHY_ID, AT803X_PHY_ID_MASK },
        { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) },
        { }