aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/phy/marvell.c25
-rw-r--r--include/linux/marvell_phy.h1
2 files changed, 26 insertions, 0 deletions
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index df5a9f6d2864..2e91477362d4 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -374,6 +374,17 @@ static int m88e1318_config_aneg(struct phy_device *phydev)
374 return m88e1121_config_aneg(phydev); 374 return m88e1121_config_aneg(phydev);
375} 375}
376 376
377static int m88e1510_config_aneg(struct phy_device *phydev)
378{
379 int err;
380
381 err = m88e1318_config_aneg(phydev);
382 if (err < 0)
383 return err;
384
385 return marvell_of_reg_init(phydev);
386}
387
377static int m88e1116r_config_init(struct phy_device *phydev) 388static int m88e1116r_config_init(struct phy_device *phydev)
378{ 389{
379 int temp; 390 int temp;
@@ -1004,6 +1015,19 @@ static struct phy_driver marvell_drivers[] = {
1004 .config_intr = &marvell_config_intr, 1015 .config_intr = &marvell_config_intr,
1005 .driver = { .owner = THIS_MODULE }, 1016 .driver = { .owner = THIS_MODULE },
1006 }, 1017 },
1018 {
1019 .phy_id = MARVELL_PHY_ID_88E1510,
1020 .phy_id_mask = MARVELL_PHY_ID_MASK,
1021 .name = "Marvell 88E1510",
1022 .features = PHY_GBIT_FEATURES,
1023 .flags = PHY_HAS_INTERRUPT,
1024 .config_aneg = &m88e1510_config_aneg,
1025 .read_status = &marvell_read_status,
1026 .ack_interrupt = &marvell_ack_interrupt,
1027 .config_intr = &marvell_config_intr,
1028 .did_interrupt = &m88e1121_did_interrupt,
1029 .driver = { .owner = THIS_MODULE },
1030 },
1007}; 1031};
1008 1032
1009static int __init marvell_init(void) 1033static int __init marvell_init(void)
@@ -1032,6 +1056,7 @@ static struct mdio_device_id __maybe_unused marvell_tbl[] = {
1032 { MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK }, 1056 { MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK },
1033 { MARVELL_PHY_ID_88E1318S, MARVELL_PHY_ID_MASK }, 1057 { MARVELL_PHY_ID_88E1318S, MARVELL_PHY_ID_MASK },
1034 { MARVELL_PHY_ID_88E1116R, MARVELL_PHY_ID_MASK }, 1058 { MARVELL_PHY_ID_88E1116R, MARVELL_PHY_ID_MASK },
1059 { MARVELL_PHY_ID_88E1510, MARVELL_PHY_ID_MASK },
1035 { } 1060 { }
1036}; 1061};
1037 1062
diff --git a/include/linux/marvell_phy.h b/include/linux/marvell_phy.h
index ec41025cb86e..8e9a029e093d 100644
--- a/include/linux/marvell_phy.h
+++ b/include/linux/marvell_phy.h
@@ -15,6 +15,7 @@
15#define MARVELL_PHY_ID_88E1240 0x01410e30 15#define MARVELL_PHY_ID_88E1240 0x01410e30
16#define MARVELL_PHY_ID_88E1318S 0x01410e90 16#define MARVELL_PHY_ID_88E1318S 0x01410e90
17#define MARVELL_PHY_ID_88E1116R 0x01410e40 17#define MARVELL_PHY_ID_88E1116R 0x01410e40
18#define MARVELL_PHY_ID_88E1510 0x01410dd0
18 19
19/* struct phy_device dev_flags definitions */ 20/* struct phy_device dev_flags definitions */
20#define MARVELL_PHY_M1145_FLAGS_RESISTANCE 0x00000001 21#define MARVELL_PHY_M1145_FLAGS_RESISTANCE 0x00000001