mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 08:16:42 +07:00
net: phy: marvell: change default m88e1510 LED configuration
The m88e1121 LED default configuration does not apply m88e151x. So add a function to relpace m88e1121 LED configuration. Signed-off-by: Wang Dongsheng <dongsheng.wang@hxt-semitech.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
248c690a2d
commit
077772468e
@ -130,8 +130,9 @@
|
||||
#define MII_88E1318S_PHY_WOL_CTRL_CLEAR_WOL_STATUS BIT(12)
|
||||
#define MII_88E1318S_PHY_WOL_CTRL_MAGIC_PACKET_MATCH_ENABLE BIT(14)
|
||||
|
||||
#define MII_88E1121_PHY_LED_CTRL 16
|
||||
#define MII_PHY_LED_CTRL 16
|
||||
#define MII_88E1121_PHY_LED_DEF 0x0030
|
||||
#define MII_88E1510_PHY_LED_DEF 0x1177
|
||||
|
||||
#define MII_M1011_PHY_STATUS 0x11
|
||||
#define MII_M1011_PHY_STATUS_1000 0x8000
|
||||
@ -632,8 +633,40 @@ static int m88e1510_config_aneg(struct phy_device *phydev)
|
||||
return err;
|
||||
}
|
||||
|
||||
static void marvell_config_led(struct phy_device *phydev)
|
||||
{
|
||||
u16 def_config;
|
||||
int err;
|
||||
|
||||
switch (MARVELL_PHY_FAMILY_ID(phydev->phy_id)) {
|
||||
/* Default PHY LED config: LED[0] .. Link, LED[1] .. Activity */
|
||||
case MARVELL_PHY_FAMILY_ID(MARVELL_PHY_ID_88E1121R):
|
||||
case MARVELL_PHY_FAMILY_ID(MARVELL_PHY_ID_88E1318S):
|
||||
def_config = MII_88E1121_PHY_LED_DEF;
|
||||
break;
|
||||
/* Default PHY LED config:
|
||||
* LED[0] .. 1000Mbps Link
|
||||
* LED[1] .. 100Mbps Link
|
||||
* LED[2] .. Blink, Activity
|
||||
*/
|
||||
case MARVELL_PHY_FAMILY_ID(MARVELL_PHY_ID_88E1510):
|
||||
def_config = MII_88E1510_PHY_LED_DEF;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
err = phy_write_paged(phydev, MII_MARVELL_LED_PAGE, MII_PHY_LED_CTRL,
|
||||
def_config);
|
||||
if (err < 0)
|
||||
pr_warn("Fail to config marvell phy LED.\n");
|
||||
}
|
||||
|
||||
static int marvell_config_init(struct phy_device *phydev)
|
||||
{
|
||||
/* Set defalut LED */
|
||||
marvell_config_led(phydev);
|
||||
|
||||
/* Set registers from marvell,reg-init DT property */
|
||||
return marvell_of_reg_init(phydev);
|
||||
}
|
||||
@ -813,21 +846,6 @@ static int m88e1111_config_init(struct phy_device *phydev)
|
||||
return genphy_soft_reset(phydev);
|
||||
}
|
||||
|
||||
static int m88e1121_config_init(struct phy_device *phydev)
|
||||
{
|
||||
int err;
|
||||
|
||||
/* Default PHY LED config: LED[0] .. Link, LED[1] .. Activity */
|
||||
err = phy_write_paged(phydev, MII_MARVELL_LED_PAGE,
|
||||
MII_88E1121_PHY_LED_CTRL,
|
||||
MII_88E1121_PHY_LED_DEF);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
/* Set marvell,reg-init configuration from device tree */
|
||||
return marvell_config_init(phydev);
|
||||
}
|
||||
|
||||
static int m88e1318_config_init(struct phy_device *phydev)
|
||||
{
|
||||
if (phy_interrupt_is_valid(phydev)) {
|
||||
@ -841,7 +859,7 @@ static int m88e1318_config_init(struct phy_device *phydev)
|
||||
return err;
|
||||
}
|
||||
|
||||
return m88e1121_config_init(phydev);
|
||||
return marvell_config_init(phydev);
|
||||
}
|
||||
|
||||
static int m88e1510_config_init(struct phy_device *phydev)
|
||||
@ -2087,7 +2105,7 @@ static struct phy_driver marvell_drivers[] = {
|
||||
.features = PHY_GBIT_FEATURES,
|
||||
.flags = PHY_HAS_INTERRUPT,
|
||||
.probe = &m88e1121_probe,
|
||||
.config_init = &m88e1121_config_init,
|
||||
.config_init = &marvell_config_init,
|
||||
.config_aneg = &m88e1121_config_aneg,
|
||||
.read_status = &marvell_read_status,
|
||||
.ack_interrupt = &marvell_ack_interrupt,
|
||||
|
@ -27,6 +27,8 @@
|
||||
*/
|
||||
#define MARVELL_PHY_ID_88E6390 0x01410f90
|
||||
|
||||
#define MARVELL_PHY_FAMILY_ID(id) ((id) >> 4)
|
||||
|
||||
/* struct phy_device dev_flags definitions */
|
||||
#define MARVELL_PHY_M1145_FLAGS_RESISTANCE 0x00000001
|
||||
#define MARVELL_PHY_M1118_DNS323_LEDS 0x00000002
|
||||
|
Loading…
Reference in New Issue
Block a user