Commit dc855b3b authored by Stephen Agate's avatar Stephen Agate Committed by David S. Miller

net: phy: vitesse: add support for VSC8572

Add support for the Vitesse VSC8572 which is functionally equivalent to
the already supported VSC8574. As such, all the same handling functions
are used since the VSC8572 merely has half the number of phy blocks
internally.
Signed-off-by: default avatarStephen Agate <stephen.agate@uk.thalesgroup.com>
Signed-off-by: default avatarNeill Whillans <neill.whillans@codethink.co.uk>
Reviewed-by: default avatarDaniel Silverstone <daniel.silverstone@codethink.co.uk>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b3b9fa0a
...@@ -69,6 +69,7 @@ ...@@ -69,6 +69,7 @@
#define PHY_ID_VSC8234 0x000fc620 #define PHY_ID_VSC8234 0x000fc620
#define PHY_ID_VSC8244 0x000fc6c0 #define PHY_ID_VSC8244 0x000fc6c0
#define PHY_ID_VSC8514 0x00070670 #define PHY_ID_VSC8514 0x00070670
#define PHY_ID_VSC8572 0x000704d0
#define PHY_ID_VSC8574 0x000704a0 #define PHY_ID_VSC8574 0x000704a0
#define PHY_ID_VSC8601 0x00070420 #define PHY_ID_VSC8601 0x00070420
#define PHY_ID_VSC8662 0x00070660 #define PHY_ID_VSC8662 0x00070660
...@@ -166,6 +167,7 @@ static int vsc82xx_config_intr(struct phy_device *phydev) ...@@ -166,6 +167,7 @@ static int vsc82xx_config_intr(struct phy_device *phydev)
(phydev->drv->phy_id == PHY_ID_VSC8234 || (phydev->drv->phy_id == PHY_ID_VSC8234 ||
phydev->drv->phy_id == PHY_ID_VSC8244 || phydev->drv->phy_id == PHY_ID_VSC8244 ||
phydev->drv->phy_id == PHY_ID_VSC8514 || phydev->drv->phy_id == PHY_ID_VSC8514 ||
phydev->drv->phy_id == PHY_ID_VSC8572 ||
phydev->drv->phy_id == PHY_ID_VSC8574 || phydev->drv->phy_id == PHY_ID_VSC8574 ||
phydev->drv->phy_id == PHY_ID_VSC8601) ? phydev->drv->phy_id == PHY_ID_VSC8601) ?
MII_VSC8244_IMASK_MASK : MII_VSC8244_IMASK_MASK :
...@@ -290,6 +292,17 @@ static struct phy_driver vsc82xx_driver[] = { ...@@ -290,6 +292,17 @@ static struct phy_driver vsc82xx_driver[] = {
.read_status = &genphy_read_status, .read_status = &genphy_read_status,
.ack_interrupt = &vsc824x_ack_interrupt, .ack_interrupt = &vsc824x_ack_interrupt,
.config_intr = &vsc82xx_config_intr, .config_intr = &vsc82xx_config_intr,
}, {
.phy_id = PHY_ID_VSC8572,
.name = "Vitesse VSC8572",
.phy_id_mask = 0x000ffff0,
.features = PHY_GBIT_FEATURES,
.flags = PHY_HAS_INTERRUPT,
.config_init = &vsc824x_config_init,
.config_aneg = &vsc82x4_config_aneg,
.read_status = &genphy_read_status,
.ack_interrupt = &vsc824x_ack_interrupt,
.config_intr = &vsc82xx_config_intr,
}, { }, {
.phy_id = PHY_ID_VSC8574, .phy_id = PHY_ID_VSC8574,
.name = "Vitesse VSC8574", .name = "Vitesse VSC8574",
...@@ -355,6 +368,7 @@ static struct mdio_device_id __maybe_unused vitesse_tbl[] = { ...@@ -355,6 +368,7 @@ static struct mdio_device_id __maybe_unused vitesse_tbl[] = {
{ PHY_ID_VSC8234, 0x000ffff0 }, { PHY_ID_VSC8234, 0x000ffff0 },
{ PHY_ID_VSC8244, 0x000fffc0 }, { PHY_ID_VSC8244, 0x000fffc0 },
{ PHY_ID_VSC8514, 0x000ffff0 }, { PHY_ID_VSC8514, 0x000ffff0 },
{ PHY_ID_VSC8572, 0x000ffff0 },
{ PHY_ID_VSC8574, 0x000ffff0 }, { PHY_ID_VSC8574, 0x000ffff0 },
{ PHY_ID_VSC8662, 0x000ffff0 }, { PHY_ID_VSC8662, 0x000ffff0 },
{ PHY_ID_VSC8221, 0x000ffff0 }, { PHY_ID_VSC8221, 0x000ffff0 },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment