31#ifndef _DP83869_DRIVER_H
32#define _DP83869_DRIVER_H
38#ifndef DP83869_PHY_ADDR
39 #define DP83869_PHY_ADDR 0
40#elif (DP83869_PHY_ADDR < 0 || DP83869_PHY_ADDR > 31)
41 #error DP83869_PHY_ADDR parameter is not valid
45#define DP83869_BMCR 0x00
46#define DP83869_BMSR 0x01
47#define DP83869_PHYIDR1 0x02
48#define DP83869_PHYIDR2 0x03
49#define DP83869_ANAR 0x04
50#define DP83869_ANLPAR 0x05
51#define DP83869_ANER 0x06
52#define DP83869_ANNPTR 0x07
53#define DP83869_ANLNPTR 0x08
54#define DP83869_GEN_CFG1 0x09
55#define DP83869_GEN_STATUS1 0x0A
56#define DP83869_REGCR 0x0D
57#define DP83869_ADDAR 0x0E
58#define DP83869_1KSCR 0x0F
59#define DP83869_PHY_CONTROL 0x10
60#define DP83869_PHY_STATUS 0x11
61#define DP83869_INTERRUPT_MASK 0x12
62#define DP83869_INTERRUPT_STATUS 0x13
63#define DP83869_GEN_CFG 0x14
64#define DP83869_RX_ERR_CNT 0x15
65#define DP83869_BIST_CONTROL 0x16
66#define DP83869_GEN_STATUS2 0x17
67#define DP83869_LEDS_CFG1 0x18
68#define DP83869_LEDS_CFG2 0x19
69#define DP83869_LEDS_CFG3 0x1A
70#define DP83869_GEN_CFG4 0x1E
71#define DP83869_GEN_CTRL 0x1F
74#define DP83869_ANALOG_TEST_CTR 0x1F, 0x0025
75#define DP83869_GEN_CFG_ENH_AMIX 0x1F, 0x002C
76#define DP83869_GEN_CFG_FLD 0x1F, 0x002D
77#define DP83869_GEN_CFG_FLD_THR 0x1F, 0x002E
78#define DP83869_GEN_CFG3 0x1F, 0x0031
79#define DP83869_RGMII_CTRL 0x1F, 0x0032
80#define DP83869_RGMII_CTRL2 0x1F, 0x0033
81#define DP83869_SGMII_AUTO_NEG_STATUS 0x1F, 0x0037
82#define DP83869_PRBS_TX_CHK_CTRL 0x1F, 0x0039
83#define DP83869_PRBS_TX_CHK_BYTE_CNT 0x1F, 0x003A
84#define DP83869_G_100BT_REG0 0x1F, 0x0043
85#define DP83869_SERDES_SYNC_STS 0x1F, 0x004F
86#define DP83869_STRAP_STS 0x1F, 0x006E
87#define DP83869_ANA_RGMII_DLL_CTRL 0x1F, 0x0086
88#define DP83869_RXF_CFG 0x1F, 0x0134
89#define DP83869_RXF_STATUS 0x1F, 0x0135
90#define DP83869_IO_MUX_CFG 0x1F, 0x0170
91#define DP83869_TDR_GEN_CFG1 0x1F, 0x0180
92#define DP83869_TDR_GEN_CFG2 0x1F, 0x0181
93#define DP83869_TDR_SEG_DURATION 0x1F, 0x0182
94#define DP83869_TDR_SEG_DURATION2 0x1F, 0x0183
95#define DP83869_TDR_GEN_CFG3 0x1F, 0x0184
96#define DP83869_TDR_GEN_CFG4 0x1F, 0x0185
97#define DP83869_TDR_PEAKS_LOC_A_0_1 0x1F, 0x0190
98#define DP83869_TDR_PEAKS_LOC_A_2_3 0x1F, 0x0191
99#define DP83869_TDR_PEAKS_LOC_A_4_B_0 0x1F, 0x0192
100#define DP83869_TDR_PEAKS_LOC_B_1_2 0x1F, 0x0193
101#define DP83869_TDR_PEAKS_LOC_B_3_4 0x1F, 0x0194
102#define DP83869_TDR_PEAKS_LOC_C_0_1 0x1F, 0x0195
103#define DP83869_TDR_PEAKS_LOC_C_2_3 0x1F, 0x0196
104#define DP83869_TDR_PEAKS_LOC_C_4_D_0 0x1F, 0x0197
105#define DP83869_TDR_PEAKS_LOC_D_1_2 0x1F, 0x0198
106#define DP83869_TDR_PEAKS_LOC_D_3_4 0x1F, 0x0199
107#define DP83869_TDR_GEN_STATUS 0x1F, 0x01A4
108#define DP83869_TDR_PEAKS_SIGN_A_B 0x1F, 0x01A5
109#define DP83869_TDR_PEAKS_SIGN_C_D 0x1F, 0x01A6
110#define DP83869_OP_MODE_DECODE 0x1F, 0x01DF
111#define DP83869_GPIO_MUX_CTRL 0x1F, 0x01E0
112#define DP83869_FX_CTRL 0x1F, 0x0C00
113#define DP83869_FX_STS 0x1F, 0x0C01
114#define DP83869_FX_PHYID1 0x1F, 0x0C02
115#define DP83869_FX_PHYID2 0x1F, 0x0C03
116#define DP83869_FX_ANADV 0x1F, 0x0C04
117#define DP83869_FX_LPABL 0x1F, 0x0C05
118#define DP83869_FX_ANEXP 0x1F, 0x0C06
119#define DP83869_FX_LOCNP 0x1F, 0x0C07
120#define DP83869_FX_LPNP 0x1F, 0x0C08
121#define DP83869_FX_INT_EN 0x1F, 0x0C18
122#define DP83869_FX_INT_STS 0x1F, 0x0C19
125#define DP83869_BMCR_RESET 0x8000
126#define DP83869_BMCR_MII_LOOPBACK 0x4000
127#define DP83869_BMCR_SPEED_SEL_LSB 0x2000
128#define DP83869_BMCR_AUTONEG_EN 0x1000
129#define DP83869_BMCR_PWD_DWN 0x0800
130#define DP83869_BMCR_ISOLATE 0x0400
131#define DP83869_BMCR_RSTRT_AUTONEG 0x0200
132#define DP83869_BMCR_DUPLEX_EN 0x0100
133#define DP83869_BMCR_COL_TST 0x0080
134#define DP83869_BMCR_SPEED_SEL_MSB 0x0040
137#define DP83869_BMSR_100M_FDUP 0x4000
138#define DP83869_BMSR_100M_HDUP 0x2000
139#define DP83869_BMSR_10M_FDUP 0x1000
140#define DP83869_BMSR_10M_HDUP 0x0800
141#define DP83869_BMSR_EXT_STS 0x0100
142#define DP83869_BMSR_MF_PREAMBLE_SUP 0x0040
143#define DP83869_BMSR_AUTONEG_COMP 0x0020
144#define DP83869_BMSR_REMOTE_FAULT 0x0010
145#define DP83869_BMSR_AUTONEG_ABL 0x0008
146#define DP83869_BMSR_LINK_STS1 0x0004
147#define DP83869_BMSR_JABBER_DTCT 0x0002
148#define DP83869_BMSR_EXT_CAPBLTY 0x0001
151#define DP83869_PHYIDR1_OUI_MSB 0xFFFF
152#define DP83869_PHYIDR1_OUI_MSB_DEFAULT 0x2000
155#define DP83869_PHYIDR2_OUI_LSB 0xFC00
156#define DP83869_PHYIDR2_OUI_LSB_DEFAULT 0xA000
157#define DP83869_PHYIDR2_VNDR_MDL 0x03F0
158#define DP83869_PHYIDR2_VNDR_MDL_DEFAULT 0x00F0
159#define DP83869_PHYIDR2_MDL_REV 0x000F
160#define DP83869_PHYIDR2_MDL_REV_DEFAULT 0x0001
163#define DP83869_ANAR_NEXT_PAGE_1_ADV 0x8000
164#define DP83869_ANAR_REMOTE_FAULT_ADV 0x2000
165#define DP83869_ANAR_ASYMMETRIC_PAUSE_ADV 0x0800
166#define DP83869_ANAR_PAUSE_ADV 0x0400
167#define DP83869_ANAR_G_100BT_4_ADV 0x0200
168#define DP83869_ANAR_G_100BTX_FD_ADV 0x0100
169#define DP83869_ANAR_G_100BTX_HD_ADV 0x0080
170#define DP83869_ANAR_G_10BT_FD_ADV 0x0040
171#define DP83869_ANAR_G_10BT_HD_ADV 0x0020
172#define DP83869_ANAR_SELECTOR_FIELD_ADV 0x001F
173#define DP83869_ANAR_SELECTOR_FIELD_ADV_DEFAULT 0x0001
176#define DP83869_ANLPAR_NEXT_PAGE_1_LP 0x8000
177#define DP83869_ANLPAR_ACKNOWLEDGE_1_LP 0x4000
178#define DP83869_ANLPAR_REMOTE_FAULT_LP 0x2000
179#define DP83869_ANLPAR_ASYMMETRIC_PAUSE_LP 0x0800
180#define DP83869_ANLPAR_PAUSE_LP 0x0400
181#define DP83869_ANLPAR_G_100BT4_LP 0x0200
182#define DP83869_ANLPAR_G_100BTX_FD_LP 0x0100
183#define DP83869_ANLPAR_G_100BTX_HD_LP 0x0080
184#define DP83869_ANLPAR_G_10BT_FD_LP 0x0040
185#define DP83869_ANLPAR_G_10BT_HD_LP 0x0020
186#define DP83869_ANLPAR_SELECTOR_FIELD_LP 0x001F
189#define DP83869_ANER_RX_NEXT_PAGE_LOC_ABLE 0x0040
190#define DP83869_ANER_RX_NEXT_PAGE_STOR_LOC 0x0020
191#define DP83869_ANER_PRLL_TDCT_FAULE 0x0010
192#define DP83869_ANER_LP_NP_ABLE 0x0008
193#define DP83869_ANER_LOCAL_NP_ABLE 0x0004
194#define DP83869_ANER_PAGE_RECEIVED_1 0x0002
195#define DP83869_ANER_LP_AUTONEG_ABLE 0x0001
198#define DP83869_ANNPTR_NEXT_PAGE_2_ADV 0x8000
199#define DP83869_ANNPTR_MESSAGE_PAGE 0x2000
200#define DP83869_ANNPTR_ACKNOWLEDGE2 0x1000
201#define DP83869_ANNPTR_TOGGLE 0x0800
202#define DP83869_ANNPTR_MESSAGE_UNFORMATTED 0x07FF
205#define DP83869_ANLNPTR_NEXT_PAGE_2_LP 0x8000
206#define DP83869_ANLNPTR_ACKNOWLEDGE_2_LP 0x4000
207#define DP83869_ANLNPTR_MESSAGE_PAGE_LP 0x2000
208#define DP83869_ANLNPTR_ACKNOWLEDGE2_LP 0x1000
209#define DP83869_ANLNPTR_TOGGLE_LP 0x0800
210#define DP83869_ANLNPTR_MESSAGE_UNFORMATTED_LP 0x07FF
213#define DP83869_GEN_CFG1_TEST_MODE 0xE000
214#define DP83869_GEN_CFG1_MASTER_SLAVE_MAN_CFG_EN 0x1000
215#define DP83869_GEN_CFG1_MASTER_SLAVE_MAN_CFG_VAL 0x0800
216#define DP83869_GEN_CFG1_PORT_TYPE 0x0400
217#define DP83869_GEN_CFG1_G_1000BT_FD_ADV 0x0200
218#define DP83869_GEN_CFG1_G_1000BT_HD_ADV 0x0100
219#define DP83869_GEN_CFG1_TDR_AUTO_RUN 0x0080
222#define DP83869_GEN_STATUS1_MS_CONFIG_FAULT 0x8000
223#define DP83869_GEN_STATUS1_MS_CONFIG_RES 0x4000
224#define DP83869_GEN_STATUS1_LOC_RCVR_STATUS_1 0x2000
225#define DP83869_GEN_STATUS1_REM_RCVR_STATUS 0x1000
226#define DP83869_GEN_STATUS1_LP_1000BT_FD_ABILITY 0x0800
227#define DP83869_GEN_STATUS1_LP_1000BT_HD_ABILITY 0x0400
228#define DP83869_GEN_STATUS1_IDLE_ERR_COUNT 0x00FF
231#define DP83869_REGCR_FUNC 0xC000
232#define DP83869_REGCR_FUNC_ADDR 0x0000
233#define DP83869_REGCR_FUNC_DATA_NO_POST_INC 0x4000
234#define DP83869_REGCR_FUNC_DATA_POST_INC_RW 0x8000
235#define DP83869_REGCR_FUNC_DATA_POST_INC_W 0xC000
236#define DP83869_REGCR_DEVAD 0x001F
239#define DP83869_1KSCR_G_1000BX_FD 0x8000
240#define DP83869_1KSCR_G_1000BX_HD 0x4000
241#define DP83869_1KSCR_G_1000BT_FD 0x2000
242#define DP83869_1KSCR_G_1000BT_HD 0x1000
245#define DP83869_PHY_CONTROL_TX_FIFO_DEPTH 0xC000
246#define DP83869_PHY_CONTROL_RX_FIFO_DEPTH 0x3000
247#define DP83869_PHY_CONTROL_FORCE_LINK_GOOD 0x0400
248#define DP83869_PHY_CONTROL_POWER_SAVE_MODE 0x0300
249#define DP83869_PHY_CONTROL_MDI_CROSSOVER_MODE 0x0060
250#define DP83869_PHY_CONTROL_DISABLE_CLK_125 0x0010
251#define DP83869_PHY_CONTROL_LINE_DRIVER_INV_EN 0x0002
252#define DP83869_PHY_CONTROL_DISABLE_JABBER 0x0001
255#define DP83869_PHY_STATUS_SPEED_SEL 0xC000
256#define DP83869_PHY_STATUS_SPEED_SEL_10MBPS 0x0000
257#define DP83869_PHY_STATUS_SPEED_SEL_100MBPS 0x4000
258#define DP83869_PHY_STATUS_SPEED_SEL_1000MBPS 0x8000
259#define DP83869_PHY_STATUS_DUPLEX_MODE_ENV 0x2000
260#define DP83869_PHY_STATUS_PAGE_RECEIVED_2 0x1000
261#define DP83869_PHY_STATUS_SPEED_DUPLEX_RESOLVED 0x0800
262#define DP83869_PHY_STATUS_LINK_STATUS_2 0x0400
263#define DP83869_PHY_STATUS_MDI_X_MODE_CD_1 0x0200
264#define DP83869_PHY_STATUS_MDI_X_MODE_AB_1 0x0100
265#define DP83869_PHY_STATUS_SPEED_OPT_STATUS 0x0080
266#define DP83869_PHY_STATUS_SLEEP_MODE 0x0040
267#define DP83869_PHY_STATUS_WIRE_CROSS 0x003C
268#define DP83869_PHY_STATUS_DATA_POLARITY 0x0002
269#define DP83869_PHY_STATUS_JABBER_DTCT_2 0x0001
272#define DP83869_INTERRUPT_MASK_AUTONEG_ERR_INT_EN 0x8000
273#define DP83869_INTERRUPT_MASK_SPEED_CHNG_INT_EN 0x4000
274#define DP83869_INTERRUPT_MASK_DUPLEX_MODE_CHNG_INT_EN 0x2000
275#define DP83869_INTERRUPT_MASK_PAGE_RECEIVED_INT_EN 0x1000
276#define DP83869_INTERRUPT_MASK_AUTONEG_COMP_INT_EN 0x0800
277#define DP83869_INTERRUPT_MASK_LINK_STATUS_CHNG_INT_EN 0x0400
278#define DP83869_INTERRUPT_MASK_EEE_ERR_INT_EN 0x0200
279#define DP83869_INTERRUPT_MASK_FALSE_CARRIER_INT_EN 0x0100
280#define DP83869_INTERRUPT_MASK_ADC_FIFO_OVF_UNF_INT_EN 0x0080
281#define DP83869_INTERRUPT_MASK_MDI_CROSSOVER_CHNG_INT_EN 0x0040
282#define DP83869_INTERRUPT_MASK_SPEED_OPT_EVENT_INT_EN 0x0020
283#define DP83869_INTERRUPT_MASK_SLEEP_MODE_CHNG_INT_EN 0x0010
284#define DP83869_INTERRUPT_MASK_WOL_INT_EN 0x0008
285#define DP83869_INTERRUPT_MASK_XGMII_ERR_INT_EN 0x0004
286#define DP83869_INTERRUPT_MASK_POLARITY_CHNG_INT_EN 0x0002
287#define DP83869_INTERRUPT_MASK_JABBER_INT_EN 0x0001
290#define DP83869_INTERRUPT_STATUS_AUTONEG_ERR 0x8000
291#define DP83869_INTERRUPT_STATUS_SPEED_CHNG 0x4000
292#define DP83869_INTERRUPT_STATUS_DUPLEX_MODE_CHNG 0x2000
293#define DP83869_INTERRUPT_STATUS_PAGE_RECEIVED 0x1000
294#define DP83869_INTERRUPT_STATUS_AUTONEG_COMP 0x0800
295#define DP83869_INTERRUPT_STATUS_LINK_STATUS_CHNG 0x0400
296#define DP83869_INTERRUPT_STATUS_EEE_ERR_STATUS 0x0200
297#define DP83869_INTERRUPT_STATUS_FALSE_CARRIER 0x0100
298#define DP83869_INTERRUPT_STATUS_ADC_FIFO_OVF_UNF 0x0080
299#define DP83869_INTERRUPT_STATUS_MDI_CROSSOVER_CHNG 0x0040
300#define DP83869_INTERRUPT_STATUS_SPEED_OPT_EVENT 0x0020
301#define DP83869_INTERRUPT_STATUS_SLEEP_MODE_CHNG 0x0010
302#define DP83869_INTERRUPT_STATUS_WOL 0x0008
303#define DP83869_INTERRUPT_STATUS_XGMII_ERR 0x0004
304#define DP83869_INTERRUPT_STATUS_POLARITY_CHNG 0x0002
305#define DP83869_INTERRUPT_STATUS_JABBER 0x0001
308#define DP83869_GEN_CFG_PD_DETECT_EN 0x8000
309#define DP83869_GEN_CFG_SGMII_TX_ERR_DIS 0x4000
310#define DP83869_GEN_CFG_INTERRUPT_POLARITY 0x2000
311#define DP83869_GEN_CFG_SGMII_SOFT_RESET 0x1000
312#define DP83869_GEN_CFG_SPEED_OPT_ATTEMPT_CNT 0x0C00
313#define DP83869_GEN_CFG_SPEED_OPT_EN 0x0200
314#define DP83869_GEN_CFG_SPEED_OPT_ENHANCED_EN 0x0100
315#define DP83869_GEN_CFG_SGMII_AUTONEG_EN 0x0080
316#define DP83869_GEN_CFG_SPEED_OPT_10M_EN 0x0040
317#define DP83869_GEN_CFG_MII_CLK_CFG 0x0030
318#define DP83869_GEN_CFG_COL_FD_EN 0x0008
319#define DP83869_GEN_CFG_LEGACY_CODING_TXMODE_EN 0x0004
320#define DP83869_GEN_CFG_MASTER_SEMI_CROSS_EN 0x0002
321#define DP83869_GEN_CFG_SLAVE_SEMI_CROSS_EN 0x0001
324#define DP83869_RX_ERR_CNT_RX_ERROR_COUNT 0xFFFF
327#define DP83869_BIST_CONTROL_PACKET_GEN_EN_3_0 0xF000
328#define DP83869_BIST_CONTROL_REV_LOOP_RX_DATA_CTRL 0x0080
329#define DP83869_BIST_CONTROL_MII_LOOP_TX_DATA_CTRL 0x0040
330#define DP83869_BIST_CONTROL_LOOP_TX_DATA_MIX 0x003C
331#define DP83869_BIST_CONTROL_LOOPBACK_MODE 0x0003
332#define DP83869_BIST_CONTROL_LOOPBACK_MODE_BEFORE_SCRAMBLER 0x0001
333#define DP83869_BIST_CONTROL_LOOPBACK_MODE_AFTER_SCRAMBLER 0x0002
334#define DP83869_BIST_CONTROL_LOOPBACK_MODE_AFTER_MLT3_ENCODER 0x0003
337#define DP83869_GEN_STATUS2_PD_PASS 0x8000
338#define DP83869_GEN_STATUS2_PD_PULSE_DET_ZERO 0x4000
339#define DP83869_GEN_STATUS2_PD_FAIL_WD 0x2000
340#define DP83869_GEN_STATUS2_PD_FAIL_NON_PD 0x1000
341#define DP83869_GEN_STATUS2_PRBS_LOCK 0x0800
342#define DP83869_GEN_STATUS2_PRBS_SYNC_LOSS 0x0400
343#define DP83869_GEN_STATUS2_PKT_GEN_BUSY 0x0200
344#define DP83869_GEN_STATUS2_SCR_MODE_MASTER_1G 0x0100
345#define DP83869_GEN_STATUS2_SCR_MODE_SLAVE_1G 0x0080
346#define DP83869_GEN_STATUS2_CORE_PWR_MODE 0x0040
349#define DP83869_LEDS_CFG1_LED_GPIO_SEL 0xF000
350#define DP83869_LEDS_CFG1_LED_GPIO_SEL_LINK 0x0000
351#define DP83869_LEDS_CFG1_LED_GPIO_SEL_ACT 0x1000
352#define DP83869_LEDS_CFG1_LED_GPIO_SEL_TX_ACT 0x2000
353#define DP83869_LEDS_CFG1_LED_GPIO_SEL_RX_ACT 0x3000
354#define DP83869_LEDS_CFG1_LED_GPIO_SEL_COL 0x4000
355#define DP83869_LEDS_CFG1_LED_GPIO_SEL_1000 0x5000
356#define DP83869_LEDS_CFG1_LED_GPIO_SEL_100 0x6000
357#define DP83869_LEDS_CFG1_LED_GPIO_SEL_10 0x7000
358#define DP83869_LEDS_CFG1_LED_GPIO_SEL_10_100 0x8000
359#define DP83869_LEDS_CFG1_LED_GPIO_SEL_100_1000 0x9000
360#define DP83869_LEDS_CFG1_LED_GPIO_SEL_FD 0xA000
361#define DP83869_LEDS_CFG1_LED_GPIO_SEL_LINK_ACT 0xB000
362#define DP83869_LEDS_CFG1_LED_GPIO_SEL_ERR 0xD000
363#define DP83869_LEDS_CFG1_LED_GPIO_SEL_RX_ERR 0xE000
364#define DP83869_LEDS_CFG1_LED_2_SEL 0x1F00
365#define DP83869_LEDS_CFG1_LED_2_SEL_LINK 0x0000
366#define DP83869_LEDS_CFG1_LED_2_SEL_ACT 0x0100
367#define DP83869_LEDS_CFG1_LED_2_SEL_TX_ACT 0x0200
368#define DP83869_LEDS_CFG1_LED_2_SEL_RX_ACT 0x0300
369#define DP83869_LEDS_CFG1_LED_2_SEL_COL 0x0400
370#define DP83869_LEDS_CFG1_LED_2_SEL_1000 0x0500
371#define DP83869_LEDS_CFG1_LED_2_SEL_100 0x0600
372#define DP83869_LEDS_CFG1_LED_2_SEL_10 0x0700
373#define DP83869_LEDS_CFG1_LED_2_SEL_10_100 0x0800
374#define DP83869_LEDS_CFG1_LED_2_SEL_100_1000 0x0900
375#define DP83869_LEDS_CFG1_LED_2_SEL_FD 0x0A00
376#define DP83869_LEDS_CFG1_LED_2_SEL_LINK_ACT 0x0B00
377#define DP83869_LEDS_CFG1_LED_2_SEL_ERR 0x0D00
378#define DP83869_LEDS_CFG1_LED_2_SEL_RX_ERR 0x0E00
379#define DP83869_LEDS_CFG1_LED_1_SEL 0x00F0
380#define DP83869_LEDS_CFG1_LED_1_SEL_LINK 0x0000
381#define DP83869_LEDS_CFG1_LED_1_SEL_ACT 0x0010
382#define DP83869_LEDS_CFG1_LED_1_SEL_TX_ACT 0x0020
383#define DP83869_LEDS_CFG1_LED_1_SEL_RX_ACT 0x0030
384#define DP83869_LEDS_CFG1_LED_1_SEL_COL 0x0040
385#define DP83869_LEDS_CFG1_LED_1_SEL_1000 0x0050
386#define DP83869_LEDS_CFG1_LED_1_SEL_100 0x0060
387#define DP83869_LEDS_CFG1_LED_1_SEL_10 0x0070
388#define DP83869_LEDS_CFG1_LED_1_SEL_10_100 0x0080
389#define DP83869_LEDS_CFG1_LED_1_SEL_100_1000 0x0090
390#define DP83869_LEDS_CFG1_LED_1_SEL_FD 0x00A0
391#define DP83869_LEDS_CFG1_LED_1_SEL_LINK_ACT 0x00B0
392#define DP83869_LEDS_CFG1_LED_1_SEL_ERR 0x00D0
393#define DP83869_LEDS_CFG1_LED_1_SEL_RX_ERR 0x00E0
394#define DP83869_LEDS_CFG1_LED_0_SEL 0x000F
395#define DP83869_LEDS_CFG1_LED_0_SEL_LINK 0x0000
396#define DP83869_LEDS_CFG1_LED_0_SEL_ACT 0x0001
397#define DP83869_LEDS_CFG1_LED_0_SEL_TX_ACT 0x0002
398#define DP83869_LEDS_CFG1_LED_0_SEL_RX_ACT 0x0003
399#define DP83869_LEDS_CFG1_LED_0_SEL_COL 0x0004
400#define DP83869_LEDS_CFG1_LED_0_SEL_1000 0x0005
401#define DP83869_LEDS_CFG1_LED_0_SEL_100 0x0006
402#define DP83869_LEDS_CFG1_LED_0_SEL_10 0x0007
403#define DP83869_LEDS_CFG1_LED_0_SEL_10_100 0x0008
404#define DP83869_LEDS_CFG1_LED_0_SEL_100_1000 0x0009
405#define DP83869_LEDS_CFG1_LED_0_SEL_FD 0x000A
406#define DP83869_LEDS_CFG1_LED_0_SEL_LINK_ACT 0x000B
407#define DP83869_LEDS_CFG1_LED_0_SEL_ERR 0x000D
408#define DP83869_LEDS_CFG1_LED_0_SEL_RX_ERR 0x000E
411#define DP83869_LEDS_CFG2_LED_GPIO_POLARITY 0x4000
412#define DP83869_LEDS_CFG2_LED_GPIO_DRV_VAL 0x2000
413#define DP83869_LEDS_CFG2_LED_GPIO_DRV_EN 0x1000
414#define DP83869_LEDS_CFG2_LED_2_POLARITY 0x0400
415#define DP83869_LEDS_CFG2_LED_2_DRV_VAL 0x0200
416#define DP83869_LEDS_CFG2_LED_2_DRV_EN 0x0100
417#define DP83869_LEDS_CFG2_LED_1_POLARITY 0x0040
418#define DP83869_LEDS_CFG2_LED_1_DRV_VAL 0x0020
419#define DP83869_LEDS_CFG2_LED_1_DRV_EN 0x0010
420#define DP83869_LEDS_CFG2_LED_0_POLARITY 0x0004
421#define DP83869_LEDS_CFG2_LED_0_DRV_VAL 0x0002
422#define DP83869_LEDS_CFG2_LED_0_DRV_EN 0x0001
425#define DP83869_LEDS_CFG3_LEDS_BYPASS_STRETCHING 0x0004
426#define DP83869_LEDS_CFG3_LEDS_BLINK_RATE 0x0003
427#define DP83869_LEDS_CFG3_LEDS_BLINK_RATE_20HZ 0x0000
428#define DP83869_LEDS_CFG3_LEDS_BLINK_RATE_10HZ 0x0001
429#define DP83869_LEDS_CFG3_LEDS_BLINK_RATE_5HZ 0x0002
430#define DP83869_LEDS_CFG3_LEDS_BLINK_RATE_2HZ 0x0003
433#define DP83869_GEN_CFG4_CFG_FAST_ANEG_EN 0x4000
434#define DP83869_GEN_CFG4_CFG_FAST_ANEG_SEL_VAL 0x3000
435#define DP83869_GEN_CFG4_CFG_ANEG_ADV_FD_EN 0x0800
436#define DP83869_GEN_CFG4_RESTART_STATUS_BITS_EN 0x0400
437#define DP83869_GEN_CFG4_CFG_ROBUST_AMDIX_EN 0x0200
438#define DP83869_GEN_CFG4_CFG_FAST_AMDIX_EN 0x0100
439#define DP83869_GEN_CFG4_INT_OE 0x0080
440#define DP83869_GEN_CFG4_FORCE_INTERRUPT 0x0040
441#define DP83869_GEN_CFG4_FORCE_1G_AUTONEG_EN 0x0008
442#define DP83869_GEN_CFG4_TDR_FAIL 0x0004
443#define DP83869_GEN_CFG4_TDR_DONE 0x0002
444#define DP83869_GEN_CFG4_TDR_START 0x0001
447#define DP83869_GEN_CTRL_SW_RESET 0x8000
448#define DP83869_GEN_CTRL_SW_RESTART 0x4000
451#define DP83869_ANALOG_TEST_CTR_TM7_PULSE_SEL 0x0C00
452#define DP83869_ANALOG_TEST_CTR_EXTND_TM7_100BT_MSB 0x0200
453#define DP83869_ANALOG_TEST_CTR_EXTND_TM7_100BT_EN 0x0100
454#define DP83869_ANALOG_TEST_CTR_TM_CH_SEL 0x00E0
455#define DP83869_ANALOG_TEST_CTR_ANALOG_TEST 0x001F
458#define DP83869_GEN_CFG_ENH_AMIX_CFG_FLD_WINDW_CNT 0x3E00
459#define DP83869_GEN_CFG_ENH_AMIX_CFG_FAST_AMDIX_VAL 0x01F0
460#define DP83869_GEN_CFG_ENH_AMIX_CFG_ROBUST_AMDIX_VAL 0x000F
463#define DP83869_GEN_CFG_FLD_CFG_FORCE_DROP_LINK_EN 0x8000
464#define DP83869_GEN_CFG_FLD_FLD_BYPASS_MAX_WAIT_TIMER 0x4000
465#define DP83869_GEN_CFG_FLD_SLICER_OUT_STUCK 0x2000
466#define DP83869_GEN_CFG_FLD_FLD_STATUS 0x1F00
467#define DP83869_GEN_CFG_FLD_CFG_FAST_LINK_DOWN_MODES 0x001F
470#define DP83869_GEN_CFG_FLD_THR_ENERGY_WINDOW_LEN_FLD 0x0700
471#define DP83869_GEN_CFG_FLD_THR_ENERGY_ON_FLD_THR 0x0070
472#define DP83869_GEN_CFG_FLD_THR_ENERGY_LOST_FLD_THR 0x0007
475#define DP83869_GEN_CFG3_SGMII_AUTONEG_TIMER 0x0060
476#define DP83869_GEN_CFG3_PORT_MIRRORING_MODE 0x0001
479#define DP83869_RGMII_CTRL_RGMII_RX_HALF_FULL_THR 0x0060
480#define DP83869_RGMII_CTRL_RGMII_TX_HALF_FULL_THR 0x0018
481#define DP83869_RGMII_CTRL_SUPPRESS_TX_ERR_EN 0x0004
482#define DP83869_RGMII_CTRL_RGMII_TX_CLK_DELAY 0x0002
483#define DP83869_RGMII_CTRL_RGMII_RX_CLK_DELAY 0x0001
486#define DP83869_RGMII_CTRL2_RGMII_AF_BYPASS_EN 0x0010
487#define DP83869_RGMII_CTRL2_RGMII_AF_BYPASS_DLY_EN 0x0008
488#define DP83869_RGMII_CTRL2_LOW_LATENCY_10_100_EN 0x0004
491#define DP83869_SGMII_AUTO_NEG_STATUS_SGMII_PAGE_RX 0x0002
492#define DP83869_SGMII_AUTO_NEG_STATUS_SGMII_AUTONEG_COMPLETE 0x0001
495#define DP83869_PRBS_TX_CHK_CTRL_PRBS_TX_CHK_ERR_CNT 0x7F80
496#define DP83869_PRBS_TX_CHK_CTRL_PRBS_TX_CHK_SYNC_LOSS 0x0020
497#define DP83869_PRBS_TX_CHK_CTRL_PRBS_TX_CHK_LOCK_STS 0x0010
498#define DP83869_PRBS_TX_CHK_CTRL_PRBS_TX_CHK_BYTE_CNT_OVF 0x0004
499#define DP83869_PRBS_TX_CHK_CTRL_PRBS_TX_CHK_CNT_MODE 0x0002
500#define DP83869_PRBS_TX_CHK_CTRL_PRBS_TX_CHK_EN 0x0001
503#define DP83869_PRBS_TX_CHK_BYTE_CNT_PRBS_TX_CHK_BYTE_CNT 0xFFFF
506#define DP83869_G_100BT_REG0_FAST_RX_DV 0x0001
509#define DP83869_SERDES_SYNC_STS_SYNC_STATUS 0x0100
512#define DP83869_STRAP_STS_STRAP_LINK_LOSS_PASS_THRU 0x2000
513#define DP83869_STRAP_STS_STRAP_MIRROR_EN 0x1000
514#define DP83869_STRAP_STS_STRAP_OPMODE 0x0E00
515#define DP83869_STRAP_STS_STRAP_PHY_ADD 0x01F0
516#define DP83869_STRAP_STS_STRAP_ANEGSEL 0x000C
517#define DP83869_STRAP_STS_STRAP_ANEG_EN 0x0002
518#define DP83869_STRAP_STS_STRAP_RGMII_MII_SEL 0x0001
521#define DP83869_ANA_RGMII_DLL_CTRL_DLL_EN_FORCE_VAL 0x0200
522#define DP83869_ANA_RGMII_DLL_CTRL_DLL_EN_FORCE_CTRL 0x0100
523#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL 0x00F0
524#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_0_25NS 0x0000
525#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_0_50NS 0x0010
526#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_0_75NS 0x0020
527#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_1_00NS 0x0030
528#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_1_25NS 0x0040
529#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_1_50NS 0x0050
530#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_1_75NS 0x0060
531#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_2_00NS 0x0070
532#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_2_25NS 0x0080
533#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_2_50NS 0x0090
534#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_2_75NS 0x00A0
535#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_3_00NS 0x00B0
536#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_3_25NS 0x00C0
537#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_3_50NS 0x00D0
538#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_3_75NS 0x00E0
539#define DP83869_ANA_RGMII_DLL_CTRL_DLL_TX_DELAY_CTRL_SL_4_00NS 0x00F0
540#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL 0x000F
541#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_0_25NS 0x0000
542#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_0_50NS 0x0001
543#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_0_75NS 0x0002
544#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_1_00NS 0x0003
545#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_1_25NS 0x0004
546#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_1_50NS 0x0005
547#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_1_75NS 0x0006
548#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_2_00NS 0x0007
549#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_2_25NS 0x0008
550#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_2_50NS 0x0009
551#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_2_75NS 0x000A
552#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_3_00NS 0x000B
553#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_3_25NS 0x000C
554#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_3_50NS 0x000D
555#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_3_75NS 0x000E
556#define DP83869_ANA_RGMII_DLL_CTRL_DLL_RX_DELAY_CTRL_SL_4_00NS 0x000F
559#define DP83869_RXF_CFG_WOL_OUT_CLEAN 0x0800
560#define DP83869_RXF_CFG_WOL_OUT_STRETCH 0x0600
561#define DP83869_RXF_CFG_WOL_OUT_MODE 0x0100
562#define DP83869_RXF_CFG_ENHANCED_MAC_SUPPORT 0x0080
563#define DP83869_RXF_CFG_WAKE_ON_UCAST 0x0010
564#define DP83869_RXF_CFG_WAKE_ON_BCAST 0x0004
565#define DP83869_RXF_CFG_WAKE_ON_PATTERN 0x0002
566#define DP83869_RXF_CFG_WAKE_ON_MAGIC 0x0001
569#define DP83869_RXF_STATUS_SFD_ERR 0x0080
570#define DP83869_RXF_STATUS_BAD_CRC 0x0040
571#define DP83869_RXF_STATUS_UCAST_RCVD 0x0010
572#define DP83869_RXF_STATUS_BCAST_RCVD 0x0004
573#define DP83869_RXF_STATUS_PATTERN_RCVD 0x0002
574#define DP83869_RXF_STATUS_MAGIC_RCVD 0x0001
577#define DP83869_IO_MUX_CFG_CLK_O_SEL 0x1F00
578#define DP83869_IO_MUX_CFG_CLK_O_DISABLE 0x0040
579#define DP83869_IO_MUX_CFG_IO_IMPEDANCE_CTRL 0x001F
582#define DP83869_TDR_GEN_CFG1_TDR_CH_CD_BYPASS 0x1000
583#define DP83869_TDR_GEN_CFG1_TDR_CROSS_MODE_DIS 0x0800
584#define DP83869_TDR_GEN_CFG1_TDR_NLP_CHECK 0x0400
585#define DP83869_TDR_GEN_CFG1_TDR_AVG_NUM 0x0380
586#define DP83869_TDR_GEN_CFG1_TDR_SEG_NUM 0x0070
587#define DP83869_TDR_GEN_CFG1_TDR_CYCLE_TIME 0x000F
590#define DP83869_TDR_GEN_CFG2_TDR_SILENCE_TH 0xFF00
591#define DP83869_TDR_GEN_CFG2_TDR_POST_SILENCE_TIME 0x00C0
592#define DP83869_TDR_GEN_CFG2_TDR_PRE_SILENCE_TIME 0x0030
595#define DP83869_TDR_SEG_DURATION_TDR_SEG_DURATION_SEG3 0x7C00
596#define DP83869_TDR_SEG_DURATION_TDR_SEG_DURATION_SEG2 0x03E0
597#define DP83869_TDR_SEG_DURATION_TDR_SEG_DURATION_SEG1 0x001F
600#define DP83869_TDR_SEG_DURATION2_TDR_SEG_DURATION_SEG5 0xFF00
601#define DP83869_TDR_SEG_DURATION2_TDR_SEG_DURATION_SEG4 0x003F
604#define DP83869_TDR_GEN_CFG3_TDR_FWD_SHADOW_SEG4 0xF000
605#define DP83869_TDR_GEN_CFG3_TDR_FWD_SHADOW_SEG3 0x0F00
606#define DP83869_TDR_GEN_CFG3_TDR_FWD_SHADOW_SEG2 0x0070
607#define DP83869_TDR_GEN_CFG3_TDR_FWD_SHADOW_SEG1 0x0007
610#define DP83869_TDR_GEN_CFG4_TDR_SDW_AVG_LOC 0x3800
611#define DP83869_TDR_GEN_CFG4_TDR_TX_TYPE_SEG5 0x0100
612#define DP83869_TDR_GEN_CFG4_TDR_TX_TYPE_SEG4 0x0080
613#define DP83869_TDR_GEN_CFG4_TDR_TX_TYPE_SEG3 0x0040
614#define DP83869_TDR_GEN_CFG4_TDR_TX_TYPE_SEG2 0x0020
615#define DP83869_TDR_GEN_CFG4_TDR_TX_TYPE_SEG1 0x0010
616#define DP83869_TDR_GEN_CFG4_TDR_FWD_SHADOW_SEG5 0x000F
619#define DP83869_TDR_PEAKS_LOC_A_0_1_TDR_PEAKS_LOC_A_1 0xFF00
620#define DP83869_TDR_PEAKS_LOC_A_0_1_TDR_PEAKS_LOC_A_0 0x00FF
623#define DP83869_TDR_PEAKS_LOC_A_2_3_TDR_PEAKS_LOC_A_3 0xFF00
624#define DP83869_TDR_PEAKS_LOC_A_2_3_TDR_PEAKS_LOC_A_2 0x00FF
627#define DP83869_TDR_PEAKS_LOC_A_4_B_0_TDR_PEAKS_LOC_B_0 0xFF00
628#define DP83869_TDR_PEAKS_LOC_A_4_B_0_TDR_PEAKS_LOC_A_4 0x00FF
631#define DP83869_TDR_PEAKS_LOC_B_1_2_TDR_PEAKS_LOC_B_2 0xFF00
632#define DP83869_TDR_PEAKS_LOC_B_1_2_TDR_PEAKS_LOC_B_1 0x00FF
635#define DP83869_TDR_PEAKS_LOC_B_3_4_TDR_PEAKS_LOC_B_4 0xFF00
636#define DP83869_TDR_PEAKS_LOC_B_3_4_TDR_PEAKS_LOC_B_3 0x00FF
639#define DP83869_TDR_PEAKS_LOC_C_0_1_TDR_PEAKS_LOC_C_1 0xFF00
640#define DP83869_TDR_PEAKS_LOC_C_0_1_TDR_PEAKS_LOC_C_0 0x00FF
643#define DP83869_TDR_PEAKS_LOC_C_2_3_TDR_PEAKS_LOC_C_3 0xFF00
644#define DP83869_TDR_PEAKS_LOC_C_2_3_TDR_PEAKS_LOC_C_2 0x00FF
647#define DP83869_TDR_PEAKS_LOC_C_4_D_0_TDR_PEAKS_LOC_D_0 0xFF00
648#define DP83869_TDR_PEAKS_LOC_C_4_D_0_TDR_PEAKS_LOC_C_4 0x00FF
651#define DP83869_TDR_PEAKS_LOC_D_1_2_TDR_PEAKS_LOC_D_2 0xFF00
652#define DP83869_TDR_PEAKS_LOC_D_1_2_TDR_PEAKS_LOC_D_1 0x00FF
655#define DP83869_TDR_PEAKS_LOC_D_3_4_TDR_PEAKS_LOC_D_4 0xFF00
656#define DP83869_TDR_PEAKS_LOC_D_3_4_TDR_PEAKS_LOC_D_3 0x00FF
659#define DP83869_TDR_GEN_STATUS_TDR_P_LOC_CROSS_MODE_D 0x0800
660#define DP83869_TDR_GEN_STATUS_TDR_P_LOC_CROSS_MODE_C 0x0400
661#define DP83869_TDR_GEN_STATUS_TDR_P_LOC_CROSS_MODE_B 0x0200
662#define DP83869_TDR_GEN_STATUS_TDR_P_LOC_CROSS_MODE_A 0x0100
663#define DP83869_TDR_GEN_STATUS_TDR_P_LOC_OVERFLOW_D 0x0080
664#define DP83869_TDR_GEN_STATUS_TDR_P_LOC_OVERFLOW_C 0x0040
665#define DP83869_TDR_GEN_STATUS_TDR_P_LOC_OVERFLOW_B 0x0020
666#define DP83869_TDR_GEN_STATUS_TDR_P_LOC_OVERFLOW_A 0x0010
667#define DP83869_TDR_GEN_STATUS_TDR_SEG1_HIGH_CROSS_D 0x0008
668#define DP83869_TDR_GEN_STATUS_TDR_SEG1_HIGH_CROSS_C 0x0004
669#define DP83869_TDR_GEN_STATUS_TDR_SEG1_HIGH_CROSS_B 0x0002
670#define DP83869_TDR_GEN_STATUS_TDR_SEG1_HIGH_CROSS_A 0x0001
673#define DP83869_TDR_PEAKS_SIGN_A_B_TDR_PEAKS_SIGN_B_4 0x0200
674#define DP83869_TDR_PEAKS_SIGN_A_B_TDR_PEAKS_SIGN_B_3 0x0100
675#define DP83869_TDR_PEAKS_SIGN_A_B_TDR_PEAKS_SIGN_B_2 0x0080
676#define DP83869_TDR_PEAKS_SIGN_A_B_TDR_PEAKS_SIGN_B_1 0x0040
677#define DP83869_TDR_PEAKS_SIGN_A_B_TDR_PEAKS_SIGN_B_0 0x0020
678#define DP83869_TDR_PEAKS_SIGN_A_B_TDR_PEAKS_SIGN_A_4 0x0010
679#define DP83869_TDR_PEAKS_SIGN_A_B_TDR_PEAKS_SIGN_A_3 0x0008
680#define DP83869_TDR_PEAKS_SIGN_A_B_TDR_PEAKS_SIGN_A_2 0x0004
681#define DP83869_TDR_PEAKS_SIGN_A_B_TDR_PEAKS_SIGN_A_1 0x0002
682#define DP83869_TDR_PEAKS_SIGN_A_B_TDR_PEAKS_SIGN_A_0 0x0001
685#define DP83869_TDR_PEAKS_SIGN_C_D_TDR_PEAKS_SIGN_D_4 0x0200
686#define DP83869_TDR_PEAKS_SIGN_C_D_TDR_PEAKS_SIGN_D_3 0x0100
687#define DP83869_TDR_PEAKS_SIGN_C_D_TDR_PEAKS_SIGN_D_2 0x0080
688#define DP83869_TDR_PEAKS_SIGN_C_D_TDR_PEAKS_SIGN_D_1 0x0040
689#define DP83869_TDR_PEAKS_SIGN_C_D_TDR_PEAKS_SIGN_D_0 0x0020
690#define DP83869_TDR_PEAKS_SIGN_C_D_TDR_PEAKS_SIGN_C_4 0x0010
691#define DP83869_TDR_PEAKS_SIGN_C_D_TDR_PEAKS_SIGN_C_3 0x0008
692#define DP83869_TDR_PEAKS_SIGN_C_D_TDR_PEAKS_SIGN_C_2 0x0004
693#define DP83869_TDR_PEAKS_SIGN_C_D_TDR_PEAKS_SIGN_C_1 0x0002
694#define DP83869_TDR_PEAKS_SIGN_C_D_TDR_PEAKS_SIGN_C_0 0x0001
697#define DP83869_OP_MODE_DECODE_BRIDGE_MODE_RGMII_MAC 0x0040
698#define DP83869_OP_MODE_DECODE_RGMII_MII_SEL 0x0020
699#define DP83869_OP_MODE_DECODE_CFG_OPMODE 0x0007
702#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL 0x00F0
703#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_CLK_OUT 0x0000
704#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_INT 0x0020
705#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_LINK 0x0030
706#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_TX_SFD 0x0050
707#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_RX_SFD 0x0060
708#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_WOL 0x0070
709#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_ED 0x0080
710#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_PRBS_ERR 0x0090
711#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_LED_2 0x00A0
712#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_LED_3 0x00B0
713#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_CRS 0x00C0
714#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_COL 0x00D0
715#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_CONST_0 0x00E0
716#define DP83869_GPIO_MUX_CTRL_JTAG_TDO_GPIO_1_CTRL_CONST_1 0x00F0
717#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL 0x000F
718#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_CLK_OUT 0x0000
719#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_INT 0x0002
720#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_LINK 0x0003
721#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_TX_SFD 0x0005
722#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_RX_SFD 0x0006
723#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_WOL 0x0007
724#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_ED 0x0008
725#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_PRBS_ERR 0x0009
726#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_LED_2 0x000A
727#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_LED_3 0x000B
728#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_CRS 0x000C
729#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_COL 0x000D
730#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_CONST_0 0x000E
731#define DP83869_GPIO_MUX_CTRL_LED_2_GPIO_0_CTRL_CONST_1 0x000F
734#define DP83869_FX_CTRL_CTRL0_RESET 0x8000
735#define DP83869_FX_CTRL_CTRL0_LOOPBACK 0x4000
736#define DP83869_FX_CTRL_CTRL0_SPEED_SEL_LSB 0x2000
737#define DP83869_FX_CTRL_CTRL0_ANEG_EN 0x1000
738#define DP83869_FX_CTRL_CTRL0_PWRDN 0x0800
739#define DP83869_FX_CTRL_CTRL0_ISOLATE 0x0400
740#define DP83869_FX_CTRL_CTRL0_RESTART_AN 0x0200
741#define DP83869_FX_CTRL_CTRL0_DUPLEX_MODE 0x0100
742#define DP83869_FX_CTRL_CTRL0_COL_TEST 0x0080
743#define DP83869_FX_CTRL_CTRL0_SPEED_SEL_MSB 0x0040
746#define DP83869_FX_STS_STTS_100B_T4 0x8000
747#define DP83869_FX_STS_STTS_100B_X_FD 0x4000
748#define DP83869_FX_STS_STTS_100B_X_HD 0x2000
749#define DP83869_FX_STS_STTS_10B_FD 0x1000
750#define DP83869_FX_STS_STTS_10B_HD 0x0800
751#define DP83869_FX_STS_STTS_100B_T2_FD 0x0400
752#define DP83869_FX_STS_STTS_100B_T2_HD 0x0200
753#define DP83869_FX_STS_STTS_EXTENDED_STATUS 0x0100
754#define DP83869_FX_STS_STTS_MF_PREAMBLE_SUPRSN 0x0040
755#define DP83869_FX_STS_STTS_ANEG_COMPLETE 0x0020
756#define DP83869_FX_STS_STTS_REMOTE_FAULT 0x0010
757#define DP83869_FX_STS_STTS_ANEG_ABILITY 0x0008
758#define DP83869_FX_STS_STTS_LINK_STATUS 0x0004
759#define DP83869_FX_STS_STTS_JABBER_DET 0x0002
760#define DP83869_FX_STS_STTS_EXTENDED_CAPABILITY 0x0001
763#define DP83869_FX_PHYID1_OUI_6_19_FIBER 0x3FFF
764#define DP83869_FX_PHYID1_OUI_6_19_FIBER_DEFAULT 0x2000
767#define DP83869_FX_PHYID2_OUI_0_5_FIBER 0xFC00
768#define DP83869_FX_PHYID2_OUI_0_5_FIBER_DEFAULT 0xA000
769#define DP83869_FX_PHYID2_MODEL_NUM_FIBER 0x03F0
770#define DP83869_FX_PHYID2_MODEL_NUM_FIBER_DEFAULT 0x00F0
771#define DP83869_FX_PHYID2_REVISION_NUM_FIBER 0x000F
772#define DP83869_FX_PHYID2_REVISION_NUM_FIBER_DEFAULT 0x0001
775#define DP83869_FX_ANADV_BP_NEXT_PAGE 0x8000
776#define DP83869_FX_ANADV_BP_ACK 0x4000
777#define DP83869_FX_ANADV_BP_REMOTE_FAULT 0x3000
778#define DP83869_FX_ANADV_BP_ASYMMETRIC_PAUSE 0x0100
779#define DP83869_FX_ANADV_BP_PAUSE 0x0080
780#define DP83869_FX_ANADV_BP_HALF_DUPLEX 0x0040
781#define DP83869_FX_ANADV_BP_FULL_DUPLEX 0x0020
782#define DP83869_FX_ANADV_BP_RSVD1 0x001F
785#define DP83869_FX_LPABL_LP_ABILITY_NEXT_PAGE 0x8000
786#define DP83869_FX_LPABL_LP_ABILITY_ACK 0x4000
787#define DP83869_FX_LPABL_LP_ABILITY_REMOTE_FAULT 0x3000
788#define DP83869_FX_LPABL_LP_ABILITY_ASYMMETRIC_PAUSE 0x0100
789#define DP83869_FX_LPABL_LP_ABILITY_PAUSE 0x0080
790#define DP83869_FX_LPABL_LP_ABILITY_HALF_DUPLEX 0x0040
791#define DP83869_FX_LPABL_LP_ABILITY_FULL_DUPLEX 0x0020
794#define DP83869_FX_ANEXP_AN_EXP_LP_NEXT_PAGE_ABLE 0x0008
795#define DP83869_FX_ANEXP_AN_EXP_LOCAL_NEXT_PAGE_ABLE 0x0004
796#define DP83869_FX_ANEXP_AN_EXP_PAGE_RECEIVED 0x0002
797#define DP83869_FX_ANEXP_AN_EXP_LP_AUTO_NEG_ABLE 0x0001
800#define DP83869_FX_LOCNP_NP_TX_NEXT_PAGE 0x8000
801#define DP83869_FX_LOCNP_NP_TX_MESSAGE_PAGE_MODE 0x2000
802#define DP83869_FX_LOCNP_NP_TX_ACK_2 0x1000
803#define DP83869_FX_LOCNP_NP_TX_TOGGLE 0x0800
804#define DP83869_FX_LOCNP_NP_TX_MESSAGE_FIELD 0x07FF
807#define DP83869_FX_LPNP_LP_NP_NEXT_PAGE 0x8000
808#define DP83869_FX_LPNP_LP_NP_ACK 0x4000
809#define DP83869_FX_LPNP_LP_NP_MESSAGE_PAGE_MODE 0x2000
810#define DP83869_FX_LPNP_LP_NP_ACK_2 0x1000
811#define DP83869_FX_LPNP_LP_NP_TOGGLE 0x0800
812#define DP83869_FX_LPNP_LP_NP_MESSAGE_FIELD 0x07FF
815#define DP83869_FX_INT_EN_FEF_FAULT_EN 0x0200
816#define DP83869_FX_INT_EN_TX_FIFO_FULL_EN 0x0100
817#define DP83869_FX_INT_EN_TX_FIFO_EMPTY_EN 0x0080
818#define DP83869_FX_INT_EN_RX_FIFO_FULL_EN 0x0040
819#define DP83869_FX_INT_EN_RX_FIFO_EMPTY_EN 0x0020
820#define DP83869_FX_INT_EN_LINK_STS_CHANGE_EN 0x0010
821#define DP83869_FX_INT_EN_LP_FAULT_RX_EN 0x0008
822#define DP83869_FX_INT_EN_PRI_RES_FAIL_EN 0x0004
823#define DP83869_FX_INT_EN_LP_NP_RX_EN 0x0002
824#define DP83869_FX_INT_EN_LP_BP_RX_EN 0x0001
827#define DP83869_FX_INT_STS_FEF_FAULT 0x0200
828#define DP83869_FX_INT_STS_TX_FIFO_FULL 0x0100
829#define DP83869_FX_INT_STS_TX_FIFO_EMPTY 0x0080
830#define DP83869_FX_INT_STS_RX_FIFO_FULL 0x0040
831#define DP83869_FX_INT_STS_RX_FIFO_EMPTY 0x0020
832#define DP83869_FX_INT_STS_LINK_STS_CHANGE 0x0010
833#define DP83869_FX_INT_STS_LP_FAULT_RX 0x0008
834#define DP83869_FX_INT_STS_PRI_RES_FAIL 0x0004
835#define DP83869_FX_INT_STS_LP_NP_RX 0x0002
836#define DP83869_FX_INT_STS_LP_BP_RX 0x0001
847error_t dp83869Init(NetInterface *interface);
848void dp83869InitHook(NetInterface *interface);
850void dp83869Tick(NetInterface *interface);
852void dp83869EnableIrq(NetInterface *interface);
853void dp83869DisableIrq(NetInterface *interface);
855void dp83869EventHandler(NetInterface *interface);
857void dp83869WritePhyReg(NetInterface *interface, uint8_t address,
860uint16_t dp83869ReadPhyReg(NetInterface *interface, uint8_t address);
862void dp83869DumpPhyReg(NetInterface *interface);
864void dp83869WriteMmdReg(NetInterface *interface, uint8_t devAddr,
865 uint16_t regAddr, uint16_t data);
867uint16_t dp83869ReadMmdReg(NetInterface *interface, uint8_t devAddr,
error_t
Error codes.
Definition error.h:43
Network interface controller abstraction layer.
Ethernet PHY driver.
Definition nic.h:308