diff options
-rw-r--r-- | drivers/net/sky2.c | 18 | ||||
-rw-r--r-- | drivers/net/sky2.h | 53 |
2 files changed, 29 insertions, 42 deletions
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index a8e096393a41..fb1d2c30c1bb 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -521,7 +521,7 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) | |||
521 | /* set Tx LED (LED_TX) to blink mode on Rx OR Tx activity */ | 521 | /* set Tx LED (LED_TX) to blink mode on Rx OR Tx activity */ |
522 | ledctrl |= PHY_M_LED_BLINK_RT(BLINK_84MS) | PHY_M_LEDC_TX_CTRL; | 522 | ledctrl |= PHY_M_LED_BLINK_RT(BLINK_84MS) | PHY_M_LEDC_TX_CTRL; |
523 | /* turn off the Rx LED (LED_RX) */ | 523 | /* turn off the Rx LED (LED_RX) */ |
524 | ledover |= PHY_M_LED_MO_RX(MO_LED_OFF); | 524 | ledover &= ~PHY_M_LED_MO_RX; |
525 | } | 525 | } |
526 | 526 | ||
527 | if (hw->chip_id == CHIP_ID_YUKON_EC_U && hw->chip_rev == CHIP_REV_YU_EC_A1) { | 527 | if (hw->chip_id == CHIP_ID_YUKON_EC_U && hw->chip_rev == CHIP_REV_YU_EC_A1) { |
@@ -544,7 +544,7 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) | |||
544 | 544 | ||
545 | if (sky2->autoneg == AUTONEG_DISABLE || sky2->speed == SPEED_100) { | 545 | if (sky2->autoneg == AUTONEG_DISABLE || sky2->speed == SPEED_100) { |
546 | /* turn on 100 Mbps LED (LED_LINK100) */ | 546 | /* turn on 100 Mbps LED (LED_LINK100) */ |
547 | ledover |= PHY_M_LED_MO_100(MO_LED_ON); | 547 | ledover |= PHY_M_LED_MO_100; |
548 | } | 548 | } |
549 | 549 | ||
550 | if (ledover) | 550 | if (ledover) |
@@ -2930,18 +2930,8 @@ static void sky2_led(struct sky2_hw *hw, unsigned port, int on) | |||
2930 | 2930 | ||
2931 | default: | 2931 | default: |
2932 | gm_phy_write(hw, port, PHY_MARV_LED_CTRL, 0); | 2932 | gm_phy_write(hw, port, PHY_MARV_LED_CTRL, 0); |
2933 | gm_phy_write(hw, port, PHY_MARV_LED_OVER, | 2933 | gm_phy_write(hw, port, PHY_MARV_LED_OVER, |
2934 | on ? PHY_M_LED_MO_DUP(MO_LED_ON) | | 2934 | on ? PHY_M_LED_ALL : 0); |
2935 | PHY_M_LED_MO_10(MO_LED_ON) | | ||
2936 | PHY_M_LED_MO_100(MO_LED_ON) | | ||
2937 | PHY_M_LED_MO_1000(MO_LED_ON) | | ||
2938 | PHY_M_LED_MO_RX(MO_LED_ON) | ||
2939 | : PHY_M_LED_MO_DUP(MO_LED_OFF) | | ||
2940 | PHY_M_LED_MO_10(MO_LED_OFF) | | ||
2941 | PHY_M_LED_MO_100(MO_LED_OFF) | | ||
2942 | PHY_M_LED_MO_1000(MO_LED_OFF) | | ||
2943 | PHY_M_LED_MO_RX(MO_LED_OFF)); | ||
2944 | |||
2945 | } | 2935 | } |
2946 | } | 2936 | } |
2947 | 2937 | ||
diff --git a/drivers/net/sky2.h b/drivers/net/sky2.h index a63f6057b2ea..6ed1d47dbbd3 100644 --- a/drivers/net/sky2.h +++ b/drivers/net/sky2.h | |||
@@ -608,7 +608,7 @@ enum { | |||
608 | PHY_ADDR_MARV = 0, | 608 | PHY_ADDR_MARV = 0, |
609 | }; | 609 | }; |
610 | 610 | ||
611 | #define RB_ADDR(offs, queue) (B16_RAM_REGS + (queue) + (offs)) | 611 | #define RB_ADDR(offs, queue) ((u16) B16_RAM_REGS + (queue) + (offs)) |
612 | 612 | ||
613 | 613 | ||
614 | enum { | 614 | enum { |
@@ -1061,7 +1061,7 @@ enum { | |||
1061 | PHY_M_PC_EN_DET_PLUS = 3<<8, /* Energy Detect Plus (Mode 2) */ | 1061 | PHY_M_PC_EN_DET_PLUS = 3<<8, /* Energy Detect Plus (Mode 2) */ |
1062 | }; | 1062 | }; |
1063 | 1063 | ||
1064 | #define PHY_M_PC_MDI_XMODE(x) (((x)<<5) & PHY_M_PC_MDIX_MSK) | 1064 | #define PHY_M_PC_MDI_XMODE(x) (((u16)(x)<<5) & PHY_M_PC_MDIX_MSK) |
1065 | 1065 | ||
1066 | enum { | 1066 | enum { |
1067 | PHY_M_PC_MAN_MDI = 0, /* 00 = Manual MDI configuration */ | 1067 | PHY_M_PC_MAN_MDI = 0, /* 00 = Manual MDI configuration */ |
@@ -1157,13 +1157,13 @@ enum { | |||
1157 | PHY_M_EC_TX_TIM_CT = 1<<1, /* RGMII Tx Timing Control */ | 1157 | PHY_M_EC_TX_TIM_CT = 1<<1, /* RGMII Tx Timing Control */ |
1158 | PHY_M_EC_TRANS_DIS = 1<<0, /* Transmitter Disable (88E1111 only) */}; | 1158 | PHY_M_EC_TRANS_DIS = 1<<0, /* Transmitter Disable (88E1111 only) */}; |
1159 | 1159 | ||
1160 | #define PHY_M_EC_M_DSC(x) ((x)<<10 & PHY_M_EC_M_DSC_MSK) | 1160 | #define PHY_M_EC_M_DSC(x) ((u16)(x)<<10 & PHY_M_EC_M_DSC_MSK) |
1161 | /* 00=1x; 01=2x; 10=3x; 11=4x */ | 1161 | /* 00=1x; 01=2x; 10=3x; 11=4x */ |
1162 | #define PHY_M_EC_S_DSC(x) ((x)<<8 & PHY_M_EC_S_DSC_MSK) | 1162 | #define PHY_M_EC_S_DSC(x) ((u16)(x)<<8 & PHY_M_EC_S_DSC_MSK) |
1163 | /* 00=dis; 01=1x; 10=2x; 11=3x */ | 1163 | /* 00=dis; 01=1x; 10=2x; 11=3x */ |
1164 | #define PHY_M_EC_DSC_2(x) ((x)<<9 & PHY_M_EC_M_DSC_MSK2) | 1164 | #define PHY_M_EC_DSC_2(x) ((u16)(x)<<9 & PHY_M_EC_M_DSC_MSK2) |
1165 | /* 000=1x; 001=2x; 010=3x; 011=4x */ | 1165 | /* 000=1x; 001=2x; 010=3x; 011=4x */ |
1166 | #define PHY_M_EC_MAC_S(x) ((x)<<4 & PHY_M_EC_MAC_S_MSK) | 1166 | #define PHY_M_EC_MAC_S(x) ((u16)(x)<<4 & PHY_M_EC_MAC_S_MSK) |
1167 | /* 01X=0; 110=2.5; 111=25 (MHz) */ | 1167 | /* 01X=0; 110=2.5; 111=25 (MHz) */ |
1168 | 1168 | ||
1169 | /* for Yukon-2 Gigabit Ethernet PHY (88E1112 only) */ | 1169 | /* for Yukon-2 Gigabit Ethernet PHY (88E1112 only) */ |
@@ -1174,7 +1174,7 @@ enum { | |||
1174 | }; | 1174 | }; |
1175 | /* !!! Errata in spec. (1 = disable) */ | 1175 | /* !!! Errata in spec. (1 = disable) */ |
1176 | 1176 | ||
1177 | #define PHY_M_PC_DSC(x) (((x)<<12) & PHY_M_PC_DSC_MSK) | 1177 | #define PHY_M_PC_DSC(x) (((u16)(x)<<12) & PHY_M_PC_DSC_MSK) |
1178 | /* 100=5x; 101=6x; 110=7x; 111=8x */ | 1178 | /* 100=5x; 101=6x; 110=7x; 111=8x */ |
1179 | enum { | 1179 | enum { |
1180 | MAC_TX_CLK_0_MHZ = 2, | 1180 | MAC_TX_CLK_0_MHZ = 2, |
@@ -1204,7 +1204,7 @@ enum { | |||
1204 | PHY_M_LEDC_TX_C_MSB = 1<<0, /* Tx Control (MSB, 88E1111 only) */ | 1204 | PHY_M_LEDC_TX_C_MSB = 1<<0, /* Tx Control (MSB, 88E1111 only) */ |
1205 | }; | 1205 | }; |
1206 | 1206 | ||
1207 | #define PHY_M_LED_PULS_DUR(x) (((x)<<12) & PHY_M_LEDC_PULS_MSK) | 1207 | #define PHY_M_LED_PULS_DUR(x) (((u16)(x)<<12) & PHY_M_LEDC_PULS_MSK) |
1208 | 1208 | ||
1209 | /***** PHY_MARV_PHY_STAT (page 3)16 bit r/w Polarity Control Reg. *****/ | 1209 | /***** PHY_MARV_PHY_STAT (page 3)16 bit r/w Polarity Control Reg. *****/ |
1210 | enum { | 1210 | enum { |
@@ -1234,7 +1234,7 @@ enum { | |||
1234 | PULS_1300MS = 7,/* 1.3 s to 2.7 s */ | 1234 | PULS_1300MS = 7,/* 1.3 s to 2.7 s */ |
1235 | }; | 1235 | }; |
1236 | 1236 | ||
1237 | #define PHY_M_LED_BLINK_RT(x) (((x)<<8) & PHY_M_LEDC_BL_R_MSK) | 1237 | #define PHY_M_LED_BLINK_RT(x) (((u16)(x)<<8) & PHY_M_LEDC_BL_R_MSK) |
1238 | 1238 | ||
1239 | enum { | 1239 | enum { |
1240 | BLINK_42MS = 0,/* 42 ms */ | 1240 | BLINK_42MS = 0,/* 42 ms */ |
@@ -1244,21 +1244,18 @@ enum { | |||
1244 | BLINK_670MS = 4,/* 670 ms */ | 1244 | BLINK_670MS = 4,/* 670 ms */ |
1245 | }; | 1245 | }; |
1246 | 1246 | ||
1247 | /***** PHY_MARV_LED_OVER 16 bit r/w Manual LED Override Reg *****/ | 1247 | /**** PHY_MARV_LED_OVER 16 bit r/w LED control */ |
1248 | #define PHY_M_LED_MO_SGMII(x) ((x)<<14) /* Bit 15..14: SGMII AN Timer */ | ||
1249 | /* Bit 13..12: reserved */ | ||
1250 | #define PHY_M_LED_MO_DUP(x) ((x)<<10) /* Bit 11..10: Duplex */ | ||
1251 | #define PHY_M_LED_MO_10(x) ((x)<<8) /* Bit 9.. 8: Link 10 */ | ||
1252 | #define PHY_M_LED_MO_100(x) ((x)<<6) /* Bit 7.. 6: Link 100 */ | ||
1253 | #define PHY_M_LED_MO_1000(x) ((x)<<4) /* Bit 5.. 4: Link 1000 */ | ||
1254 | #define PHY_M_LED_MO_RX(x) ((x)<<2) /* Bit 3.. 2: Rx */ | ||
1255 | #define PHY_M_LED_MO_TX(x) ((x)<<0) /* Bit 1.. 0: Tx */ | ||
1256 | |||
1257 | enum { | 1248 | enum { |
1258 | MO_LED_NORM = 0, | 1249 | PHY_M_LED_MO_DUP = 3<<10,/* Bit 11..10: Duplex */ |
1259 | MO_LED_BLINK = 1, | 1250 | PHY_M_LED_MO_10 = 3<<8, /* Bit 9.. 8: Link 10 */ |
1260 | MO_LED_OFF = 2, | 1251 | PHY_M_LED_MO_100 = 3<<6, /* Bit 7.. 6: Link 100 */ |
1261 | MO_LED_ON = 3, | 1252 | PHY_M_LED_MO_1000 = 3<<4, /* Bit 5.. 4: Link 1000 */ |
1253 | PHY_M_LED_MO_RX = 3<<2, /* Bit 3.. 2: Rx */ | ||
1254 | PHY_M_LED_MO_TX = 3<<0, /* Bit 1.. 0: Tx */ | ||
1255 | |||
1256 | PHY_M_LED_ALL = PHY_M_LED_MO_DUP | PHY_M_LED_MO_10 | ||
1257 | | PHY_M_LED_MO_100 | PHY_M_LED_MO_1000 | ||
1258 | | PHY_M_LED_MO_RX, | ||
1262 | }; | 1259 | }; |
1263 | 1260 | ||
1264 | /***** PHY_MARV_EXT_CTRL_2 16 bit r/w Ext. PHY Specific Ctrl 2 *****/ | 1261 | /***** PHY_MARV_EXT_CTRL_2 16 bit r/w Ext. PHY Specific Ctrl 2 *****/ |
@@ -1295,9 +1292,9 @@ enum { | |||
1295 | PHY_M_FELP_LED0_MSK = 0xf, /* Bit 3.. 0: LED0 Mask (SPEED) */ | 1292 | PHY_M_FELP_LED0_MSK = 0xf, /* Bit 3.. 0: LED0 Mask (SPEED) */ |
1296 | }; | 1293 | }; |
1297 | 1294 | ||
1298 | #define PHY_M_FELP_LED2_CTRL(x) (((x)<<8) & PHY_M_FELP_LED2_MSK) | 1295 | #define PHY_M_FELP_LED2_CTRL(x) (((u16)(x)<<8) & PHY_M_FELP_LED2_MSK) |
1299 | #define PHY_M_FELP_LED1_CTRL(x) (((x)<<4) & PHY_M_FELP_LED1_MSK) | 1296 | #define PHY_M_FELP_LED1_CTRL(x) (((u16)(x)<<4) & PHY_M_FELP_LED1_MSK) |
1300 | #define PHY_M_FELP_LED0_CTRL(x) (((x)<<0) & PHY_M_FELP_LED0_MSK) | 1297 | #define PHY_M_FELP_LED0_CTRL(x) (((u16)(x)<<0) & PHY_M_FELP_LED0_MSK) |
1301 | 1298 | ||
1302 | enum { | 1299 | enum { |
1303 | LED_PAR_CTRL_COLX = 0x00, | 1300 | LED_PAR_CTRL_COLX = 0x00, |
@@ -1553,8 +1550,8 @@ enum { | |||
1553 | GM_SMI_CT_BUSY = 1<<3, /* Bit 3: Busy (Operation in progress) */ | 1550 | GM_SMI_CT_BUSY = 1<<3, /* Bit 3: Busy (Operation in progress) */ |
1554 | }; | 1551 | }; |
1555 | 1552 | ||
1556 | #define GM_SMI_CT_PHY_AD(x) (((x)<<11) & GM_SMI_CT_PHY_A_MSK) | 1553 | #define GM_SMI_CT_PHY_AD(x) (((u16)(x)<<11) & GM_SMI_CT_PHY_A_MSK) |
1557 | #define GM_SMI_CT_REG_AD(x) (((x)<<6) & GM_SMI_CT_REG_A_MSK) | 1554 | #define GM_SMI_CT_REG_AD(x) (((u16)(x)<<6) & GM_SMI_CT_REG_A_MSK) |
1558 | 1555 | ||
1559 | /* GM_PHY_ADDR 16 bit r/w GPHY Address Register */ | 1556 | /* GM_PHY_ADDR 16 bit r/w GPHY Address Register */ |
1560 | enum { | 1557 | enum { |