.. | .. |
---|
15 | 15 | #define PHY_ID_BCMAC131 0x0143bc70 |
---|
16 | 16 | #define PHY_ID_BCM5481 0x0143bca0 |
---|
17 | 17 | #define PHY_ID_BCM5395 0x0143bcf0 |
---|
| 18 | +#define PHY_ID_BCM53125 0x03625f20 |
---|
18 | 19 | #define PHY_ID_BCM54810 0x03625d00 |
---|
| 20 | +#define PHY_ID_BCM54811 0x03625cc0 |
---|
19 | 21 | #define PHY_ID_BCM5482 0x0143bcb0 |
---|
20 | 22 | #define PHY_ID_BCM5411 0x00206070 |
---|
21 | 23 | #define PHY_ID_BCM5421 0x002060e0 |
---|
.. | .. |
---|
24 | 26 | #define PHY_ID_BCM5461 0x002060c0 |
---|
25 | 27 | #define PHY_ID_BCM54612E 0x03625e60 |
---|
26 | 28 | #define PHY_ID_BCM54616S 0x03625d10 |
---|
| 29 | +#define PHY_ID_BCM54140 0xae025009 |
---|
27 | 30 | #define PHY_ID_BCM57780 0x03625d90 |
---|
28 | 31 | #define PHY_ID_BCM89610 0x03625cd0 |
---|
29 | 32 | |
---|
| 33 | +#define PHY_ID_BCM72113 0x35905310 |
---|
30 | 34 | #define PHY_ID_BCM7250 0xae025280 |
---|
| 35 | +#define PHY_ID_BCM7255 0xae025120 |
---|
31 | 36 | #define PHY_ID_BCM7260 0xae025190 |
---|
32 | 37 | #define PHY_ID_BCM7268 0xae025090 |
---|
33 | 38 | #define PHY_ID_BCM7271 0xae0253b0 |
---|
.. | .. |
---|
78 | 83 | #define MII_BCM54XX_ECR 0x10 /* BCM54xx extended control register */ |
---|
79 | 84 | #define MII_BCM54XX_ECR_IM 0x1000 /* Interrupt mask */ |
---|
80 | 85 | #define MII_BCM54XX_ECR_IF 0x0800 /* Interrupt force */ |
---|
| 86 | +#define MII_BCM54XX_ECR_FIFOE 0x0001 /* FIFO elasticity */ |
---|
81 | 87 | |
---|
82 | 88 | #define MII_BCM54XX_ESR 0x11 /* BCM54xx extended status register */ |
---|
83 | 89 | #define MII_BCM54XX_ESR_IS 0x1000 /* Interrupt status */ |
---|
.. | .. |
---|
112 | 118 | #define MII_BCM54XX_SHD_VAL(x) ((x & 0x1f) << 10) |
---|
113 | 119 | #define MII_BCM54XX_SHD_DATA(x) ((x & 0x3ff) << 0) |
---|
114 | 120 | |
---|
| 121 | +#define MII_BCM54XX_RDB_ADDR 0x1e |
---|
| 122 | +#define MII_BCM54XX_RDB_DATA 0x1f |
---|
| 123 | + |
---|
| 124 | +/* legacy access control via rdb/expansion register */ |
---|
| 125 | +#define BCM54XX_RDB_REG0087 0x0087 |
---|
| 126 | +#define BCM54XX_EXP_REG7E (MII_BCM54XX_EXP_SEL_ER + 0x7E) |
---|
| 127 | +#define BCM54XX_ACCESS_MODE_LEGACY_EN BIT(15) |
---|
| 128 | + |
---|
115 | 129 | /* |
---|
116 | 130 | * AUXILIARY CONTROL SHADOW ACCESS REGISTERS. (PHY REG 0x18) |
---|
117 | 131 | */ |
---|
118 | 132 | #define MII_BCM54XX_AUXCTL_SHDWSEL_AUXCTL 0x00 |
---|
119 | 133 | #define MII_BCM54XX_AUXCTL_ACTL_TX_6DB 0x0400 |
---|
120 | 134 | #define MII_BCM54XX_AUXCTL_ACTL_SMDSP_ENA 0x0800 |
---|
| 135 | +#define MII_BCM54XX_AUXCTL_ACTL_EXT_PKT_LEN 0x4000 |
---|
121 | 136 | |
---|
122 | 137 | #define MII_BCM54XX_AUXCTL_SHDWSEL_MISC 0x07 |
---|
123 | 138 | #define MII_BCM54XX_AUXCTL_SHDWSEL_MISC_WIRESPEED_EN 0x0010 |
---|
| 139 | +#define MII_BCM54XX_AUXCTL_SHDWSEL_MISC_RGMII_EN 0x0080 |
---|
124 | 140 | #define MII_BCM54XX_AUXCTL_SHDWSEL_MISC_RGMII_SKEW_EN 0x0100 |
---|
125 | 141 | #define MII_BCM54XX_AUXCTL_MISC_FORCE_AMDIX 0x0200 |
---|
126 | 142 | #define MII_BCM54XX_AUXCTL_MISC_WREN 0x8000 |
---|
.. | .. |
---|
147 | 163 | #define BCM_LED_SRC_OFF 0xe /* Tied high */ |
---|
148 | 164 | #define BCM_LED_SRC_ON 0xf /* Tied low */ |
---|
149 | 165 | |
---|
| 166 | +/* |
---|
| 167 | + * Broadcom Multicolor LED configurations (expansion register 4) |
---|
| 168 | + */ |
---|
| 169 | +#define BCM_EXP_MULTICOLOR (MII_BCM54XX_EXP_SEL_ER + 0x04) |
---|
| 170 | +#define BCM_LED_MULTICOLOR_IN_PHASE BIT(8) |
---|
| 171 | +#define BCM_LED_MULTICOLOR_LINK_ACT 0x0 |
---|
| 172 | +#define BCM_LED_MULTICOLOR_SPEED 0x1 |
---|
| 173 | +#define BCM_LED_MULTICOLOR_ACT_FLASH 0x2 |
---|
| 174 | +#define BCM_LED_MULTICOLOR_FDX 0x3 |
---|
| 175 | +#define BCM_LED_MULTICOLOR_OFF 0x4 |
---|
| 176 | +#define BCM_LED_MULTICOLOR_ON 0x5 |
---|
| 177 | +#define BCM_LED_MULTICOLOR_ALT 0x6 |
---|
| 178 | +#define BCM_LED_MULTICOLOR_FLASH 0x7 |
---|
| 179 | +#define BCM_LED_MULTICOLOR_LINK 0x8 |
---|
| 180 | +#define BCM_LED_MULTICOLOR_ACT 0x9 |
---|
| 181 | +#define BCM_LED_MULTICOLOR_PROGRAM 0xa |
---|
150 | 182 | |
---|
151 | 183 | /* |
---|
152 | 184 | * BCM5482: Shadow registers |
---|
.. | .. |
---|
183 | 215 | #define BCM5482_SHD_SSD 0x14 /* 10100: Secondary SerDes control */ |
---|
184 | 216 | #define BCM5482_SHD_SSD_LEDM 0x0008 /* SSD LED Mode enable */ |
---|
185 | 217 | #define BCM5482_SHD_SSD_EN 0x0001 /* SSD enable */ |
---|
186 | | -#define BCM5482_SHD_MODE 0x1f /* 11111: Mode Control Register */ |
---|
187 | | -#define BCM5482_SHD_MODE_1000BX 0x0001 /* Enable 1000BASE-X registers */ |
---|
188 | 218 | |
---|
| 219 | +/* 10011: SerDes 100-FX Control Register */ |
---|
| 220 | +#define BCM54616S_SHD_100FX_CTRL 0x13 |
---|
| 221 | +#define BCM54616S_100FX_MODE BIT(0) /* 100-FX SerDes Enable */ |
---|
| 222 | + |
---|
| 223 | +/* 11111: Mode Control Register */ |
---|
| 224 | +#define BCM54XX_SHD_MODE 0x1f |
---|
| 225 | +#define BCM54XX_SHD_INTF_SEL_MASK GENMASK(2, 1) /* INTERF_SEL[1:0] */ |
---|
| 226 | +#define BCM54XX_SHD_INTF_SEL_RGMII 0x02 |
---|
| 227 | +#define BCM54XX_SHD_INTF_SEL_SGMII 0x04 |
---|
| 228 | +#define BCM54XX_SHD_INTF_SEL_GBIC 0x06 |
---|
| 229 | +#define BCM54XX_SHD_MODE_1000BX BIT(0) /* Enable 1000-X registers */ |
---|
189 | 230 | |
---|
190 | 231 | /* |
---|
191 | 232 | * EXPANSION SHADOW ACCESS REGISTERS. (PHY REG 0x15, 0x16, and 0x17) |
---|
.. | .. |
---|
220 | 261 | #define BCM54810_EXP_BROADREACH_LRE_MISC_CTL_EN (1 << 0) |
---|
221 | 262 | #define BCM54810_SHD_CLK_CTL 0x3 |
---|
222 | 263 | #define BCM54810_SHD_CLK_CTL_GTXCLK_EN (1 << 9) |
---|
| 264 | +#define BCM54810_SHD_SCR3_TRDDAPD 0x0100 |
---|
223 | 265 | |
---|
224 | 266 | /* BCM54612E Registers */ |
---|
225 | 267 | #define BCM54612E_EXP_SPARE0 (MII_BCM54XX_EXP_SEL_ETC + 0x34) |
---|
.. | .. |
---|
264 | 306 | #define MII_BRCM_CORE_EXPB0 0xB0 |
---|
265 | 307 | #define MII_BRCM_CORE_EXPB1 0xB1 |
---|
266 | 308 | |
---|
| 309 | +/* Enhanced Cable Diagnostics */ |
---|
| 310 | +#define BCM54XX_RDB_ECD_CTRL 0x2a0 |
---|
| 311 | +#define BCM54XX_EXP_ECD_CTRL (MII_BCM54XX_EXP_SEL_ER + 0xc0) |
---|
| 312 | + |
---|
| 313 | +#define BCM54XX_ECD_CTRL_CABLE_TYPE_CAT3 1 /* CAT3 or worse */ |
---|
| 314 | +#define BCM54XX_ECD_CTRL_CABLE_TYPE_CAT5 0 /* CAT5 or better */ |
---|
| 315 | +#define BCM54XX_ECD_CTRL_CABLE_TYPE_MASK BIT(0) /* cable type */ |
---|
| 316 | +#define BCM54XX_ECD_CTRL_INVALID BIT(3) /* invalid result */ |
---|
| 317 | +#define BCM54XX_ECD_CTRL_UNIT_CM 0 /* centimeters */ |
---|
| 318 | +#define BCM54XX_ECD_CTRL_UNIT_M 1 /* meters */ |
---|
| 319 | +#define BCM54XX_ECD_CTRL_UNIT_MASK BIT(10) /* cable length unit */ |
---|
| 320 | +#define BCM54XX_ECD_CTRL_IN_PROGRESS BIT(11) /* test in progress */ |
---|
| 321 | +#define BCM54XX_ECD_CTRL_BREAK_LINK BIT(12) /* unconnect link |
---|
| 322 | + * during test |
---|
| 323 | + */ |
---|
| 324 | +#define BCM54XX_ECD_CTRL_CROSS_SHORT_DIS BIT(13) /* disable inter-pair |
---|
| 325 | + * short check |
---|
| 326 | + */ |
---|
| 327 | +#define BCM54XX_ECD_CTRL_RUN BIT(15) /* run immediate */ |
---|
| 328 | + |
---|
| 329 | +#define BCM54XX_RDB_ECD_FAULT_TYPE 0x2a1 |
---|
| 330 | +#define BCM54XX_EXP_ECD_FAULT_TYPE (MII_BCM54XX_EXP_SEL_ER + 0xc1) |
---|
| 331 | +#define BCM54XX_ECD_FAULT_TYPE_INVALID 0x0 |
---|
| 332 | +#define BCM54XX_ECD_FAULT_TYPE_OK 0x1 |
---|
| 333 | +#define BCM54XX_ECD_FAULT_TYPE_OPEN 0x2 |
---|
| 334 | +#define BCM54XX_ECD_FAULT_TYPE_SAME_SHORT 0x3 /* short same pair */ |
---|
| 335 | +#define BCM54XX_ECD_FAULT_TYPE_CROSS_SHORT 0x4 /* short different pairs */ |
---|
| 336 | +#define BCM54XX_ECD_FAULT_TYPE_BUSY 0x9 |
---|
| 337 | +#define BCM54XX_ECD_FAULT_TYPE_PAIR_D_MASK GENMASK(3, 0) |
---|
| 338 | +#define BCM54XX_ECD_FAULT_TYPE_PAIR_C_MASK GENMASK(7, 4) |
---|
| 339 | +#define BCM54XX_ECD_FAULT_TYPE_PAIR_B_MASK GENMASK(11, 8) |
---|
| 340 | +#define BCM54XX_ECD_FAULT_TYPE_PAIR_A_MASK GENMASK(15, 12) |
---|
| 341 | +#define BCM54XX_ECD_PAIR_A_LENGTH_RESULTS 0x2a2 |
---|
| 342 | +#define BCM54XX_ECD_PAIR_B_LENGTH_RESULTS 0x2a3 |
---|
| 343 | +#define BCM54XX_ECD_PAIR_C_LENGTH_RESULTS 0x2a4 |
---|
| 344 | +#define BCM54XX_ECD_PAIR_D_LENGTH_RESULTS 0x2a5 |
---|
| 345 | + |
---|
| 346 | +#define BCM54XX_RDB_ECD_PAIR_A_LENGTH_RESULTS 0x2a2 |
---|
| 347 | +#define BCM54XX_EXP_ECD_PAIR_A_LENGTH_RESULTS (MII_BCM54XX_EXP_SEL_ER + 0xc2) |
---|
| 348 | +#define BCM54XX_RDB_ECD_PAIR_B_LENGTH_RESULTS 0x2a3 |
---|
| 349 | +#define BCM54XX_EXP_ECD_PAIR_B_LENGTH_RESULTS (MII_BCM54XX_EXP_SEL_ER + 0xc3) |
---|
| 350 | +#define BCM54XX_RDB_ECD_PAIR_C_LENGTH_RESULTS 0x2a4 |
---|
| 351 | +#define BCM54XX_EXP_ECD_PAIR_C_LENGTH_RESULTS (MII_BCM54XX_EXP_SEL_ER + 0xc4) |
---|
| 352 | +#define BCM54XX_RDB_ECD_PAIR_D_LENGTH_RESULTS 0x2a5 |
---|
| 353 | +#define BCM54XX_EXP_ECD_PAIR_D_LENGTH_RESULTS (MII_BCM54XX_EXP_SEL_ER + 0xc5) |
---|
| 354 | +#define BCM54XX_ECD_LENGTH_RESULTS_INVALID 0xffff |
---|
| 355 | + |
---|
267 | 356 | #endif /* _LINUX_BRCMPHY_H */ |
---|