Skip to content

Commit

Permalink
net: phy: Add DP83825I to the DP83822 driver
Browse files Browse the repository at this point in the history
Add the DP83825I ethernet PHY to the DP83822 driver.
These devices share the same WoL register bits and addresses.

The phy_driver init was made into a macro as there may be future
devices appended to this driver that will share the register space.

http://www.ti.com/lit/gpn/dp83825i

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Dan Murphy authored and David S. Miller committed Mar 21, 2019
1 parent e0831ef commit 06acc17
Showing 1 changed file with 20 additions and 14 deletions.
34 changes: 20 additions & 14 deletions drivers/net/phy/dp83822.c
Original file line number Diff line number Diff line change
@@ -15,6 +15,8 @@
#include <linux/netdevice.h>

#define DP83822_PHY_ID 0x2000a240
#define DP83825I_PHY_ID 0x2000a150

#define DP83822_DEVADDR 0x1f

#define MII_DP83822_PHYSCR 0x11
@@ -304,26 +306,30 @@ static int dp83822_resume(struct phy_device *phydev)
return 0;
}

#define DP83822_PHY_DRIVER(_id, _name) \
{ \
PHY_ID_MATCH_MODEL(_id), \
.name = (_name), \
.features = PHY_BASIC_FEATURES, \
.soft_reset = dp83822_phy_reset, \
.config_init = dp83822_config_init, \
.get_wol = dp83822_get_wol, \
.set_wol = dp83822_set_wol, \
.ack_interrupt = dp83822_ack_interrupt, \
.config_intr = dp83822_config_intr, \
.suspend = dp83822_suspend, \
.resume = dp83822_resume, \
}

static struct phy_driver dp83822_driver[] = {
{
.phy_id = DP83822_PHY_ID,
.phy_id_mask = 0xfffffff0,
.name = "TI DP83822",
.features = PHY_BASIC_FEATURES,
.config_init = dp83822_config_init,
.soft_reset = dp83822_phy_reset,
.get_wol = dp83822_get_wol,
.set_wol = dp83822_set_wol,
.ack_interrupt = dp83822_ack_interrupt,
.config_intr = dp83822_config_intr,
.suspend = dp83822_suspend,
.resume = dp83822_resume,
},
DP83822_PHY_DRIVER(DP83822_PHY_ID, "TI DP83822"),
DP83822_PHY_DRIVER(DP83825I_PHY_ID, "TI DP83825I"),
};
module_phy_driver(dp83822_driver);

static struct mdio_device_id __maybe_unused dp83822_tbl[] = {
{ DP83822_PHY_ID, 0xfffffff0 },
{ DP83825I_PHY_ID, 0xfffffff0 },
{ },
};
MODULE_DEVICE_TABLE(mdio, dp83822_tbl);

0 comments on commit 06acc17

Please sign in to comment.