@@ -223,8 +223,8 @@ static int xpcs_poll_reset(struct dw_xpcs *xpcs, int dev)
223
223
int ret , val ;
224
224
225
225
ret = read_poll_timeout (xpcs_read , val ,
226
- val < 0 || !(val & MDIO_CTRL1_RESET ),
227
- 50000 , 600000 , true, xpcs , dev , MDIO_CTRL1 );
226
+ val < 0 || !(val & BMCR_RESET ),
227
+ 50000 , 600000 , true, xpcs , dev , MII_BMCR );
228
228
if (val < 0 )
229
229
ret = val ;
230
230
@@ -250,7 +250,7 @@ static int xpcs_soft_reset(struct dw_xpcs *xpcs,
250
250
return - EINVAL ;
251
251
}
252
252
253
- ret = xpcs_write (xpcs , dev , MDIO_CTRL1 , MDIO_CTRL1_RESET );
253
+ ret = xpcs_write (xpcs , dev , MII_BMCR , BMCR_RESET );
254
254
if (ret < 0 )
255
255
return ret ;
256
256
@@ -343,7 +343,7 @@ static void xpcs_config_usxgmii(struct dw_xpcs *xpcs, int speed)
343
343
if (ret < 0 )
344
344
goto out ;
345
345
346
- ret = xpcs_modify (xpcs , MDIO_MMD_VEND2 , MDIO_CTRL1 , DW_USXGMII_SS_MASK ,
346
+ ret = xpcs_modify (xpcs , MDIO_MMD_VEND2 , MII_BMCR , DW_USXGMII_SS_MASK ,
347
347
speed_sel | DW_USXGMII_FULL );
348
348
if (ret < 0 )
349
349
goto out ;
@@ -646,19 +646,21 @@ static int xpcs_config_aneg_c37_sgmii(struct dw_xpcs *xpcs,
646
646
* speed/duplex mode change by HW after SGMII AN complete)
647
647
* 5) VR_MII_MMD_CTRL Bit(12) [AN_ENABLE] = 1b (Enable SGMII AN)
648
648
*
649
+ * Note that VR_MII_MMD_CTRL is MII_BMCR.
650
+ *
649
651
* Note: Since it is MAC side SGMII, there is no need to set
650
652
* SR_MII_AN_ADV. MAC side SGMII receives AN Tx Config from
651
653
* PHY about the link state change after C28 AN is completed
652
654
* between PHY and Link Partner. There is also no need to
653
655
* trigger AN restart for MAC-side SGMII.
654
656
*/
655
- mdio_ctrl = xpcs_read (xpcs , MDIO_MMD_VEND2 , DW_VR_MII_MMD_CTRL );
657
+ mdio_ctrl = xpcs_read (xpcs , MDIO_MMD_VEND2 , MII_BMCR );
656
658
if (mdio_ctrl < 0 )
657
659
return mdio_ctrl ;
658
660
659
- if (mdio_ctrl & AN_CL37_EN ) {
660
- ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , DW_VR_MII_MMD_CTRL ,
661
- mdio_ctrl & ~AN_CL37_EN );
661
+ if (mdio_ctrl & BMCR_ANENABLE ) {
662
+ ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , MII_BMCR ,
663
+ mdio_ctrl & ~BMCR_ANENABLE );
662
664
if (ret < 0 )
663
665
return ret ;
664
666
}
@@ -696,8 +698,8 @@ static int xpcs_config_aneg_c37_sgmii(struct dw_xpcs *xpcs,
696
698
return ret ;
697
699
698
700
if (neg_mode == PHYLINK_PCS_NEG_INBAND_ENABLED )
699
- ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , DW_VR_MII_MMD_CTRL ,
700
- mdio_ctrl | AN_CL37_EN );
701
+ ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , MII_BMCR ,
702
+ mdio_ctrl | BMCR_ANENABLE );
701
703
702
704
return ret ;
703
705
}
@@ -715,14 +717,16 @@ static int xpcs_config_aneg_c37_1000basex(struct dw_xpcs *xpcs,
715
717
* be disabled first:-
716
718
* 1) VR_MII_MMD_CTRL Bit(12)[AN_ENABLE] = 0b
717
719
* 2) VR_MII_AN_CTRL Bit(2:1)[PCS_MODE] = 00b (1000BASE-X C37)
720
+ *
721
+ * Note that VR_MII_MMD_CTRL is MII_BMCR.
718
722
*/
719
- mdio_ctrl = xpcs_read (xpcs , MDIO_MMD_VEND2 , DW_VR_MII_MMD_CTRL );
723
+ mdio_ctrl = xpcs_read (xpcs , MDIO_MMD_VEND2 , MII_BMCR );
720
724
if (mdio_ctrl < 0 )
721
725
return mdio_ctrl ;
722
726
723
- if (mdio_ctrl & AN_CL37_EN ) {
724
- ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , DW_VR_MII_MMD_CTRL ,
725
- mdio_ctrl & ~AN_CL37_EN );
727
+ if (mdio_ctrl & BMCR_ANENABLE ) {
728
+ ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , MII_BMCR ,
729
+ mdio_ctrl & ~BMCR_ANENABLE );
726
730
if (ret < 0 )
727
731
return ret ;
728
732
}
@@ -760,8 +764,8 @@ static int xpcs_config_aneg_c37_1000basex(struct dw_xpcs *xpcs,
760
764
return ret ;
761
765
762
766
if (neg_mode == PHYLINK_PCS_NEG_INBAND_ENABLED ) {
763
- ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , DW_VR_MII_MMD_CTRL ,
764
- mdio_ctrl | AN_CL37_EN );
767
+ ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , MII_BMCR ,
768
+ mdio_ctrl | BMCR_ANENABLE );
765
769
if (ret < 0 )
766
770
return ret ;
767
771
}
@@ -780,9 +784,9 @@ static int xpcs_config_2500basex(struct dw_xpcs *xpcs)
780
784
if (ret < 0 )
781
785
return ret ;
782
786
783
- return xpcs_modify (xpcs , MDIO_MMD_VEND2 , DW_VR_MII_MMD_CTRL ,
784
- AN_CL37_EN | SGMII_SPEED_SS6 | SGMII_SPEED_SS13 ,
785
- SGMII_SPEED_SS6 );
787
+ return xpcs_modify (xpcs , MDIO_MMD_VEND2 , MII_BMCR ,
788
+ BMCR_ANENABLE | BMCR_SPEED1000 | BMCR_SPEED100 ,
789
+ BMCR_SPEED1000 );
786
790
}
787
791
788
792
static int xpcs_do_config (struct dw_xpcs * xpcs , phy_interface_t interface ,
@@ -972,14 +976,14 @@ static int xpcs_get_state_c37_sgmii(struct dw_xpcs *xpcs,
972
976
973
977
state -> link = true;
974
978
975
- speed = xpcs_read (xpcs , MDIO_MMD_VEND2 , MDIO_CTRL1 );
979
+ speed = xpcs_read (xpcs , MDIO_MMD_VEND2 , MII_BMCR );
976
980
if (speed < 0 )
977
981
return speed ;
978
982
979
- speed &= SGMII_SPEED_SS13 | SGMII_SPEED_SS6 ;
980
- if (speed == SGMII_SPEED_SS6 )
983
+ speed &= BMCR_SPEED100 | BMCR_SPEED1000 ;
984
+ if (speed == BMCR_SPEED1000 )
981
985
state -> speed = SPEED_1000 ;
982
- else if (speed == SGMII_SPEED_SS13 )
986
+ else if (speed == BMCR_SPEED100 )
983
987
state -> speed = SPEED_100 ;
984
988
else if (speed == 0 )
985
989
state -> speed = SPEED_10 ;
@@ -988,9 +992,9 @@ static int xpcs_get_state_c37_sgmii(struct dw_xpcs *xpcs,
988
992
if (duplex < 0 )
989
993
return duplex ;
990
994
991
- if (duplex & DW_FULL_DUPLEX )
995
+ if (duplex & ADVERTISE_1000XFULL )
992
996
state -> duplex = DUPLEX_FULL ;
993
- else if (duplex & DW_HALF_DUPLEX )
997
+ else if (duplex & ADVERTISE_1000XHALF )
994
998
state -> duplex = DUPLEX_HALF ;
995
999
996
1000
xpcs_write (xpcs , MDIO_MMD_VEND2 , DW_VR_MII_AN_INTR_STS , 0 );
@@ -1039,13 +1043,13 @@ static int xpcs_get_state_2500basex(struct dw_xpcs *xpcs,
1039
1043
{
1040
1044
int ret ;
1041
1045
1042
- ret = xpcs_read (xpcs , MDIO_MMD_VEND2 , DW_VR_MII_MMD_STS );
1046
+ ret = xpcs_read (xpcs , MDIO_MMD_VEND2 , MII_BMSR );
1043
1047
if (ret < 0 ) {
1044
1048
state -> link = 0 ;
1045
1049
return ret ;
1046
1050
}
1047
1051
1048
- state -> link = !!(ret & DW_VR_MII_MMD_STS_LINK_STS );
1052
+ state -> link = !!(ret & BMSR_LSTATUS );
1049
1053
if (!state -> link )
1050
1054
return 0 ;
1051
1055
@@ -1109,7 +1113,7 @@ static void xpcs_link_up_sgmii(struct dw_xpcs *xpcs, unsigned int neg_mode,
1109
1113
return ;
1110
1114
1111
1115
val = mii_bmcr_encode_fixed (speed , duplex );
1112
- ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , MDIO_CTRL1 , val );
1116
+ ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , MII_BMCR , val );
1113
1117
if (ret )
1114
1118
dev_err (& xpcs -> mdiodev -> dev , "%s: xpcs_write returned %pe\n" ,
1115
1119
__func__ , ERR_PTR (ret ));
@@ -1141,7 +1145,7 @@ static void xpcs_link_up_1000basex(struct dw_xpcs *xpcs, unsigned int neg_mode,
1141
1145
dev_err (& xpcs -> mdiodev -> dev , "%s: half duplex not supported\n" ,
1142
1146
__func__ );
1143
1147
1144
- ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , MDIO_CTRL1 , val );
1148
+ ret = xpcs_write (xpcs , MDIO_MMD_VEND2 , MII_BMCR , val );
1145
1149
if (ret )
1146
1150
dev_err (& xpcs -> mdiodev -> dev , "%s: xpcs_write returned %pe\n" ,
1147
1151
__func__ , ERR_PTR (ret ));
@@ -1164,7 +1168,7 @@ static void xpcs_an_restart(struct phylink_pcs *pcs)
1164
1168
{
1165
1169
struct dw_xpcs * xpcs = phylink_pcs_to_xpcs (pcs );
1166
1170
1167
- xpcs_modify (xpcs , MDIO_MMD_VEND2 , MDIO_CTRL1 , BMCR_ANRESTART ,
1171
+ xpcs_modify (xpcs , MDIO_MMD_VEND2 , MII_BMCR , BMCR_ANRESTART ,
1168
1172
BMCR_ANRESTART );
1169
1173
}
1170
1174
0 commit comments