Go to the documentation of this file.
31 #ifndef _DP83867_DRIVER_H
32 #define _DP83867_DRIVER_H
38 #ifndef DP83867_PHY_ADDR
39 #define DP83867_PHY_ADDR 0
40 #elif (DP83867_PHY_ADDR < 0 || DP83867_PHY_ADDR > 31)
41 #error DP83867_PHY_ADDR parameter is not valid
45 #define DP83867_BMCR 0x00
46 #define DP83867_BMSR 0x01
47 #define DP83867_PHYIDR1 0x02
48 #define DP83867_PHYIDR2 0x03
49 #define DP83867_ANAR 0x04
50 #define DP83867_ANLPAR 0x05
51 #define DP83867_ANER 0x06
52 #define DP83867_ANNPTR 0x07
53 #define DP83867_ANNPRR 0x08
54 #define DP83867_CFG1 0x09
55 #define DP83867_STS1 0x0A
56 #define DP83867_REGCR 0x0D
57 #define DP83867_ADDAR 0x0E
58 #define DP83867_1KSCR 0x0F
59 #define DP83867_PHYCR 0x10
60 #define DP83867_PHYSTS 0x11
61 #define DP83867_MICR 0x12
62 #define DP83867_MISR 0x13
63 #define DP83867_CFG2 0x14
64 #define DP83867_RECR 0x15
65 #define DP83867_BISCR 0x16
66 #define DP83867_STS2 0x17
67 #define DP83867_LEDCR1 0x18
68 #define DP83867_LEDCR2 0x19
69 #define DP83867_LEDCR3 0x1A
70 #define DP83867_CFG3 0x1E
71 #define DP83867_CTRL 0x1F
74 #define DP83867_TMCH_CTRL 0x1F, 0x0025
75 #define DP83867_AMDIX_TMR_CFG 0x1F, 0x002C
76 #define DP83867_FLD_CFG 0x1F, 0x002D
77 #define DP83867_FLD_THR_CFG 0x1F, 0x002E
78 #define DP83867_CFG4 0x1F, 0x0031
79 #define DP83867_RGMIICTL 0x1F, 0x0032
80 #define DP83867_RGMIICTL2 0x1F, 0x0033
81 #define DP83867_100CR 0x1F, 0x0043
82 #define DP83867_VTM_CFG 0x1F, 0x0053
83 #define DP83867_SKEW_FIFO 0x1F, 0x0055
84 #define DP83867_STRAP_STS1 0x1F, 0x006E
85 #define DP83867_STRAP_STS2 0x1F, 0x006F
86 #define DP83867_BICSR1 0x1F, 0x0071
87 #define DP83867_BICSR2 0x1F, 0x0072
88 #define DP83867_BICSR3 0x1F, 0x007B
89 #define DP83867_BICSR4 0x1F, 0x007C
90 #define DP83867_RGMIIDCTL 0x1F, 0x0086
91 #define DP83867_PLLCTL 0x1F, 0x00C6
92 #define DP83867_SYNC_FIFO_CTRL 0x1F, 0x00E9
93 #define DP83867_LOOPCR 0x1F, 0x00FE
94 #define DP83867_DSP_FFE_CFG 0x1F, 0x012C
95 #define DP83867_RXFCFG 0x1F, 0x0134
96 #define DP83867_RXFSTS 0x1F, 0x0135
97 #define DP83867_RXFPMD1 0x1F, 0x0136
98 #define DP83867_RXFPMD2 0x1F, 0x0137
99 #define DP83867_RXFPMD3 0x1F, 0x0138
100 #define DP83867_RXFSOP1 0x1F, 0x0139
101 #define DP83867_RXFSOP2 0x1F, 0x013A
102 #define DP83867_RXFSOP3 0x1F, 0x013B
103 #define DP83867_RXFPAT1 0x1F, 0x013C
104 #define DP83867_RXFPAT2 0x1F, 0x013D
105 #define DP83867_RXFPAT3 0x1F, 0x013E
106 #define DP83867_RXFPAT4 0x1F, 0x013F
107 #define DP83867_RXFPAT5 0x1F, 0x0140
108 #define DP83867_RXFPAT6 0x1F, 0x0141
109 #define DP83867_RXFPAT7 0x1F, 0x0142
110 #define DP83867_RXFPAT8 0x1F, 0x0143
111 #define DP83867_RXFPAT9 0x1F, 0x0144
112 #define DP83867_RXFPAT10 0x1F, 0x0145
113 #define DP83867_RXFPAT11 0x1F, 0x0146
114 #define DP83867_RXFPAT12 0x1F, 0x0147
115 #define DP83867_RXFPAT13 0x1F, 0x0148
116 #define DP83867_RXFPAT14 0x1F, 0x0149
117 #define DP83867_RXFPAT15 0x1F, 0x014A
118 #define DP83867_RXFPAT16 0x1F, 0x014B
119 #define DP83867_RXFPAT17 0x1F, 0x014C
120 #define DP83867_RXFPAT18 0x1F, 0x014D
121 #define DP83867_RXFPAT19 0x1F, 0x014E
122 #define DP83867_RXFPAT20 0x1F, 0x014F
123 #define DP83867_RXFPAT21 0x1F, 0x0150
124 #define DP83867_RXFPAT22 0x1F, 0x0151
125 #define DP83867_RXFPAT23 0x1F, 0x0152
126 #define DP83867_RXFPAT24 0x1F, 0x0153
127 #define DP83867_RXFPAT25 0x1F, 0x0154
128 #define DP83867_RXFPAT26 0x1F, 0x0155
129 #define DP83867_RXFPAT27 0x1F, 0x0156
130 #define DP83867_RXFPAT28 0x1F, 0x0157
131 #define DP83867_RXFPAT29 0x1F, 0x0158
132 #define DP83867_RXFPAT30 0x1F, 0x0159
133 #define DP83867_RXFPAT31 0x1F, 0x015A
134 #define DP83867_RXFPAT32 0x1F, 0x015B
135 #define DP83867_RXFPBM1 0x1F, 0x015C
136 #define DP83867_RXFPBM2 0x1F, 0x015D
137 #define DP83867_RXFPBM3 0x1F, 0x015E
138 #define DP83867_RXFPBM4 0x1F, 0x015F
139 #define DP83867_RXFPATC 0x1F, 0x0161
140 #define DP83867_IO_MUX_CFG 0x1F, 0x0170
141 #define DP83867_GPIO_MUX_CTRL1 0x1F, 0x0171
142 #define DP83867_GPIO_MUX_CTRL2 0x1F, 0x0172
143 #define DP83867_GPIO_MUX_CTRL 0x1F, 0x0172
144 #define DP83867_TDR_GEN_CFG1 0x1F, 0x0180
145 #define DP83867_TDR_PEAKS_LOC_1 0x1F, 0x0190
146 #define DP83867_TDR_PEAKS_LOC_2 0x1F, 0x0191
147 #define DP83867_TDR_PEAKS_LOC_3 0x1F, 0x0192
148 #define DP83867_TDR_PEAKS_LOC_4 0x1F, 0x0193
149 #define DP83867_TDR_PEAKS_LOC_5 0x1F, 0x0194
150 #define DP83867_TDR_PEAKS_LOC_6 0x1F, 0x0195
151 #define DP83867_TDR_PEAKS_LOC_7 0x1F, 0x0196
152 #define DP83867_TDR_PEAKS_LOC_8 0x1F, 0x0197
153 #define DP83867_TDR_PEAKS_LOC_9 0x1F, 0x0198
154 #define DP83867_TDR_PEAKS_LOC_10 0x1F, 0x0199
155 #define DP83867_TDR_PEAKS_AMP_1 0x1F, 0x019A
156 #define DP83867_TDR_PEAKS_AMP_2 0x1F, 0x019B
157 #define DP83867_TDR_PEAKS_AMP_3 0x1F, 0x019C
158 #define DP83867_TDR_PEAKS_AMP_4 0x1F, 0x019D
159 #define DP83867_TDR_PEAKS_AMP_5 0x1F, 0x019E
160 #define DP83867_TDR_PEAKS_AMP_6 0x1F, 0x019F
161 #define DP83867_TDR_PEAKS_AMP_7 0x1F, 0x01A0
162 #define DP83867_TDR_PEAKS_AMP_8 0x1F, 0x01A1
163 #define DP83867_TDR_PEAKS_AMP_9 0x1F, 0x01A2
164 #define DP83867_TDR_PEAKS_AMP_10 0x1F, 0x01A3
165 #define DP83867_PROG_GAIN 0x1F, 0x01D5
168 #define DP83867_BMCR_RESET 0x8000
169 #define DP83867_BMCR_LOOPBACK 0x4000
170 #define DP83867_BMCR_SPEED_SEL_LSB 0x2000
171 #define DP83867_BMCR_AN_EN 0x1000
172 #define DP83867_BMCR_POWER_DOWN 0x0800
173 #define DP83867_BMCR_ISOLATE 0x0400
174 #define DP83867_BMCR_RESTART_AN 0x0200
175 #define DP83867_BMCR_DUPLEX_MODE 0x0100
176 #define DP83867_BMCR_COL_TEST 0x0080
177 #define DP83867_BMCR_SPEED_SEL_MSB 0x0040
180 #define DP83867_BMSR_100BT4 0x8000
181 #define DP83867_BMSR_100BTX_FD 0x4000
182 #define DP83867_BMSR_100BTX_HD 0x2000
183 #define DP83867_BMSR_10BT_FD 0x1000
184 #define DP83867_BMSR_10BT_HD 0x0800
185 #define DP83867_BMSR_100BT2_FD 0x0400
186 #define DP83867_BMSR_100BT2_HD 0x0200
187 #define DP83867_BMSR_EXTENDED_STATUS 0x0100
188 #define DP83867_BMSR_MF_PREAMBLE_SUPPR 0x0040
189 #define DP83867_BMSR_AN_COMPLETE 0x0020
190 #define DP83867_BMSR_REMOTE_FAULT 0x0010
191 #define DP83867_BMSR_AN_CAPABLE 0x0008
192 #define DP83867_BMSR_LINK_STATUS 0x0004
193 #define DP83867_BMSR_JABBER_DETECT 0x0002
194 #define DP83867_BMSR_EXTENDED_CAPABLE 0x0001
197 #define DP83867_PHYIDR1_OUI_MSB 0xFFFF
198 #define DP83867_PHYIDR1_OUI_MSB_DEFAULT 0x2000
201 #define DP83867_PHYIDR2_OUI_LSB 0xFC00
202 #define DP83867_PHYIDR2_OUI_LSB_DEFAULT 0xA000
203 #define DP83867_PHYIDR2_VNDR_MDL 0x03F0
204 #define DP83867_PHYIDR2_VNDR_MDL_DEFAULT 0x0230
205 #define DP83867_PHYIDR2_MDL_REV 0x000F
208 #define DP83867_ANAR_NEXT_PAGE 0x8000
209 #define DP83867_ANAR_REMOTE_FAULT 0x2000
210 #define DP83867_ANAR_ASM_DIR 0x0800
211 #define DP83867_ANAR_PAUSE 0x0400
212 #define DP83867_ANAR_100BT4 0x0200
213 #define DP83867_ANAR_100BTX_FD 0x0100
214 #define DP83867_ANAR_100BTX_HD 0x0080
215 #define DP83867_ANAR_10BT_FD 0x0040
216 #define DP83867_ANAR_10BT_HD 0x0020
217 #define DP83867_ANAR_SELECTOR 0x001F
218 #define DP83867_ANAR_SELECTOR_DEFAULT 0x0001
221 #define DP83867_ANLPAR_NEXT_PAGE 0x8000
222 #define DP83867_ANLPAR_ACK 0x4000
223 #define DP83867_ANLPAR_REMOTE_FAULT 0x2000
224 #define DP83867_ANLPAR_ASM_DIR 0x0800
225 #define DP83867_ANLPAR_PAUSE 0x0400
226 #define DP83867_ANLPAR_100BT4 0x0200
227 #define DP83867_ANLPAR_100BTX_FD 0x0100
228 #define DP83867_ANLPAR_100BTX_HD 0x0080
229 #define DP83867_ANLPAR_10BT_FD 0x0040
230 #define DP83867_ANLPAR_10BT_HD 0x0020
231 #define DP83867_ANLPAR_SELECTOR 0x001F
234 #define DP83867_ANER_RX_NEXT_PAGE_LOC_ABLE 0x0040
235 #define DP83867_ANER_RX_NEXT_PAGE_STOR_LOC 0x0020
236 #define DP83867_ANER_PAR_DETECT_FAULT 0x0010
237 #define DP83867_ANER_LP_NP_ABLE 0x0008
238 #define DP83867_ANER_NP_ABLE 0x0004
239 #define DP83867_ANER_PAGE_RX 0x0002
240 #define DP83867_ANER_LP_AN_ABLE 0x0001
243 #define DP83867_ANNPTR_NEXT_PAGE 0x8000
244 #define DP83867_ANNPTR_ACK 0x4000
245 #define DP83867_ANNPTR_MSG_PAGE 0x2000
246 #define DP83867_ANNPTR_ACK2 0x1000
247 #define DP83867_ANNPTR_TOGGLE 0x0800
248 #define DP83867_ANNPTR_CODE 0x07FF
251 #define DP83867_ANNPRR_NEXT_PAGE 0x8000
252 #define DP83867_ANNPRR_ACK 0x4000
253 #define DP83867_ANNPRR_MSG_PAGE 0x2000
254 #define DP83867_ANNPRR_ACK2 0x1000
255 #define DP83867_ANNPRR_TOGGLE 0x0800
256 #define DP83867_ANNPRR_CODE 0x07FF
259 #define DP83867_CFG1_TEST_MODE 0xE000
260 #define DP83867_CFG1_MS_MAN_CONF_EN 0x1000
261 #define DP83867_CFG1_MS_MAN_CONF_VAL 0x0800
262 #define DP83867_CFG1_PORT_TYPE 0x0400
263 #define DP83867_CFG1_1000BT_FD 0x0200
264 #define DP83867_CFG1_1000BT_HD 0x0100
265 #define DP83867_CFG1_TDR_AUTO_RUN 0x0080
268 #define DP83867_STS1_MS_CONF_FAULT 0x8000
269 #define DP83867_STS1_MS_CONF_RES 0x4000
270 #define DP83867_STS1_LOCAL_RECEIVER_STATUS 0x2000
271 #define DP83867_STS1_REMOTE_RECEIVER_STATUS 0x1000
272 #define DP83867_STS1_LP_1000BT_FD 0x0800
273 #define DP83867_STS1_LP_1000BT_HD 0x0400
274 #define DP83867_STS1_IDLE_ERR_COUNT 0x00FF
277 #define DP83867_REGCR_FUNC 0xC000
278 #define DP83867_REGCR_FUNC_ADDR 0x0000
279 #define DP83867_REGCR_FUNC_DATA_NO_POST_INC 0x4000
280 #define DP83867_REGCR_FUNC_DATA_POST_INC_RW 0x8000
281 #define DP83867_REGCR_FUNC_DATA_POST_INC_W 0xC000
282 #define DP83867_REGCR_DEVAD 0x001F
285 #define DP83867_1KSCR_1000BX_FD 0x8000
286 #define DP83867_1KSCR_1000BX_HD 0x4000
287 #define DP83867_1KSCR_1000BT_FD 0x2000
288 #define DP83867_1KSCR_1000BT_HD 0x1000
291 #define DP83867_PHYCR_TX_FIFO_DEPTH 0xC000
292 #define DP83867_PHYCR_FORCE_LINK_GOOD 0x0400
293 #define DP83867_PHYCR_POWER_SAVE_MODE 0x0300
294 #define DP83867_PHYCR_DEEP_POWER_DOWN_EN 0x0080
295 #define DP83867_PHYCR_MDI_CROSSOVER 0x0060
296 #define DP83867_PHYCR_DISABLE_CLK_125 0x0010
297 #define DP83867_PHYCR_STANDBY_MODE 0x0004
298 #define DP83867_PHYCR_LINE_DRIVER_INV_EN 0x0002
299 #define DP83867_PHYCR_DISABLE_JABBER 0x0001
302 #define DP83867_PHYSTS_SPEED_SEL 0xC000
303 #define DP83867_PHYSTS_SPEED_SEL_10MBPS 0x0000
304 #define DP83867_PHYSTS_SPEED_SEL_100MBPS 0x4000
305 #define DP83867_PHYSTS_SPEED_SEL_1000MBPS 0x8000
306 #define DP83867_PHYSTS_DUPLEX_MODE 0x2000
307 #define DP83867_PHYSTS_PAGE_RECEIVED 0x1000
308 #define DP83867_PHYSTS_SPEED_DUPLEX_RESOLVED 0x0800
309 #define DP83867_PHYSTS_LINK_STATUS 0x0400
310 #define DP83867_PHYSTS_MDI_X_MODE_CD 0x0200
311 #define DP83867_PHYSTS_MDI_X_MODE_AB 0x0100
312 #define DP83867_PHYSTS_SPEED_OPT_STATUS 0x0080
313 #define DP83867_PHYSTS_SLEEP_MODE 0x0040
314 #define DP83867_PHYSTS_WIRE_CROSS 0x003C
315 #define DP83867_PHYSTS_POLARITY_STATUS 0x0002
316 #define DP83867_PHYSTS_JABBER_DETECT 0x0001
319 #define DP83867_MICR_AUTONEG_ERR_INT_EN 0x8000
320 #define DP83867_MICR_SPEED_CHNG_INT_EN 0x4000
321 #define DP83867_MICR_DUPLEX_MODE_CHNG_INT_EN 0x2000
322 #define DP83867_MICR_PAGE_RECEIVED_INT_EN 0x1000
323 #define DP83867_MICR_AUTONEG_COMP_INT_EN 0x0800
324 #define DP83867_MICR_LINK_STATUS_CHNG_INT_EN 0x0400
325 #define DP83867_MICR_FALSE_CARRIER_INT_EN 0x0100
326 #define DP83867_MICR_MDI_CROSSOVER_CHNG_INT_EN 0x0040
327 #define DP83867_MICR_SPEED_OPT_EVENT_INT_EN 0x0020
328 #define DP83867_MICR_SLEEP_MODE_CHNG_INT_EN 0x0010
329 #define DP83867_MICR_WOL_INT_EN 0x0008
330 #define DP83867_MICR_XGMII_ERR_INT_EN 0x0004
331 #define DP83867_MICR_POLARITY_CHNG_INT_EN 0x0002
332 #define DP83867_MICR_JABBER_INT_EN 0x0001
335 #define DP83867_MISR_AUTONEG_ERR_INT 0x8000
336 #define DP83867_MISR_SPEED_CHNG_INT 0x4000
337 #define DP83867_MISR_DUPLEX_MODE_CHNG_INT 0x2000
338 #define DP83867_MISR_PAGE_RECEIVED_INT 0x1000
339 #define DP83867_MISR_AUTONEG_COMP_INT 0x0800
340 #define DP83867_MISR_LINK_STATUS_CHNG_INT 0x0400
341 #define DP83867_MISR_FALSE_CARRIER_INT 0x0100
342 #define DP83867_MISR_MDI_CROSSOVER_CHNG_INT 0x0040
343 #define DP83867_MISR_SPEED_OPT_EVENT_INT 0x0020
344 #define DP83867_MISR_SLEEP_MODE_CHNG_INT 0x0010
345 #define DP83867_MISR_WOL_INT 0x0008
346 #define DP83867_MISR_XGMII_ERR_INT 0x0004
347 #define DP83867_MISR_POLARITY_CHNG_INT 0x0002
348 #define DP83867_MISR_JABBER_INT 0x0001
351 #define DP83867_CFG2_INTERRUPT_POLARITY 0x2000
352 #define DP83867_CFG2_SPEED_OPT_ATTEMPT_CNT 0x0C00
353 #define DP83867_CFG2_SPEED_OPT_EN 0x0200
354 #define DP83867_CFG2_SPEED_OPT_ENHANCED_EN 0x0100
355 #define DP83867_CFG2_SPEED_OPT_10M_EN 0x0040
358 #define DP83867_RECR_RXERCNT 0xFFFF
361 #define DP83867_BISCR_PRBS_COUNT_MODE 0x8000
362 #define DP83867_BISCR_GEN_PRBS_PACKET 0x4000
363 #define DP83867_BISCR_PACKET_GEN_64BIT_MODE 0x2000
364 #define DP83867_BISCR_PACKET_GEN_EN 0x1000
365 #define DP83867_BISCR_REV_LOOP_RX_DATA_CTRL 0x0080
366 #define DP83867_BISCR_MII_LOOP_TX_DATA_CTRL 0x0040
367 #define DP83867_BISCR_LOOPBACK_MODE 0x003C
368 #define DP83867_BISCR_PCS_LOOPBACK 0x0003
369 #define DP83867_BISCR_PCS_LOOPBACK_BEFORE_SCRAMBLER 0x0001
370 #define DP83867_BISCR_PCS_LOOPBACK_AFTER_SCRAMBLER 0x0002
371 #define DP83867_BISCR_PCS_LOOPBACK_AFTER_MLT3_ENCODER 0x0003
374 #define DP83867_STS2_PRBS_LOCK 0x0800
375 #define DP83867_STS2_PRBS_LOCK_LOST 0x0400
376 #define DP83867_STS2_PKT_GEN_BUSY 0x0200
377 #define DP83867_STS2_SCR_MODE_MASTER_1G 0x0100
378 #define DP83867_STS2_SCR_MODE_SLAVE_1G 0x0080
379 #define DP83867_STS2_CORE_PWR_MODE 0x0040
382 #define DP83867_LEDCR1_LED_GPIO_SEL 0xF000
383 #define DP83867_LEDCR1_LED_GPIO_SEL_LINK 0x0000
384 #define DP83867_LEDCR1_LED_GPIO_SEL_ACT 0x1000
385 #define DP83867_LEDCR1_LED_GPIO_SEL_TX_ACT 0x2000
386 #define DP83867_LEDCR1_LED_GPIO_SEL_RX_ACT 0x3000
387 #define DP83867_LEDCR1_LED_GPIO_SEL_COL 0x4000
388 #define DP83867_LEDCR1_LED_GPIO_SEL_1000 0x5000
389 #define DP83867_LEDCR1_LED_GPIO_SEL_100 0x6000
390 #define DP83867_LEDCR1_LED_GPIO_SEL_10 0x7000
391 #define DP83867_LEDCR1_LED_GPIO_SEL_10_100 0x8000
392 #define DP83867_LEDCR1_LED_GPIO_SEL_100_1000 0x9000
393 #define DP83867_LEDCR1_LED_GPIO_SEL_FD 0xA000
394 #define DP83867_LEDCR1_LED_GPIO_SEL_LINK_ACT 0xB000
395 #define DP83867_LEDCR1_LED_GPIO_SEL_ERR 0xD000
396 #define DP83867_LEDCR1_LED_GPIO_SEL_RX_ERR 0xE000
397 #define DP83867_LEDCR1_LED_2_SEL 0x1F00
398 #define DP83867_LEDCR1_LED_2_SEL_LINK 0x0000
399 #define DP83867_LEDCR1_LED_2_SEL_ACT 0x0100
400 #define DP83867_LEDCR1_LED_2_SEL_TX_ACT 0x0200
401 #define DP83867_LEDCR1_LED_2_SEL_RX_ACT 0x0300
402 #define DP83867_LEDCR1_LED_2_SEL_COL 0x0400
403 #define DP83867_LEDCR1_LED_2_SEL_1000 0x0500
404 #define DP83867_LEDCR1_LED_2_SEL_100 0x0600
405 #define DP83867_LEDCR1_LED_2_SEL_10 0x0700
406 #define DP83867_LEDCR1_LED_2_SEL_10_100 0x0800
407 #define DP83867_LEDCR1_LED_2_SEL_100_1000 0x0900
408 #define DP83867_LEDCR1_LED_2_SEL_FD 0x0A00
409 #define DP83867_LEDCR1_LED_2_SEL_LINK_ACT 0x0B00
410 #define DP83867_LEDCR1_LED_2_SEL_ERR 0x0D00
411 #define DP83867_LEDCR1_LED_2_SEL_RX_ERR 0x0E00
412 #define DP83867_LEDCR1_LED_1_SEL 0x00F0
413 #define DP83867_LEDCR1_LED_1_SEL_LINK 0x0000
414 #define DP83867_LEDCR1_LED_1_SEL_ACT 0x0010
415 #define DP83867_LEDCR1_LED_1_SEL_TX_ACT 0x0020
416 #define DP83867_LEDCR1_LED_1_SEL_RX_ACT 0x0030
417 #define DP83867_LEDCR1_LED_1_SEL_COL 0x0040
418 #define DP83867_LEDCR1_LED_1_SEL_1000 0x0050
419 #define DP83867_LEDCR1_LED_1_SEL_100 0x0060
420 #define DP83867_LEDCR1_LED_1_SEL_10 0x0070
421 #define DP83867_LEDCR1_LED_1_SEL_10_100 0x0080
422 #define DP83867_LEDCR1_LED_1_SEL_100_1000 0x0090
423 #define DP83867_LEDCR1_LED_1_SEL_FD 0x00A0
424 #define DP83867_LEDCR1_LED_1_SEL_LINK_ACT 0x00B0
425 #define DP83867_LEDCR1_LED_1_SEL_ERR 0x00D0
426 #define DP83867_LEDCR1_LED_1_SEL_RX_ERR 0x00E0
427 #define DP83867_LEDCR1_LED_0_SEL 0x000F
428 #define DP83867_LEDCR1_LED_0_SEL_LINK 0x0000
429 #define DP83867_LEDCR1_LED_0_SEL_ACT 0x0001
430 #define DP83867_LEDCR1_LED_0_SEL_TX_ACT 0x0002
431 #define DP83867_LEDCR1_LED_0_SEL_RX_ACT 0x0003
432 #define DP83867_LEDCR1_LED_0_SEL_COL 0x0004
433 #define DP83867_LEDCR1_LED_0_SEL_1000 0x0005
434 #define DP83867_LEDCR1_LED_0_SEL_100 0x0006
435 #define DP83867_LEDCR1_LED_0_SEL_10 0x0007
436 #define DP83867_LEDCR1_LED_0_SEL_10_100 0x0008
437 #define DP83867_LEDCR1_LED_0_SEL_100_1000 0x0009
438 #define DP83867_LEDCR1_LED_0_SEL_FD 0x000A
439 #define DP83867_LEDCR1_LED_0_SEL_LINK_ACT 0x000B
440 #define DP83867_LEDCR1_LED_0_SEL_ERR 0x000D
441 #define DP83867_LEDCR1_LED_0_SEL_RX_ERR 0x000E
444 #define DP83867_LEDCR2_LED_GPIO_POLARITY 0x4000
445 #define DP83867_LEDCR2_LED_GPIO_DRV_VAL 0x2000
446 #define DP83867_LEDCR2_LED_GPIO_DRV_EN 0x1000
447 #define DP83867_LEDCR2_LED_2_POLARITY 0x0400
448 #define DP83867_LEDCR2_LED_2_DRV_VAL 0x0200
449 #define DP83867_LEDCR2_LED_2_DRV_EN 0x0100
450 #define DP83867_LEDCR2_LED_1_POLARITY 0x0040
451 #define DP83867_LEDCR2_LED_1_DRV_VAL 0x0020
452 #define DP83867_LEDCR2_LED_1_DRV_EN 0x0010
453 #define DP83867_LEDCR2_LED_0_POLARITY 0x0004
454 #define DP83867_LEDCR2_LED_0_DRV_VAL 0x0002
455 #define DP83867_LEDCR2_LED_0_DRV_EN 0x0001
458 #define DP83867_LEDCR3_LEDS_BYPASS_STRETCHING 0x0004
459 #define DP83867_LEDCR3_LEDS_BLINK_RATE 0x0003
460 #define DP83867_LEDCR3_LEDS_BLINK_RATE_20HZ 0x0000
461 #define DP83867_LEDCR3_LEDS_BLINK_RATE_10HZ 0x0001
462 #define DP83867_LEDCR3_LEDS_BLINK_RATE_5HZ 0x0002
463 #define DP83867_LEDCR3_LEDS_BLINK_RATE_2HZ 0x0003
466 #define DP83867_CFG3_FAST_LINK_UP_PAR_DETECT 0x8000
467 #define DP83867_CFG3_FAST_AN_EN 0x4000
468 #define DP83867_CFG3_FAST_AN_SEL 0x3000
469 #define DP83867_CFG3_EXTENDED_FD_ABLE 0x0800
470 #define DP83867_CFG3_ROBUST_AUTO_MDIX 0x0200
471 #define DP83867_CFG3_FAST_AUTO_MDIX 0x0100
472 #define DP83867_CFG3_INT_OE 0x0080
473 #define DP83867_CFG3_FORCE_INTERRUPT 0x0040
474 #define DP83867_CFG3_TDR_FAIL 0x0004
475 #define DP83867_CFG3_TDR_DONE 0x0002
476 #define DP83867_CFG3_TDR_START 0x0001
479 #define DP83867_CTRL_SW_RESET 0x8000
480 #define DP83867_CTRL_SW_RESTART 0x4000
483 #define DP83867_TMCH_CTRL_TM_CH_SEL 0x00E0
486 #define DP83867_AMDIX_TMR_CFG_RAMDIX_TMR 0x000F
489 #define DP83867_FLD_CFG_FORCE_DROP 0x8000
490 #define DP83867_FLD_CFG_FLD_EN 0x4000
491 #define DP83867_FLD_CFG_FLD_STS 0x1F00
492 #define DP83867_FLD_CFG_FLD_SRC_CFG 0x001F
495 #define DP83867_FLD_THR_CFG_ENERGY_LOST_FLD_THR 0x0007
498 #define DP83867_CFG4_INT_TST_MODE_1 0x0080
499 #define DP83867_CFG4_PORT_MIRROR_EN 0x0001
502 #define DP83867_RGMIICTL_RGMII_EN 0x0080
503 #define DP83867_RGMIICTL_RGMII_RX_HALF_FULL_THR 0x0060
504 #define DP83867_RGMIICTL_RGMII_TX_HALF_FULL_THR 0x0018
505 #define DP83867_RGMIICTL_RGMII_TX_CLK_DELAY 0x0002
506 #define DP83867_RGMIICTL_RGMII_RX_CLK_DELAY 0x0001
509 #define DP83867_RGMIICTL2_RGMII_AF_BYPASS_EN 0x0010
512 #define DP83867_100CR_DESCRAM_TIMEOUT_DIS 0x0800
513 #define DP83867_100CR_DESCRAM_TIMEOUT 0x0780
514 #define DP83867_100CR_FORCE_100_OK 0x0040
515 #define DP83867_100CR_ENH_MLT3_DET_EN 0x0020
516 #define DP83867_100CR_ENH_IPG_DET_EN 0x0010
517 #define DP83867_100CR_BYPASS_4B5B_RX 0x0008
518 #define DP83867_100CR_SCR_DIS 0x0004
519 #define DP83867_100CR_ODD_NIBBLE_DETECT 0x0002
520 #define DP83867_100CR_FAST_RX_DV 0x0001
523 #define DP83867_VTM_CFG_VTM_IDLE_CHECK_CNT_THR 0x000F
526 #define DP83867_SKEW_FIFO_CH_B_SKEW 0x00F0
527 #define DP83867_SKEW_FIFO_CH_A_SKEW 0x000F
530 #define DP83867_STRAP_STS1_STRAP_MIRROR_EN 0x8000
531 #define DP83867_STRAP_STS1_STRAP_LINK_DOWNSHIFT_EN 0x4000
532 #define DP83867_STRAP_STS1_STRAP_CLK_OUT_DIS_PAP 0x2000
533 #define DP83867_STRAP_STS1_STRAP_RGMII_DIS 0x1000
534 #define DP83867_STRAP_STS1_STRAP_AMDIX_DIS 0x0400
535 #define DP83867_STRAP_STS1_STRAP_FORCE_MDI_X 0x0200
536 #define DP83867_STRAP_STS1_STRAP_HD_EN 0x0100
537 #define DP83867_STRAP_STS1_STRAP_ANEG_DIS 0x0080
538 #define DP83867_STRAP_STS1_STRAP_ANEG_SEL_PAP 0x0060
539 #define DP83867_STRAP_STS1_STRAP_PHY_ADD_PAP 0x001F
540 #define DP83867_STRAP_STS1_STRAP_SPEED_SEL_RGZ 0x0020
541 #define DP83867_STRAP_STS1_STRAP_PHY_ADD_RGZ 0x000F
544 #define DP83867_STRAP_STS2_STRAP_RGMII_CLK_SKEW_TX_RGZ 0x0070
545 #define DP83867_STRAP_STS2_STRAP_RGMII_CLK_SKEW_RX_RGZ 0x0007
548 #define DP83867_BICSR1_PRBS_BYTE_CNT 0xFFFF
551 #define DP83867_BICSR2_PRBS_PKT_CNT_OVF 0x0400
552 #define DP83867_BICSR2_PRBS_BYTE_CNT_OVF 0x0200
553 #define DP83867_BICSR2_PRBS_ERR_CNT 0x00FF
556 #define DP83867_BICSR3_PKT_LEN_PRBS 0xFFFF
559 #define DP83867_BICSR4_IPG_LEN 0x00FF
562 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL 0x00F0
563 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_0_25NS 0x0000
564 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_0_50NS 0x0010
565 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_0_75NS 0x0020
566 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_1_00NS 0x0030
567 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_1_25NS 0x0040
568 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_1_50NS 0x0050
569 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_1_75NS 0x0060
570 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_2_00NS 0x0070
571 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_2_25NS 0x0080
572 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_2_50NS 0x0090
573 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_2_75NS 0x00A0
574 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_3_00NS 0x00B0
575 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_3_25NS 0x00C0
576 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_3_50NS 0x00D0
577 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_3_75NS 0x00E0
578 #define DP83867_RGMIIDCTL_RGMII_TX_DELAY_CTRL_4_00NS 0x00F0
579 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL 0x000F
580 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_0_25NS 0x0000
581 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_0_50NS 0x0001
582 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_0_75NS 0x0002
583 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_1_00NS 0x0003
584 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_1_25NS 0x0004
585 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_1_50NS 0x0005
586 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_1_75NS 0x0006
587 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_2_00NS 0x0007
588 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_2_25NS 0x0008
589 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_2_50NS 0x0009
590 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_2_75NS 0x000A
591 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_3_00NS 0x000B
592 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_3_25NS 0x000C
593 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_3_50NS 0x000D
594 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_3_75NS 0x000E
595 #define DP83867_RGMIIDCTL_RGMII_RX_DELAY_CTRL_4_00NS 0x000F
598 #define DP83867_PLLCTL_CLK_MUX 0x0010
601 #define DP83867_LOOPCR_LOOP_CFG_VAL 0xFFFF
604 #define DP83867_DSP_FFE_CFG_FFE_EQ 0x03FF
607 #define DP83867_RXFCFG_WOL_OUT_CLEAR 0x0800
608 #define DP83867_RXFCFG_WOL_OUT_STRETCH 0x0600
609 #define DP83867_RXFCFG_WOL_OUT_MODE 0x0100
610 #define DP83867_RXFCFG_ENHANCED_MAC_SUPPORT 0x0080
611 #define DP83867_RXFCFG_SCRON_EN 0x0020
612 #define DP83867_RXFCFG_WAKE_ON_UCAST 0x0010
613 #define DP83867_RXFCFG_WAKE_ON_BCAST 0x0004
614 #define DP83867_RXFCFG_WAKE_ON_PATTERN 0x0002
615 #define DP83867_RXFCFG_WAKE_ON_MAGIC 0x0001
618 #define DP83867_RXFSTS_SFD_ERR 0x0080
619 #define DP83867_RXFSTS_BAD_CRC 0x0040
620 #define DP83867_RXFSTS_SCRON_HACK 0x0020
621 #define DP83867_RXFSTS_UCAST_RCVD 0x0010
622 #define DP83867_RXFSTS_BCAST_RCVD 0x0004
623 #define DP83867_RXFSTS_PATTERN_RCVD 0x0002
624 #define DP83867_RXFSTS_MAGIC_RCVD 0x0001
627 #define DP83867_RXFPMD1_PMATCH_DATA_15_0 0xFFFF
630 #define DP83867_RXFPMD2_PMATCH_DATA_31_16 0xFFFF
633 #define DP83867_RXFPMD3_PMATCH_DATA_47_32 0xFFFF
636 #define DP83867_RXFSOP1_SCRON_PASSWORD_15_0 0xFFFF
639 #define DP83867_RXFSOP2_SCRON_PASSWORD_31_16 0xFFFF
642 #define DP83867_RXFSOP3_SCRON_PASSWORD_47_32 0xFFFF
645 #define DP83867_RXFPAT1_PATTERN_BYTES_0_1 0xFFFF
648 #define DP83867_RXFPAT2_PATTERN_BYTES_2_3 0xFFFF
651 #define DP83867_RXFPAT3_PATTERN_BYTES_4_5 0xFFFF
654 #define DP83867_RXFPAT4_PATTERN_BYTES_6_7 0xFFFF
657 #define DP83867_RXFPAT5_PATTERN_BYTES_8_9 0xFFFF
660 #define DP83867_RXFPAT6_PATTERN_BYTES_10_11 0xFFFF
663 #define DP83867_RXFPAT7_PATTERN_BYTES_12_13 0xFFFF
666 #define DP83867_RXFPAT8_PATTERN_BYTES_14_15 0xFFFF
669 #define DP83867_RXFPAT9_PATTERN_BYTES_16_17 0xFFFF
672 #define DP83867_RXFPAT10_PATTERN_BYTES_18_19 0xFFFF
675 #define DP83867_RXFPAT11_PATTERN_BYTES_20_21 0xFFFF
678 #define DP83867_RXFPAT12_PATTERN_BYTES_22_23 0xFFFF
681 #define DP83867_RXFPAT13_PATTERN_BYTES_24_25 0xFFFF
684 #define DP83867_RXFPAT14_PATTERN_BYTES_26_27 0xFFFF
687 #define DP83867_RXFPAT15_PATTERN_BYTES_28_29 0xFFFF
690 #define DP83867_RXFPAT16_PATTERN_BYTES_30_31 0xFFFF
693 #define DP83867_RXFPAT17_PATTERN_BYTES_32_33 0xFFFF
696 #define DP83867_RXFPAT18_PATTERN_BYTES_34_35 0xFFFF
699 #define DP83867_RXFPAT19_PATTERN_BYTES_36_37 0xFFFF
702 #define DP83867_RXFPAT20_PATTERN_BYTES_38_39 0xFFFF
705 #define DP83867_RXFPAT21_PATTERN_BYTES_40_41 0xFFFF
708 #define DP83867_RXFPAT22_PATTERN_BYTES_42_43 0xFFFF
711 #define DP83867_RXFPAT23_PATTERN_BYTES_44_45 0xFFFF
714 #define DP83867_RXFPAT24_PATTERN_BYTES_46_47 0xFFFF
717 #define DP83867_RXFPAT25_PATTERN_BYTES_48_49 0xFFFF
720 #define DP83867_RXFPAT26_PATTERN_BYTES_50_51 0xFFFF
723 #define DP83867_RXFPAT27_PATTERN_BYTES_52_53 0xFFFF
726 #define DP83867_RXFPAT28_PATTERN_BYTES_54_55 0xFFFF
729 #define DP83867_RXFPAT29_PATTERN_BYTES_56_57 0xFFFF
732 #define DP83867_RXFPAT30_PATTERN_BYTES_58_59 0xFFFF
735 #define DP83867_RXFPAT31_PATTERN_BYTES_60_61 0xFFFF
738 #define DP83867_RXFPAT32_PATTERN_BYTES_62_63 0xFFFF
741 #define DP83867_RXFPBM1_PATTERN_BYTES_MASK_0_15 0xFFFF
744 #define DP83867_RXFPBM2_PATTERN_BYTES_MASK_16_31 0xFFFF
747 #define DP83867_RXFPBM3_PATTERN_BYTES_MASK_32_47 0xFFFF
750 #define DP83867_RXFPBM4_PATTERN_BYTES_MASK_48_63 0xFFFF
753 #define DP83867_RXFPATC_PATTERN_START_POINT 0x003F
756 #define DP83867_IO_MUX_CFG_CLK_O_SEL 0x1F00
757 #define DP83867_IO_MUX_CFG_CLK_O_DISABLE 0x0040
758 #define DP83867_IO_MUX_CFG_IO_IMPEDANCE_CTRL 0x001F
761 #define DP83867_GPIO_MUX_CTRL1_RX_D7_GPIO_CTRL 0xF000
762 #define DP83867_GPIO_MUX_CTRL1_RX_D7_GPIO_CTRL_RX_D7 0x0000
763 #define DP83867_GPIO_MUX_CTRL1_RX_D7_GPIO_CTRL_1588_TX_SFD 0x1000
764 #define DP83867_GPIO_MUX_CTRL1_RX_D7_GPIO_CTRL_1588_RX_SFD 0x2000
765 #define DP83867_GPIO_MUX_CTRL1_RX_D7_GPIO_CTRL_WOL 0x3000
766 #define DP83867_GPIO_MUX_CTRL1_RX_D7_GPIO_CTRL_ED 0x4000
767 #define DP83867_GPIO_MUX_CTRL1_RX_D7_GPIO_CTRL_LED_3 0x6000
768 #define DP83867_GPIO_MUX_CTRL1_RX_D7_GPIO_CTRL_PRBS_ERR 0x7000
769 #define DP83867_GPIO_MUX_CTRL1_RX_D7_GPIO_CTRL_CONST_0 0x8000
770 #define DP83867_GPIO_MUX_CTRL1_RX_D7_GPIO_CTRL_CONST_1 0x9000
771 #define DP83867_GPIO_MUX_CTRL1_RX_D6_GPIO_CTRL 0x0F00
772 #define DP83867_GPIO_MUX_CTRL1_RX_D6_GPIO_CTRL_RX_D6 0x0000
773 #define DP83867_GPIO_MUX_CTRL1_RX_D6_GPIO_CTRL_1588_TX_SFD 0x0100
774 #define DP83867_GPIO_MUX_CTRL1_RX_D6_GPIO_CTRL_1588_RX_SFD 0x0200
775 #define DP83867_GPIO_MUX_CTRL1_RX_D6_GPIO_CTRL_WOL 0x0300
776 #define DP83867_GPIO_MUX_CTRL1_RX_D6_GPIO_CTRL_ED 0x0400
777 #define DP83867_GPIO_MUX_CTRL1_RX_D6_GPIO_CTRL_LED_3 0x0600
778 #define DP83867_GPIO_MUX_CTRL1_RX_D6_GPIO_CTRL_PRBS_ERR 0x0700
779 #define DP83867_GPIO_MUX_CTRL1_RX_D6_GPIO_CTRL_CONST_0 0x0800
780 #define DP83867_GPIO_MUX_CTRL1_RX_D6_GPIO_CTRL_CONST_1 0x0900
781 #define DP83867_GPIO_MUX_CTRL1_RX_D5_GPIO_CTRL 0x00F0
782 #define DP83867_GPIO_MUX_CTRL1_RX_D5_GPIO_CTRL_RX_D5 0x0000
783 #define DP83867_GPIO_MUX_CTRL1_RX_D5_GPIO_CTRL_1588_TX_SFD 0x0010
784 #define DP83867_GPIO_MUX_CTRL1_RX_D5_GPIO_CTRL_1588_RX_SFD 0x0020
785 #define DP83867_GPIO_MUX_CTRL1_RX_D5_GPIO_CTRL_WOL 0x0030
786 #define DP83867_GPIO_MUX_CTRL1_RX_D5_GPIO_CTRL_ED 0x0040
787 #define DP83867_GPIO_MUX_CTRL1_RX_D5_GPIO_CTRL_LED_3 0x0060
788 #define DP83867_GPIO_MUX_CTRL1_RX_D5_GPIO_CTRL_PRBS_ERR 0x0070
789 #define DP83867_GPIO_MUX_CTRL1_RX_D5_GPIO_CTRL_CONST_0 0x0080
790 #define DP83867_GPIO_MUX_CTRL1_RX_D5_GPIO_CTRL_CONST_1 0x0090
791 #define DP83867_GPIO_MUX_CTRL1_RX_D4_GPIO_CTRL 0x000F
792 #define DP83867_GPIO_MUX_CTRL1_RX_D4_GPIO_CTRL_RX_D4 0x0000
793 #define DP83867_GPIO_MUX_CTRL1_RX_D4_GPIO_CTRL_1588_TX_SFD 0x0001
794 #define DP83867_GPIO_MUX_CTRL1_RX_D4_GPIO_CTRL_1588_RX_SFD 0x0002
795 #define DP83867_GPIO_MUX_CTRL1_RX_D4_GPIO_CTRL_WOL 0x0003
796 #define DP83867_GPIO_MUX_CTRL1_RX_D4_GPIO_CTRL_ED 0x0004
797 #define DP83867_GPIO_MUX_CTRL1_RX_D4_GPIO_CTRL_LED_3 0x0006
798 #define DP83867_GPIO_MUX_CTRL1_RX_D4_GPIO_CTRL_PRBS_ERR 0x0007
799 #define DP83867_GPIO_MUX_CTRL1_RX_D4_GPIO_CTRL_CONST_0 0x0008
800 #define DP83867_GPIO_MUX_CTRL1_RX_D4_GPIO_CTRL_CONST_1 0x0009
803 #define DP83867_GPIO_MUX_CTRL2_CRS_GPIO_CTRL 0x0F00
804 #define DP83867_GPIO_MUX_CTRL2_CRS_GPIO_CTRL_CRS 0x0000
805 #define DP83867_GPIO_MUX_CTRL2_CRS_GPIO_CTRL_1588_TX_SFD 0x0100
806 #define DP83867_GPIO_MUX_CTRL2_CRS_GPIO_CTRL_1588_RX_SFD 0x0200
807 #define DP83867_GPIO_MUX_CTRL2_CRS_GPIO_CTRL_WOL 0x0300
808 #define DP83867_GPIO_MUX_CTRL2_CRS_GPIO_CTRL_ED 0x0400
809 #define DP83867_GPIO_MUX_CTRL2_CRS_GPIO_CTRL_LED_3 0x0600
810 #define DP83867_GPIO_MUX_CTRL2_CRS_GPIO_CTRL_PRBS_ERR 0x0700
811 #define DP83867_GPIO_MUX_CTRL2_CRS_GPIO_CTRL_CONST_0 0x0800
812 #define DP83867_GPIO_MUX_CTRL2_CRS_GPIO_CTRL_CONST_1 0x0900
813 #define DP83867_GPIO_MUX_CTRL2_COL_GPIO_CTRL 0x00F0
814 #define DP83867_GPIO_MUX_CTRL2_COL_GPIO_CTRL_COL 0x0000
815 #define DP83867_GPIO_MUX_CTRL2_COL_GPIO_CTRL_1588_TX_SFD 0x0010
816 #define DP83867_GPIO_MUX_CTRL2_COL_GPIO_CTRL_1588_RX_SFD 0x0020
817 #define DP83867_GPIO_MUX_CTRL2_COL_GPIO_CTRL_WOL 0x0030
818 #define DP83867_GPIO_MUX_CTRL2_COL_GPIO_CTRL_ED 0x0040
819 #define DP83867_GPIO_MUX_CTRL2_COL_GPIO_CTRL_LED_3 0x0060
820 #define DP83867_GPIO_MUX_CTRL2_COL_GPIO_CTRL_PRBS_ERR 0x0070
821 #define DP83867_GPIO_MUX_CTRL2_COL_GPIO_CTRL_CONST_0 0x0080
822 #define DP83867_GPIO_MUX_CTRL2_COL_GPIO_CTRL_CONST_1 0x0090
823 #define DP83867_GPIO_MUX_CTRL2_RX_ER_GPIO_CTRL 0x000F
824 #define DP83867_GPIO_MUX_CTRL2_RX_ER_GPIO_CTRL_RX_ER 0x0000
825 #define DP83867_GPIO_MUX_CTRL2_RX_ER_GPIO_CTRL_1588_TX_SFD 0x0001
826 #define DP83867_GPIO_MUX_CTRL2_RX_ER_GPIO_CTRL_1588_RX_SFD 0x0002
827 #define DP83867_GPIO_MUX_CTRL2_RX_ER_GPIO_CTRL_WOL 0x0003
828 #define DP83867_GPIO_MUX_CTRL2_RX_ER_GPIO_CTRL_ED 0x0004
829 #define DP83867_GPIO_MUX_CTRL2_RX_ER_GPIO_CTRL_LED_3 0x0006
830 #define DP83867_GPIO_MUX_CTRL2_RX_ER_GPIO_CTRL_PRBS_ERR 0x0007
831 #define DP83867_GPIO_MUX_CTRL2_RX_ER_GPIO_CTRL_CONST_0 0x0008
832 #define DP83867_GPIO_MUX_CTRL2_RX_ER_GPIO_CTRL_CONST_1 0x0009
835 #define DP83867_GPIO_MUX_CTRL_GPIO_1_CTRL 0x00F0
836 #define DP83867_GPIO_MUX_CTRL_GPIO_1_CTRL_COL 0x0000
837 #define DP83867_GPIO_MUX_CTRL_GPIO_1_CTRL_1588_TX_SFD 0x0010
838 #define DP83867_GPIO_MUX_CTRL_GPIO_1_CTRL_1588_RX_SFD 0x0020
839 #define DP83867_GPIO_MUX_CTRL_GPIO_1_CTRL_WOL 0x0030
840 #define DP83867_GPIO_MUX_CTRL_GPIO_1_CTRL_ED 0x0040
841 #define DP83867_GPIO_MUX_CTRL_GPIO_1_CTRL_LED_3 0x0060
842 #define DP83867_GPIO_MUX_CTRL_GPIO_1_CTRL_PRBS_ERR 0x0070
843 #define DP83867_GPIO_MUX_CTRL_GPIO_1_CTRL_CONST_0 0x0080
844 #define DP83867_GPIO_MUX_CTRL_GPIO_1_CTRL_CONST_1 0x0090
845 #define DP83867_GPIO_MUX_CTRL_GPIO_0_CTRL 0x000F
846 #define DP83867_GPIO_MUX_CTRL_GPIO_0_CTRL_RX_ER 0x0000
847 #define DP83867_GPIO_MUX_CTRL_GPIO_0_CTRL_1588_TX_SFD 0x0001
848 #define DP83867_GPIO_MUX_CTRL_GPIO_0_CTRL_1588_RX_SFD 0x0002
849 #define DP83867_GPIO_MUX_CTRL_GPIO_0_CTRL_WOL 0x0003
850 #define DP83867_GPIO_MUX_CTRL_GPIO_0_CTRL_ED 0x0004
851 #define DP83867_GPIO_MUX_CTRL_GPIO_0_CTRL_LED_3 0x0006
852 #define DP83867_GPIO_MUX_CTRL_GPIO_0_CTRL_PRBS_ERR 0x0007
853 #define DP83867_GPIO_MUX_CTRL_GPIO_0_CTRL_CONST_0 0x0008
854 #define DP83867_GPIO_MUX_CTRL_GPIO_0_CTRL_CONST_1 0x0009
857 #define DP83867_TDR_GEN_CFG1_TDR_CH_CD_BYPASS 0x1000
858 #define DP83867_TDR_GEN_CFG1_TDR_CROSS_MODE_DIS 0x0800
859 #define DP83867_TDR_GEN_CFG1_TDR_NLP_CHECK 0x0400
860 #define DP83867_TDR_GEN_CFG1_TDR_AVG_NUM 0x0380
861 #define DP83867_TDR_GEN_CFG1_TDR_SEG_NUM 0x0070
862 #define DP83867_TDR_GEN_CFG1_TDR_CYCLE_TIME 0x000F
865 #define DP83867_TDR_PEAKS_LOC_1_TDR_PEAKS_LOC_A_1 0xFF00
866 #define DP83867_TDR_PEAKS_LOC_1_TDR_PEAKS_LOC_A_0 0x00FF
869 #define DP83867_TDR_PEAKS_LOC_2_TDR_PEAKS_LOC_A_3 0xFF00
870 #define DP83867_TDR_PEAKS_LOC_2_TDR_PEAKS_LOC_A_2 0x00FF
873 #define DP83867_TDR_PEAKS_LOC_3_TDR_PEAKS_LOC_B_0 0xFF00
874 #define DP83867_TDR_PEAKS_LOC_3_TDR_PEAKS_LOC_A_4 0x00FF
877 #define DP83867_TDR_PEAKS_LOC_4_TDR_PEAKS_LOC_B_2 0xFF00
878 #define DP83867_TDR_PEAKS_LOC_4_TDR_PEAKS_LOC_B_1 0x00FF
881 #define DP83867_TDR_PEAKS_LOC_5_TDR_PEAKS_LOC_B_4 0xFF00
882 #define DP83867_TDR_PEAKS_LOC_5_TDR_PEAKS_LOC_B_3 0x00FF
885 #define DP83867_TDR_PEAKS_LOC_6_TDR_PEAKS_LOC_C_1 0xFF00
886 #define DP83867_TDR_PEAKS_LOC_6_TDR_PEAKS_LOC_C_0 0x00FF
889 #define DP83867_TDR_PEAKS_LOC_7_TDR_PEAKS_LOC_C_3 0xFF00
890 #define DP83867_TDR_PEAKS_LOC_7_TDR_PEAKS_LOC_C_2 0x00FF
893 #define DP83867_TDR_PEAKS_LOC_8_TDR_PEAKS_LOC_D_0 0xFF00
894 #define DP83867_TDR_PEAKS_LOC_8_TDR_PEAKS_LOC_C_4 0x00FF
897 #define DP83867_TDR_PEAKS_LOC_9_TDR_PEAKS_LOC_D_2 0xFF00
898 #define DP83867_TDR_PEAKS_LOC_9_TDR_PEAKS_LOC_D_1 0x00FF
901 #define DP83867_TDR_PEAKS_LOC_10_TDR_PEAKS_LOC_D_4 0xFF00
902 #define DP83867_TDR_PEAKS_LOC_10_TDR_PEAKS_LOC_D_3 0x00FF
905 #define DP83867_TDR_PEAKS_AMP_1_TDR_PEAKS_AMP_A_1 0x7F00
906 #define DP83867_TDR_PEAKS_AMP_1_TDR_PEAKS_AMP_A_0 0x007F
909 #define DP83867_TDR_PEAKS_AMP_2_TDR_PEAKS_AMP_A_3 0x7F00
910 #define DP83867_TDR_PEAKS_AMP_2_TDR_PEAKS_AMP_A_2 0x007F
913 #define DP83867_TDR_PEAKS_AMP_3_TDR_PEAKS_AMP_B_0 0x7F00
914 #define DP83867_TDR_PEAKS_AMP_3_TDR_PEAKS_AMP_A_4 0x007F
917 #define DP83867_TDR_PEAKS_AMP_4_TDR_PEAKS_AMP_B_2 0x7F00
918 #define DP83867_TDR_PEAKS_AMP_4_TDR_PEAKS_AMP_B_1 0x007F
921 #define DP83867_TDR_PEAKS_AMP_5_TDR_PEAKS_AMP_B_4 0x7F00
922 #define DP83867_TDR_PEAKS_AMP_5_TDR_PEAKS_AMP_B_3 0x007F
925 #define DP83867_TDR_PEAKS_AMP_6_TDR_PEAKS_AMP_C_1 0x7F00
926 #define DP83867_TDR_PEAKS_AMP_6_TDR_PEAKS_AMP_C_0 0x007F
929 #define DP83867_TDR_PEAKS_AMP_7_TDR_PEAKS_AMP_C_3 0x7F00
930 #define DP83867_TDR_PEAKS_AMP_7_TDR_PEAKS_AMP_C_2 0x007F
933 #define DP83867_TDR_PEAKS_AMP_8_TDR_PEAKS_AMP_D_0 0x7F00
934 #define DP83867_TDR_PEAKS_AMP_8_TDR_PEAKS_AMP_C_4 0x007F
937 #define DP83867_TDR_PEAKS_AMP_9_TDR_PEAKS_AMP_D_2 0x7F00
938 #define DP83867_TDR_PEAKS_AMP_9_TDR_PEAKS_AMP_D_1 0x007F
941 #define DP83867_TDR_PEAKS_AMP_10_TDR_PEAKS_AMP_D_4 0x7F00
942 #define DP83867_TDR_PEAKS_AMP_10_TDR_PEAKS_AMP_D_3 0x007F
945 #define DP83867_PROG_GAIN_UNF_FUNC_MODE 0x0008
946 #define DP83867_PROG_GAIN_SGMII_TX_POL_IN 0x0002
947 #define DP83867_PROG_GAIN_SGMII_RX_POL_IN 0x0001
void dp83867WriteMmdReg(NetInterface *interface, uint8_t devAddr, uint16_t regAddr, uint16_t data)
Write MMD register.
const PhyDriver dp83867PhyDriver
DP83867 Ethernet PHY driver.
uint16_t dp83867ReadMmdReg(NetInterface *interface, uint8_t devAddr, uint16_t regAddr)
Read MMD register.
void dp83867InitHook(NetInterface *interface)
DP83867 custom configuration.
uint16_t dp83867ReadPhyReg(NetInterface *interface, uint8_t address)
Read PHY register.
void dp83867WritePhyReg(NetInterface *interface, uint8_t address, uint16_t data)
Write PHY register.
void dp83867DisableIrq(NetInterface *interface)
Disable interrupts.
void dp83867EnableIrq(NetInterface *interface)
Enable interrupts.
void dp83867EventHandler(NetInterface *interface)
DP83867 event handler.
error_t dp83867Init(NetInterface *interface)
DP83867 PHY transceiver initialization.
Network interface controller abstraction layer.
void dp83867Tick(NetInterface *interface)
DP83867 timer handler.
void dp83867DumpPhyReg(NetInterface *interface)
Dump PHY registers for debugging purpose.