|
|
|
@ -1157,6 +1157,54 @@ struct phy_info phy_info_M88E1118 = { |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Since to access LED register we need do switch the page, we |
|
|
|
|
* do LED configuring in the miim_read-like function as follows |
|
|
|
|
*/ |
|
|
|
|
uint mii_88E1121_set_led (uint mii_reg, struct tsec_private *priv) |
|
|
|
|
{ |
|
|
|
|
uint pg; |
|
|
|
|
|
|
|
|
|
/* Switch the page to access the led register */ |
|
|
|
|
pg = read_phy_reg(priv, MIIM_88E1121_PHY_PAGE); |
|
|
|
|
write_phy_reg(priv, MIIM_88E1121_PHY_PAGE, MIIM_88E1121_PHY_LED_PAGE); |
|
|
|
|
|
|
|
|
|
/* Configure leds */ |
|
|
|
|
write_phy_reg(priv, MIIM_88E1121_PHY_LED_CTRL, |
|
|
|
|
MIIM_88E1121_PHY_LED_DEF); |
|
|
|
|
|
|
|
|
|
/* Restore the page pointer */ |
|
|
|
|
write_phy_reg(priv, MIIM_88E1121_PHY_PAGE, pg); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
struct phy_info phy_info_M88E1121R = { |
|
|
|
|
0x01410cb, |
|
|
|
|
"Marvell 88E1121R", |
|
|
|
|
4, |
|
|
|
|
(struct phy_cmd[]){ /* config */ |
|
|
|
|
/* Reset and configure the PHY */ |
|
|
|
|
{MIIM_CONTROL, MIIM_CONTROL_RESET, NULL}, |
|
|
|
|
{MIIM_GBIT_CONTROL, MIIM_GBIT_CONTROL_INIT, NULL}, |
|
|
|
|
{MIIM_ANAR, MIIM_ANAR_INIT, NULL}, |
|
|
|
|
/* Configure leds */ |
|
|
|
|
{MIIM_88E1121_PHY_LED_CTRL, miim_read, |
|
|
|
|
&mii_88E1121_set_led}, |
|
|
|
|
{MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init}, |
|
|
|
|
{miim_end,} |
|
|
|
|
}, |
|
|
|
|
(struct phy_cmd[]){ /* startup */ |
|
|
|
|
/* Status is read once to clear old link state */ |
|
|
|
|
{MIIM_STATUS, miim_read, NULL}, |
|
|
|
|
{MIIM_STATUS, miim_read, &mii_parse_sr}, |
|
|
|
|
{MIIM_STATUS, miim_read, &mii_parse_link}, |
|
|
|
|
{miim_end,} |
|
|
|
|
}, |
|
|
|
|
(struct phy_cmd[]){ /* shutdown */ |
|
|
|
|
{miim_end,} |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static unsigned int m88e1145_setmode(uint mii_reg, struct tsec_private *priv) |
|
|
|
|
{ |
|
|
|
|
uint mii_data = read_phy_reg(priv, mii_reg); |
|
|
|
@ -1522,6 +1570,7 @@ struct phy_info *phy_info[] = { |
|
|
|
|
&phy_info_M88E1011S, |
|
|
|
|
&phy_info_M88E1111S, |
|
|
|
|
&phy_info_M88E1118, |
|
|
|
|
&phy_info_M88E1121R, |
|
|
|
|
&phy_info_M88E1145, |
|
|
|
|
&phy_info_M88E1149S, |
|
|
|
|
&phy_info_dm9161, |
|
|
|
|