Go to the documentation of this file.
31 #ifndef _ADIN1111_DRIVER_H
32 #define _ADIN1111_DRIVER_H
38 #ifndef ADIN1111_OA_SPI_SUPPORT
39 #define ADIN1111_OA_SPI_SUPPORT DISABLED
40 #elif (ADIN1111_OA_SPI_SUPPORT != ENABLED && ADIN1111_OA_SPI_SUPPORT != DISABLED)
41 #error ADIN1111_OA_SPI_SUPPORT parameter is not valid
45 #ifndef ADIN1111_PROTECTION_SUPPORT
46 #define ADIN1111_PROTECTION_SUPPORT DISABLED
47 #elif (ADIN1111_PROTECTION_SUPPORT != ENABLED && ADIN1111_PROTECTION_SUPPORT != DISABLED)
48 #error ADIN1111_PROTECTION_SUPPORT parameter is not valid
52 #ifndef ADIN1111_ETH_TX_BUFFER_SIZE
53 #define ADIN1111_ETH_TX_BUFFER_SIZE 1536
54 #elif (ADIN1111_ETH_TX_BUFFER_SIZE != 1536)
55 #error ADIN1111_ETH_TX_BUFFER_SIZE parameter is not valid
59 #ifndef ADIN1111_ETH_RX_BUFFER_SIZE
60 #define ADIN1111_ETH_RX_BUFFER_SIZE 1536
61 #elif (ADIN1111_ETH_RX_BUFFER_SIZE != 1536)
62 #error ADIN1111_ETH_RX_BUFFER_SIZE parameter is not valid
66 #define ADIN1111_ADDR_TABLE_SIZE 16
69 #define ADIN1111_FRAME_HEADER_SIZE 2
72 #define ADIN1111_TX_FIFO_OVERHEAD 7
75 #define ADIN1111_CHUNK_HEADER_SIZE 4
77 #define ADIN1111_CHUNK_PAYLOAD_SIZE 64
79 #define ADIN1111_CHUNK_SIZE 68
82 #define ADIN1111_SPI_CMD_READ 0x80
83 #define ADIN1111_SPI_CMD_WRITE 0xA0
86 #define ADIN1111_FRAME_HEADER_PRIORITY 0x4000
87 #define ADIN1111_FRAME_HEADER_EG_CAPTURE 0x00C0
88 #define ADIN1111_FRAME_HEADER_EG_CAPTURE_A 0x0040
89 #define ADIN1111_FRAME_HEADER_EG_CAPTURE_B 0x0080
90 #define ADIN1111_FRAME_HEADER_EG_CAPTURE_C 0x00C0
91 #define ADIN1111_FRAME_HEADER_TS_PARITY 0x0008
92 #define ADIN1111_FRAME_HEADER_TS_PRESENT 0x0004
95 #define ADIN1111_TX_HEADER_DNC 0x80000000
96 #define ADIN1111_TX_HEADER_SEQ 0x40000000
97 #define ADIN1111_TX_HEADER_NORX 0x20000000
98 #define ADIN1111_TX_HEADER_VS 0x00C00000
99 #define ADIN1111_TX_HEADER_DV 0x00200000
100 #define ADIN1111_TX_HEADER_SV 0x00100000
101 #define ADIN1111_TX_HEADER_SWO 0x000F0000
102 #define ADIN1111_TX_HEADER_EV 0x00004000
103 #define ADIN1111_TX_HEADER_EBO 0x00003F00
104 #define ADIN1111_TX_HEADER_TSC 0x000000C0
105 #define ADIN1111_TX_HEADER_TSC_NO_ACTION 0x00000000
106 #define ADIN1111_TX_HEADER_TSC_TTSCA 0x00000040
107 #define ADIN1111_TX_HEADER_TSC_TTSCB 0x00000080
108 #define ADIN1111_TX_HEADER_TSC_TTSCC 0x000000C0
109 #define ADIN1111_TX_HEADER_P 0x00000001
112 #define ADIN1111_RX_FOOTER_EXST 0x80000000
113 #define ADIN1111_RX_FOOTER_HDRB 0x40000000
114 #define ADIN1111_RX_FOOTER_SYNC 0x20000000
115 #define ADIN1111_RX_FOOTER_RCA 0x1F000000
116 #define ADIN1111_RX_FOOTER_VS1 0x00800000
117 #define ADIN1111_RX_FOOTER_VS1_LOW_PRIO 0x00000000
118 #define ADIN1111_RX_FOOTER_VS1_HIGH_PRIO 0x00800000
119 #define ADIN1111_RX_FOOTER_VS0 0x00400000
120 #define ADIN1111_RX_FOOTER_DV 0x00200000
121 #define ADIN1111_RX_FOOTER_SV 0x00100000
122 #define ADIN1111_RX_FOOTER_SWO 0x000F0000
123 #define ADIN1111_RX_FOOTER_FD 0x00008000
124 #define ADIN1111_RX_FOOTER_EV 0x00004000
125 #define ADIN1111_RX_FOOTER_EBO 0x00003F00
126 #define ADIN1111_RX_FOOTER_RTSA 0x00000080
127 #define ADIN1111_RX_FOOTER_RTSP 0x00000040
128 #define ADIN1111_RX_FOOTER_TXC 0x0000003E
129 #define ADIN1111_RX_FOOTER_P 0x00000001
132 #define ADIN1111_CTRL_HEADER_DNC 0x80000000
133 #define ADIN1111_CTRL_HEADER_HDRB 0x40000000
134 #define ADIN1111_CTRL_HEADER_WNR 0x20000000
135 #define ADIN1111_CTRL_HEADER_AID 0x10000000
136 #define ADIN1111_CTRL_HEADER_MMS 0x0F000000
137 #define ADIN1111_CTRL_HEADER_ADDR 0x00FFFF00
138 #define ADIN1111_CTRL_HEADER_LEN 0x000000FE
139 #define ADIN1111_CTRL_HEADER_P 0x00000001
142 #define ADIN1111_MMS_STD 0x00
143 #define ADIN1111_MMS_MAC 0x01
146 #define ADIN1111_IDVER 0x00
147 #define ADIN1111_PHYID 0x01
148 #define ADIN1111_CAPABILITY 0x02
149 #define ADIN1111_RESET 0x03
150 #define ADIN1111_CONFIG0 0x04
151 #define ADIN1111_CONFIG2 0x06
152 #define ADIN1111_STATUS0 0x08
153 #define ADIN1111_STATUS1 0x09
154 #define ADIN1111_BUFSTS 0x0B
155 #define ADIN1111_IMASK0 0x0C
156 #define ADIN1111_IMASK1 0x0D
157 #define ADIN1111_TTSCAH 0x10
158 #define ADIN1111_TTSCAL 0x11
159 #define ADIN1111_TTSCBH 0x12
160 #define ADIN1111_TTSCBL 0x13
161 #define ADIN1111_TTSCCH 0x14
162 #define ADIN1111_TTSCCL 0x15
163 #define ADIN1111_MDIOACC0 0x20
164 #define ADIN1111_MDIOACC1 0x21
165 #define ADIN1111_MDIOACC2 0x22
166 #define ADIN1111_MDIOACC3 0x23
167 #define ADIN1111_MDIOACC4 0x24
168 #define ADIN1111_MDIOACC5 0x25
169 #define ADIN1111_MDIOACC6 0x26
170 #define ADIN1111_MDIOACC7 0x27
171 #define ADIN1111_TX_FSIZE 0x30
172 #define ADIN1111_TX 0x31
173 #define ADIN1111_TX_SPACE 0x32
174 #define ADIN1111_TX_THRESH 0x34
175 #define ADIN1111_FIFO_CLR 0x36
176 #define ADIN1111_SCRATCH0 0x37
177 #define ADIN1111_SCRATCH1 0x38
178 #define ADIN1111_SCRATCH2 0x39
179 #define ADIN1111_SCRATCH3 0x3A
180 #define ADIN1111_MAC_RST_STATUS 0x3B
181 #define ADIN1111_SOFT_RST 0x3C
182 #define ADIN1111_SPI_INJ_ERR 0x3D
183 #define ADIN1111_FIFO_SIZE 0x3E
184 #define ADIN1111_TFC 0x3F
185 #define ADIN1111_TXSIZE 0x40
186 #define ADIN1111_HTX_OVF_FRM_CNT 0x41
187 #define ADIN1111_MECC_ERR_ADDR 0x42
188 #define ADIN1111_CECC_ERR0 0x43
189 #define ADIN1111_CECC_ERR1 0x44
190 #define ADIN1111_CECC_ERR2 0x45
191 #define ADIN1111_CECC_ERR3 0x46
192 #define ADIN1111_CECC_ERR4 0x47
193 #define ADIN1111_CECC_ERR5 0x48
194 #define ADIN1111_CECC_ERR6 0x49
195 #define ADIN1111_ADDR_FILT_UPR0 0x50
196 #define ADIN1111_ADDR_FILT_LWR0 0x51
197 #define ADIN1111_ADDR_FILT_UPR1 0x52
198 #define ADIN1111_ADDR_FILT_LWR1 0x53
199 #define ADIN1111_ADDR_FILT_UPR2 0x54
200 #define ADIN1111_ADDR_FILT_LWR2 0x55
201 #define ADIN1111_ADDR_FILT_UPR3 0x56
202 #define ADIN1111_ADDR_FILT_LWR3 0x57
203 #define ADIN1111_ADDR_FILT_UPR4 0x58
204 #define ADIN1111_ADDR_FILT_LWR4 0x59
205 #define ADIN1111_ADDR_FILT_UPR5 0x5A
206 #define ADIN1111_ADDR_FILT_LWR5 0x5B
207 #define ADIN1111_ADDR_FILT_UPR6 0x5C
208 #define ADIN1111_ADDR_FILT_LWR6 0x5D
209 #define ADIN1111_ADDR_FILT_UPR7 0x5E
210 #define ADIN1111_ADDR_FILT_LWR7 0x5F
211 #define ADIN1111_ADDR_FILT_UPR8 0x60
212 #define ADIN1111_ADDR_FILT_LWR8 0x61
213 #define ADIN1111_ADDR_FILT_UPR9 0x62
214 #define ADIN1111_ADDR_FILT_LWR9 0x63
215 #define ADIN1111_ADDR_FILT_UPR10 0x64
216 #define ADIN1111_ADDR_FILT_LWR10 0x65
217 #define ADIN1111_ADDR_FILT_UPR11 0x66
218 #define ADIN1111_ADDR_FILT_LWR11 0x67
219 #define ADIN1111_ADDR_FILT_UPR12 0x68
220 #define ADIN1111_ADDR_FILT_LWR12 0x69
221 #define ADIN1111_ADDR_FILT_UPR13 0x6A
222 #define ADIN1111_ADDR_FILT_LWR13 0x6B
223 #define ADIN1111_ADDR_FILT_UPR14 0x6C
224 #define ADIN1111_ADDR_FILT_LWR14 0x6D
225 #define ADIN1111_ADDR_FILT_UPR15 0x6E
226 #define ADIN1111_ADDR_FILT_LWR15 0x6F
227 #define ADIN1111_ADDR_MSK_UPR0 0x70
228 #define ADIN1111_ADDR_MSK_LWR0 0x71
229 #define ADIN1111_ADDR_MSK_UPR1 0x72
230 #define ADIN1111_ADDR_MSK_LWR1 0x73
231 #define ADIN1111_TS_ADDEND 0x80
232 #define ADIN1111_TS_1SEC_CMP 0x81
233 #define ADIN1111_TS_SEC_CNT 0x82
234 #define ADIN1111_TS_NS_CNT 0x83
235 #define ADIN1111_TS_CFG 0x84
236 #define ADIN1111_TS_TIMER_HI 0x85
237 #define ADIN1111_TS_TIMER_LO 0x86
238 #define ADIN1111_TS_TIMER_QE_CORR 0x87
239 #define ADIN1111_TS_TIMER_START 0x88
240 #define ADIN1111_TS_EXT_CAPT0 0x89
241 #define ADIN1111_TS_EXT_CAPT1 0x8A
242 #define ADIN1111_TS_FREECNT_CAPT 0x8B
243 #define ADIN1111_P1_RX_FSIZE 0x90
244 #define ADIN1111_P1_RX 0x91
245 #define ADIN1111_P1_RX_FRM_CNT 0xA0
246 #define ADIN1111_P1_RX_BCAST_CNT 0xA1
247 #define ADIN1111_P1_RX_MCAST_CNT 0xA2
248 #define ADIN1111_P1_RX_UCAST_CNT 0xA3
249 #define ADIN1111_P1_RX_CRC_ERR_CNT 0xA4
250 #define ADIN1111_P1_RX_ALGN_ERR_CNT 0xA5
251 #define ADIN1111_P1_RX_LS_ERR_CNT 0xA6
252 #define ADIN1111_P1_RX_PHY_ERR_CNT 0xA7
253 #define ADIN1111_P1_TX_FRM_CNT 0xA8
254 #define ADIN1111_P1_TX_BCAST_CNT 0xA9
255 #define ADIN1111_P1_TX_MCAST_CNT 0xAA
256 #define ADIN1111_P1_TX_UCAST_CNT 0xAB
257 #define ADIN1111_P1_RX_DROP_FULL_CNT 0xAC
258 #define ADIN1111_P1_RX_DROP_FILT_CNT 0xAD
259 #define ADIN1111_P1_RX_IFG_ERR_CNT 0xAE
260 #define ADIN1111_P1_TX_IFG 0xB0
261 #define ADIN1111_P1_LOOP 0xB3
262 #define ADIN1111_P1_RX_CRC_EN 0xB4
263 #define ADIN1111_P1_RX_IFG 0xB5
264 #define ADIN1111_P1_RX_MAX_LEN 0xB6
265 #define ADIN1111_P1_RX_MIN_LEN 0xB7
266 #define ADIN1111_P1_LO_RFC 0xB8
267 #define ADIN1111_P1_HI_RFC 0xB9
268 #define ADIN1111_P1_LO_RXSIZE 0xBA
269 #define ADIN1111_P1_HI_RXSIZE 0xBB
272 #define ADIN1111_MI_CONTROL 0x00
273 #define ADIN1111_MI_STATUS 0x01
274 #define ADIN1111_MI_PHY_ID1 0x02
275 #define ADIN1111_MI_PHY_ID2 0x03
276 #define ADIN1111_MMD_ACCESS_CNTRL 0x0D
277 #define ADIN1111_MMD_ACCESS 0x0E
280 #define ADIN1111_PMA_PMD_CNTRL1 0x01, 0x0000
281 #define ADIN1111_PMA_PMD_STAT1 0x01, 0x0001
282 #define ADIN1111_PMA_PMD_DEVS_IN_PKG1 0x01, 0x0005
283 #define ADIN1111_PMA_PMD_DEVS_IN_PKG2 0x01, 0x0006
284 #define ADIN1111_PMA_PMD_CNTRL2 0x01, 0x0007
285 #define ADIN1111_PMA_PMD_STAT2 0x01, 0x0008
286 #define ADIN1111_PMA_PMD_TX_DIS 0x01, 0x0009
287 #define ADIN1111_PMA_PMD_EXT_ABILITY 0x01, 0x000B
288 #define ADIN1111_PMA_PMD_BT1_ABILITY 0x01, 0x0012
289 #define ADIN1111_PMA_PMD_BT1_CONTROL 0x01, 0x0834
290 #define ADIN1111_B10L_PMA_CNTRL 0x01, 0x08F6
291 #define ADIN1111_B10L_PMA_STAT 0x01, 0x08F7
292 #define ADIN1111_B10L_TEST_MODE_CNTRL 0x01, 0x08F8
293 #define ADIN1111_CR_STBL_CHK_FOFFS_SAT_THR 0x01, 0x8015
294 #define ADIN1111_SLV_FLTR_ECHO_ACQ_CR_KP 0x01, 0x81E7
295 #define ADIN1111_B10L_PMA_LINK_STAT 0x01, 0x8302
296 #define ADIN1111_MSE_VAL 0x01, 0x830B
297 #define ADIN1111_PCS_CNTRL1 0x03, 0x0000
298 #define ADIN1111_PCS_STAT1 0x03, 0x0001
299 #define ADIN1111_PCS_DEVS_IN_PKG1 0x03, 0x0005
300 #define ADIN1111_PCS_DEVS_IN_PKG2 0x03, 0x0006
301 #define ADIN1111_PCS_STAT2 0x03, 0x0008
302 #define ADIN1111_B10L_PCS_CNTRL 0x03, 0x08E6
303 #define ADIN1111_B10L_PCS_STAT 0x03, 0x08E7
304 #define ADIN1111_AN_DEVS_IN_PKG1 0x07, 0x0005
305 #define ADIN1111_AN_DEVS_IN_PKG2 0x07, 0x0006
306 #define ADIN1111_AN_CONTROL 0x07, 0x0200
307 #define ADIN1111_AN_STATUS 0x07, 0x0201
308 #define ADIN1111_AN_ADV_ABILITY_L 0x07, 0x0202
309 #define ADIN1111_AN_ADV_ABILITY_M 0x07, 0x0203
310 #define ADIN1111_AN_ADV_ABILITY_H 0x07, 0x0204
311 #define ADIN1111_AN_LP_ADV_ABILITY_L 0x07, 0x0205
312 #define ADIN1111_AN_LP_ADV_ABILITY_M 0x07, 0x0206
313 #define ADIN1111_AN_LP_ADV_ABILITY_H 0x07, 0x0207
314 #define ADIN1111_AN_NEXT_PAGE_L 0x07, 0x0208
315 #define ADIN1111_AN_NEXT_PAGE_M 0x07, 0x0209
316 #define ADIN1111_AN_NEXT_PAGE_H 0x07, 0x020A
317 #define ADIN1111_AN_LP_NEXT_PAGE_L 0x07, 0x020B
318 #define ADIN1111_AN_LP_NEXT_PAGE_M 0x07, 0x020C
319 #define ADIN1111_AN_LP_NEXT_PAGE_H 0x07, 0x020D
320 #define ADIN1111_AN_B10_ADV_ABILITY 0x07, 0x020E
321 #define ADIN1111_AN_B10_LP_ADV_ABILITY 0x07, 0x020F
322 #define ADIN1111_AN_FRC_MODE_EN 0x07, 0x8000
323 #define ADIN1111_AN_STATUS_EXTRA 0x07, 0x8001
324 #define ADIN1111_AN_PHY_INST_STATUS 0x07, 0x8030
325 #define ADIN1111_MMD1_DEV_ID1 0x1E, 0x0002
326 #define ADIN1111_MMD1_DEV_ID2 0x1E, 0x0003
327 #define ADIN1111_MMD1_DEVS_IN_PKG1 0x1E, 0x0005
328 #define ADIN1111_MMD1_DEVS_IN_PKG2 0x1E, 0x0006
329 #define ADIN1111_MMD1_STATUS 0x1E, 0x0008
330 #define ADIN1111_CRSM_IRQ_STATUS 0x1E, 0x0010
331 #define ADIN1111_CRSM_IRQ_MASK 0x1E, 0x0020
332 #define ADIN1111_CRSM_SFT_RST 0x1E, 0x8810
333 #define ADIN1111_CRSM_SFT_PD_CNTRL 0x1E, 0x8812
334 #define ADIN1111_CRSM_PHY_SUBSYS_RST 0x1E, 0x8814
335 #define ADIN1111_CRSM_MAC_IF_RST 0x1E, 0x8815
336 #define ADIN1111_CRSM_STAT 0x1E, 0x8818
337 #define ADIN1111_CRSM_PMG_CNTRL 0x1E, 0x8819
338 #define ADIN1111_CRSM_DIAG_CLK_CTRL 0x1E, 0x882C
339 #define ADIN1111_MGMT_PRT_PKG 0x1E, 0x8C22
340 #define ADIN1111_MGMT_MDIO_CNTRL 0x1E, 0x8C30
341 #define ADIN1111_DIGIO_PINMUX 0x1E, 0x8C56
342 #define ADIN1111_LED0_BLINK_TIME_CNTRL 0x1E, 0x8C80
343 #define ADIN1111_LED1_BLINK_TIME_CNTRL 0x1E, 0x8C81
344 #define ADIN1111_LED_CNTRL 0x1E, 0x8C82
345 #define ADIN1111_LED_POLARITY 0x1E, 0x8C83
346 #define ADIN1111_MMD2_DEV_ID1 0x1F, 0x0002
347 #define ADIN1111_MMD2_DEV_ID2 0x1F, 0x0003
348 #define ADIN1111_MMD2_DEVS_IN_PKG1 0x1F, 0x0005
349 #define ADIN1111_MMD2_DEVS_IN_PKG2 0x1F, 0x0006
350 #define ADIN1111_MMD2_STATUS 0x1F, 0x0008
351 #define ADIN1111_PHY_SUBSYS_IRQ_STATUS 0x1F, 0x0011
352 #define ADIN1111_PHY_SUBSYS_IRQ_MASK 0x1F, 0x0021
353 #define ADIN1111_FC_EN 0x1F, 0x8001
354 #define ADIN1111_FC_IRQ_EN 0x1F, 0x8004
355 #define ADIN1111_FC_TX_SEL 0x1F, 0x8005
356 #define ADIN1111_RX_ERR_CNT 0x1F, 0x8008
357 #define ADIN1111_FC_FRM_CNT_H 0x1F, 0x8009
358 #define ADIN1111_FC_FRM_CNT_L 0x1F, 0x800A
359 #define ADIN1111_FC_LEN_ERR_CNT 0x1F, 0x800B
360 #define ADIN1111_FC_ALGN_ERR_CNT 0x1F, 0x800C
361 #define ADIN1111_FC_SYMB_ERR_CNT 0x1F, 0x800D
362 #define ADIN1111_FC_OSZ_CNT 0x1F, 0x800E
363 #define ADIN1111_FC_USZ_CNT 0x1F, 0x800F
364 #define ADIN1111_FC_ODD_CNT 0x1F, 0x8010
365 #define ADIN1111_FC_ODD_PRE_CNT 0x1F, 0x8011
366 #define ADIN1111_FC_FALSE_CARRIER_CNT 0x1F, 0x8013
367 #define ADIN1111_FG_EN 0x1F, 0x8020
368 #define ADIN1111_FG_CNTRL_RSTRT 0x1F, 0x8021
369 #define ADIN1111_FG_CONT_MODE_EN 0x1F, 0x8022
370 #define ADIN1111_FG_IRQ_EN 0x1F, 0x8023
371 #define ADIN1111_FG_FRM_LEN 0x1F, 0x8025
372 #define ADIN1111_FG_IFG_LEN 0x1F, 0x8026
373 #define ADIN1111_FG_NFRM_H 0x1F, 0x8027
374 #define ADIN1111_FG_NFRM_L 0x1F, 0x8028
375 #define ADIN1111_FG_DONE 0x1F, 0x8029
376 #define ADIN1111_MAC_IF_LOOPBACK 0x1F, 0x8055
377 #define ADIN1111_MAC_IF_SOP_CNTRL 0x1F, 0x805A
380 #define ADIN1111_IDVER_MINVER 0x0000000F
383 #define ADIN1111_PHYID_OUI 0xFFFFFC00
384 #define ADIN1111_PHYID_OUI_DEFAULT 0x0283BC00
385 #define ADIN1111_PHYID_MODEL 0x000003F0
386 #define ADIN1111_PHYID_MODEL_DEFAULT 0x00000090
387 #define ADIN1111_PHYID_REVISION 0x0000000F
388 #define ADIN1111_PHYID_REVISION_DEFAULT 0x00000001
391 #define ADIN1111_CAPABILITY_TXFCSVC 0x00000400
392 #define ADIN1111_CAPABILITY_IPRAC 0x00000200
393 #define ADIN1111_CAPABILITY_DPRAC 0x00000100
394 #define ADIN1111_CAPABILITY_CTC 0x00000080
395 #define ADIN1111_CAPABILITY_FTSC 0x00000040
396 #define ADIN1111_CAPABILITY_AIDC 0x00000020
397 #define ADIN1111_CAPABILITY_SEQC 0x00000010
398 #define ADIN1111_CAPABILITY_MINCPS 0x00000007
399 #define ADIN1111_CAPABILITY_MINCPS_8B 0x00000003
400 #define ADIN1111_CAPABILITY_MINCPS_16B 0x00000004
401 #define ADIN1111_CAPABILITY_MINCPS_32B 0x00000005
402 #define ADIN1111_CAPABILITY_MINCPS_64B 0x00000006
405 #define ADIN1111_RESET_SWRESET 0x00000001
408 #define ADIN1111_CONFIG0_SYNC 0x00008000
409 #define ADIN1111_CONFIG0_TXFCSVE 0x00004000
410 #define ADIN1111_CONFIG0_CSARFE 0x00002000
411 #define ADIN1111_CONFIG0_ZARFE 0x00001000
412 #define ADIN1111_CONFIG0_TXCTHRESH 0x00000C00
413 #define ADIN1111_CONFIG0_TXCTHRESH_1_CREDIT 0x00000000
414 #define ADIN1111_CONFIG0_TXCTHRESH_4_CREDITS 0x00000400
415 #define ADIN1111_CONFIG0_TXCTHRESH_8_CREDITS 0x00000800
416 #define ADIN1111_CONFIG0_TXCTHRESH_16_CREDITS 0x00000C00
417 #define ADIN1111_CONFIG0_TXCTE 0x00000200
418 #define ADIN1111_CONFIG0_RXCTE 0x00000100
419 #define ADIN1111_CONFIG0_FTSE 0x00000080
420 #define ADIN1111_CONFIG0_FTSS 0x00000040
421 #define ADIN1111_CONFIG0_PROTE 0x00000020
422 #define ADIN1111_CONFIG0_SEQE 0x00000010
423 #define ADIN1111_CONFIG0_CPS 0x00000007
424 #define ADIN1111_CONFIG0_CPS_8B 0x00000003
425 #define ADIN1111_CONFIG0_CPS_16B 0x00000004
426 #define ADIN1111_CONFIG0_CPS_32B 0x00000005
427 #define ADIN1111_CONFIG0_CPS_64B 0x00000006
430 #define ADIN1111_CONFIG2_TX_RDY_ON_EMPTY 0x00000100
431 #define ADIN1111_CONFIG2_SFD_DETECT_SRC 0x00000080
432 #define ADIN1111_CONFIG2_STATS_CLR_ON_RD 0x00000040
433 #define ADIN1111_CONFIG2_CRC_APPEND 0x00000020
434 #define ADIN1111_CONFIG2_P1_RCV_IFG_ERR_FRM 0x00000010
435 #define ADIN1111_CONFIG2_P1_FWD_UNK2HOST 0x00000004
436 #define ADIN1111_CONFIG2_MSPEED 0x00000003
437 #define ADIN1111_CONFIG2_MSPEED_2_5_MHZ 0x00000000
438 #define ADIN1111_CONFIG2_MSPEED_4_166_MHZ 0x00000001
441 #define ADIN1111_STATUS0_CDPE 0x00001000
442 #define ADIN1111_STATUS0_TXFCSE 0x00000800
443 #define ADIN1111_STATUS0_TTSCAC 0x00000400
444 #define ADIN1111_STATUS0_TTSCAB 0x00000200
445 #define ADIN1111_STATUS0_TTSCAA 0x00000100
446 #define ADIN1111_STATUS0_PHYINT 0x00000080
447 #define ADIN1111_STATUS0_RESETC 0x00000040
448 #define ADIN1111_STATUS0_HDRE 0x00000020
449 #define ADIN1111_STATUS0_LOFE 0x00000010
450 #define ADIN1111_STATUS0_RXBOE 0x00000008
451 #define ADIN1111_STATUS0_TXBUE 0x00000004
452 #define ADIN1111_STATUS0_TXBOE 0x00000002
453 #define ADIN1111_STATUS0_TXPE 0x00000001
456 #define ADIN1111_STATUS1_TX_ECC_ERR 0x00001000
457 #define ADIN1111_STATUS1_RX_ECC_ERR 0x00000800
458 #define ADIN1111_STATUS1_SPI_ERR 0x00000400
459 #define ADIN1111_STATUS1_P1_RX_IFG_ERR 0x00000100
460 #define ADIN1111_STATUS1_P1_RX_RDY_HI 0x00000020
461 #define ADIN1111_STATUS1_P1_RX_RDY 0x00000010
462 #define ADIN1111_STATUS1_TX_RDY 0x00000008
463 #define ADIN1111_STATUS1_LINK_CHANGE 0x00000002
464 #define ADIN1111_STATUS1_P1_LINK_STATUS 0x00000001
467 #define ADIN1111_BUFSTS_TXC 0x0000FF00
468 #define ADIN1111_BUFSTS_RCA 0x000000FF
471 #define ADIN1111_IMASK0_CDPEM 0x00001000
472 #define ADIN1111_IMASK0_TXFCSEM 0x00000800
473 #define ADIN1111_IMASK0_TTSCACM 0x00000400
474 #define ADIN1111_IMASK0_TTSCABM 0x00000200
475 #define ADIN1111_IMASK0_TTSCAAM 0x00000100
476 #define ADIN1111_IMASK0_PHYINTM 0x00000080
477 #define ADIN1111_IMASK0_RESETCM 0x00000040
478 #define ADIN1111_IMASK0_HDREM 0x00000020
479 #define ADIN1111_IMASK0_LOFEM 0x00000010
480 #define ADIN1111_IMASK0_RXBOEM 0x00000008
481 #define ADIN1111_IMASK0_TXBUEM 0x00000004
482 #define ADIN1111_IMASK0_TXBOEM 0x00000002
483 #define ADIN1111_IMASK0_TXPEM 0x00000001
486 #define ADIN1111_IMASK1_TX_ECC_ERR_MASK 0x00001000
487 #define ADIN1111_IMASK1_RX_ECC_ERR_MASK 0x00000800
488 #define ADIN1111_IMASK1_SPI_ERR_MASK 0x00000400
489 #define ADIN1111_IMASK1_P1_RX_IFG_ERR_MASK 0x00000100
490 #define ADIN1111_IMASK1_P1_RX_RDY_MASK 0x00000010
491 #define ADIN1111_IMASK1_TX_RDY_MASK 0x00000008
492 #define ADIN1111_IMASK1_LINK_CHANGE_MASK 0x00000002
495 #define ADIN1111_MDIOACC_MDIO_TRDONE 0x80000000
496 #define ADIN1111_MDIOACC_MDIO_TAERR 0x40000000
497 #define ADIN1111_MDIOACC_MDIO_ST 0x30000000
498 #define ADIN1111_MDIOACC_MDIO_ST_CLAUSE_45 0x00000000
499 #define ADIN1111_MDIOACC_MDIO_ST_CLAUSE_22 0x10000000
500 #define ADIN1111_MDIOACC_MDIO_OP 0x0C000000
501 #define ADIN1111_MDIOACC_MDIO_OP_ADDR 0x00000000
502 #define ADIN1111_MDIOACC_MDIO_OP_WRITE 0x04000000
503 #define ADIN1111_MDIOACC_MDIO_OP_INC_READ 0x08000000
504 #define ADIN1111_MDIOACC_MDIO_OP_READ 0x0C000000
505 #define ADIN1111_MDIOACC_MDIO_PRTAD 0x03E00000
506 #define ADIN1111_MDIOACC_MDIO_PRTAD_DEFAULT 0x00200000
507 #define ADIN1111_MDIOACC_MDIO_DEVAD 0x001F0000
508 #define ADIN1111_MDIOACC_MDIO_DATA 0x0000FFFF
511 #define ADIN1111_TX_FSIZE_TX_FRM_SIZE 0x000007FF
514 #define ADIN1111_TX_TDR 0xFFFFFFFF
517 #define ADIN1111_TX_SPACE_TX_SPACE 0x00003FFF
520 #define ADIN1111_TX_THRESH_HOST_TX_THRESH 0x0000003F
523 #define ADIN1111_FIFO_CLR_MAC_TXF_CLR 0x00000002
524 #define ADIN1111_FIFO_CLR_MAC_RXF_CLR 0x00000001
527 #define ADIN1111_SCRATCH_SCRATCH_DATA 0xFFFFFFFF
530 #define ADIN1111_MAC_RST_STATUS_MAC_CRYSL_CLK_RDY 0x00000002
531 #define ADIN1111_MAC_RST_STATUS_MAC_OSC_CLK_RDY 0x00000001
534 #define ADIN1111_SOFT_RST_RST_KEY 0x0000FFFF
535 #define ADIN1111_SOFT_RST_RST_KEY_1_RESET 0x00004F1C
536 #define ADIN1111_SOFT_RST_RST_KEY_2_RESET 0x0000C1F4
537 #define ADIN1111_SOFT_RST_RST_KEY_1_RELEASE 0x00006F1A
538 #define ADIN1111_SOFT_RST_RST_KEY_2_RELEASE 0x0000A1F6
541 #define ADIN1111_SPI_INJ_ERR_TEST_SPI_INJ_ERR 0x00000001
544 #define ADIN1111_FIFO_SIZE_P1_RX_HI_SIZE 0x00000F00
545 #define ADIN1111_FIFO_SIZE_P1_RX_HI_SIZE_0KB 0x00000000
546 #define ADIN1111_FIFO_SIZE_P1_RX_HI_SIZE_2KB 0x00000100
547 #define ADIN1111_FIFO_SIZE_P1_RX_HI_SIZE_4KB 0x00000200
548 #define ADIN1111_FIFO_SIZE_P1_RX_HI_SIZE_6KB 0x00000300
549 #define ADIN1111_FIFO_SIZE_P1_RX_HI_SIZE_8KB 0x00000400
550 #define ADIN1111_FIFO_SIZE_P1_RX_HI_SIZE_10KB 0x00000500
551 #define ADIN1111_FIFO_SIZE_P1_RX_HI_SIZE_12KB 0x00000600
552 #define ADIN1111_FIFO_SIZE_P1_RX_HI_SIZE_14KB 0x00000700
553 #define ADIN1111_FIFO_SIZE_P1_RX_HI_SIZE_16KB 0x00000800
554 #define ADIN1111_FIFO_SIZE_P1_RX_LO_SIZE 0x000000F0
555 #define ADIN1111_FIFO_SIZE_P1_RX_LO_SIZE_0KB 0x00000000
556 #define ADIN1111_FIFO_SIZE_P1_RX_LO_SIZE_2KB 0x00000010
557 #define ADIN1111_FIFO_SIZE_P1_RX_LO_SIZE_4KB 0x00000020
558 #define ADIN1111_FIFO_SIZE_P1_RX_LO_SIZE_6KB 0x00000030
559 #define ADIN1111_FIFO_SIZE_P1_RX_LO_SIZE_8KB 0x00000040
560 #define ADIN1111_FIFO_SIZE_P1_RX_LO_SIZE_10KB 0x00000050
561 #define ADIN1111_FIFO_SIZE_P1_RX_LO_SIZE_12KB 0x00000060
562 #define ADIN1111_FIFO_SIZE_P1_RX_LO_SIZE_14KB 0x00000070
563 #define ADIN1111_FIFO_SIZE_P1_RX_LO_SIZE_16KB 0x00000080
564 #define ADIN1111_FIFO_SIZE_HTX_SIZE 0x0000000F
565 #define ADIN1111_FIFO_SIZE_HTX_SIZE_0KB 0x00000000
566 #define ADIN1111_FIFO_SIZE_HTX_SIZE_2KB 0x00000001
567 #define ADIN1111_FIFO_SIZE_HTX_SIZE_4KB 0x00000002
568 #define ADIN1111_FIFO_SIZE_HTX_SIZE_6KB 0x00000003
569 #define ADIN1111_FIFO_SIZE_HTX_SIZE_8KB 0x00000004
570 #define ADIN1111_FIFO_SIZE_HTX_SIZE_10KB 0x00000005
571 #define ADIN1111_FIFO_SIZE_HTX_SIZE_12KB 0x00000006
572 #define ADIN1111_FIFO_SIZE_HTX_SIZE_14KB 0x00000007
573 #define ADIN1111_FIFO_SIZE_HTX_SIZE_16KB 0x00000008
576 #define ADIN1111_TFC_TFC 0x000001FF
579 #define ADIN1111_TXSIZE_TX_SIZE 0x00003FFF
582 #define ADIN1111_MECC_ERR_ADDR_MECC_ERR_ADDR 0x00003FFF
585 #define ADIN1111_CECC_ERR_CECC_ERR_CNT 0x000003FF
588 #define ADIN1111_ADDR_FILT_UPR_APPLY2PORT1 0x40000000
589 #define ADIN1111_ADDR_FILT_UPR_HOST_PRI 0x00080000
590 #define ADIN1111_ADDR_FILT_UPR_TO_HOST 0x00010000
591 #define ADIN1111_ADDR_FILT_UPR_MAC_ADDR_47_32 0x0000FFFF
594 #define ADIN1111_ADDR_FILT_LWR_MAC_ADDR_31_0 0xFFFFFFFF
597 #define ADIN1111_ADDR_MSK_UPR_MAC_ADDR_MASK_47_32 0x0000FFFF
600 #define ADIN1111_ADDR_MSK_LWR_MAC_ADDR_MASK_31_0 0xFFFFFFFF
603 #define ADIN1111_TS_CFG_TS_CAPT_FREE_CNT 0x00000010
604 #define ADIN1111_TS_CFG_TS_TIMER_STOP 0x00000008
605 #define ADIN1111_TS_CFG_TS_TIMER_DEF 0x00000004
606 #define ADIN1111_TS_CFG_TS_CLR 0x00000002
607 #define ADIN1111_TS_CFG_TS_EN 0x00000001
610 #define ADIN1111_TS_TIMER_QE_CORR_TS_TIMER_QE_CORR 0x000000FF
613 #define ADIN1111_P1_RX_FSIZE_P1_RX_FRM_SIZE 0x000007FF
616 #define ADIN1111_P1_RX_P1_RDR 0xFFFFFFFF
619 #define ADIN1111_P1_TX_IFG_P1_TX_IFG 0x000000FF
622 #define ADIN1111_P1_LOOP_P1_LOOPBACK_EN 0x00000001
625 #define ADIN1111_P1_RX_CRC_EN_P1_CRC_CHK_EN 0x00000001
628 #define ADIN1111_P1_RX_IFG_P1_RX_IFG 0x0000003F
631 #define ADIN1111_P1_RX_MAX_LEN_P1_MAX_FRM_LEN 0x0000FFFF
634 #define ADIN1111_P1_RX_MIN_LEN_P1_MIN_FRM_LEN 0x0000FFFF
637 #define ADIN1111_P1_LO_RFC_P1_LO_RFC 0x000001FF
640 #define ADIN1111_P1_HI_RFC_P1_HI_RFC 0x000001FF
643 #define ADIN1111_P1_LO_RXSIZE_P1_LO_RXSIZE 0x00003FFF
646 #define ADIN1111_P1_HI_RXSIZE_P1_HI_RXSIZE 0x00003FFF
649 #define ADIN1111_MI_CONTROL_MI_SFT_RST 0x8000
650 #define ADIN1111_MI_CONTROL_MI_LOOPBACK 0x4000
651 #define ADIN1111_MI_CONTROL_MI_SPEED_SEL_LSB 0x2000
652 #define ADIN1111_MI_CONTROL_MI_AN_EN 0x1000
653 #define ADIN1111_MI_CONTROL_MI_SFT_PD 0x0800
654 #define ADIN1111_MI_CONTROL_MI_ISOLATE 0x0400
655 #define ADIN1111_MI_CONTROL_MI_FULL_DUPLEX 0x0100
656 #define ADIN1111_MI_CONTROL_MI_COLTEST 0x0080
657 #define ADIN1111_MI_CONTROL_MI_SPEED_SEL_MSB 0x0040
658 #define ADIN1111_MI_CONTROL_MI_UNIDIR_EN 0x0020
661 #define ADIN1111_MI_STATUS_MI_T4_SPRT 0x8000
662 #define ADIN1111_MI_STATUS_MI_FD100_SPRT 0x4000
663 #define ADIN1111_MI_STATUS_MI_HD100_SPRT 0x2000
664 #define ADIN1111_MI_STATUS_MI_FD10_SPRT 0x1000
665 #define ADIN1111_MI_STATUS_MI_HD10_SPRT 0x0800
666 #define ADIN1111_MI_STATUS_MI_FD_T2_SPRT 0x0400
667 #define ADIN1111_MI_STATUS_MI_HD_T2_SPRT 0x0200
668 #define ADIN1111_MI_STATUS_MI_EXT_STAT_SPRT 0x0100
669 #define ADIN1111_MI_STATUS_MI_UNIDIR_ABLE 0x0080
670 #define ADIN1111_MI_STATUS_MI_MF_PREAM_SUP_ABLE 0x0040
671 #define ADIN1111_MI_STATUS_MI_AN_COMPLETE 0x0020
672 #define ADIN1111_MI_STATUS_MI_REM_FLT 0x0010
673 #define ADIN1111_MI_STATUS_MI_AN_ABLE 0x0008
674 #define ADIN1111_MI_STATUS_MI_LINK_STAT_LAT 0x0004
675 #define ADIN1111_MI_STATUS_MI_JABBER_DET 0x0002
676 #define ADIN1111_MI_STATUS_MI_EXT_CAPABLE 0x0001
679 #define ADIN1111_MI_PHY_ID1_MI_PHY_ID1 0xFFFF
680 #define ADIN1111_MI_PHY_ID1_MI_PHY_ID1_DEFAULT 0x0283
683 #define ADIN1111_MI_PHY_ID2_MI_PHY_ID2_OUI 0xFC00
684 #define ADIN1111_MI_PHY_ID2_MI_PHY_ID2_OUI_DEFAULT 0xBC00
685 #define ADIN1111_MI_PHY_ID2_MI_MODEL_NUM 0x03F0
686 #define ADIN1111_MI_PHY_ID2_MI_MODEL_NUM_DEFAULT 0x0090
687 #define ADIN1111_MI_PHY_ID2_MI_REV_NUM 0x000F
688 #define ADIN1111_MI_PHY_ID2_MI_REV_NUM_DEFAULT 0x0001
691 #define ADIN1111_MMD_ACCESS_CNTRL_MMD_ACR_FUNCTION 0xC000
692 #define ADIN1111_MMD_ACCESS_CNTRL_MMD_ACR_FUNCTION_ADDR 0x0000
693 #define ADIN1111_MMD_ACCESS_CNTRL_MMD_ACR_FUNCTION_DATA_NO_POST_INC 0x4000
694 #define ADIN1111_MMD_ACCESS_CNTRL_MMD_ACR_FUNCTION_DATA_POST_INC_RW 0x8000
695 #define ADIN1111_MMD_ACCESS_CNTRL_MMD_ACR_FUNCTION_DATA_POST_INC_W 0xC000
696 #define ADIN1111_MMD_ACCESS_CNTRL_MMD_ACR_DEVAD 0x001F
699 #define ADIN1111_PMA_PMD_CNTRL1_PMA_SFT_RST 0x8000
700 #define ADIN1111_PMA_PMD_CNTRL1_PMA_SFT_PD 0x0800
701 #define ADIN1111_PMA_PMD_CNTRL1_LB_PMA_LOC_EN 0x0001
704 #define ADIN1111_PMA_PMD_STAT1_PMA_LINK_STAT_OK_LL 0x0004
705 #define ADIN1111_PMA_PMD_STAT1_PMA_SFT_PD_ABLE 0x0002
708 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL 0x007F
709 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_CX4 0x0000
710 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_EW 0x0001
711 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_LW 0x0002
712 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_SW 0x0003
713 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_LX4 0x0004
714 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_ER 0x0005
715 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_LR 0x0006
716 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_SR 0x0007
717 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_LRM 0x0008
718 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_T 0x0009
719 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_KX4 0x000A
720 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_KR 0x000B
721 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_1000BASE_T 0x000C
722 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_1000BASE_KX 0x000D
723 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_100BASE_TX 0x000E
724 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10BASE_T 0x000F
725 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10_1GBASE_PRX_D1 0x0010
726 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10_1GBASE_PRX_D2 0x0011
727 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10_1GBASE_PRX_D3 0x0012
728 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_PR_D1 0x0013
729 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_PR_D2 0x0014
730 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_PR_D3 0x0015
731 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10_1GBASE_PRX_U1 0x0016
732 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10_1GBASE_PRX_U2 0x0017
733 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10_1GBASE_PRX_U3 0x0018
734 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_PR_U1 0x0019
735 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_PR_U3 0x001A
736 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_RESERVED 0x001B
737 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_PR_D4 0x001C
738 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10_1GBASE_PRX_D4 0x001D
739 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GBASE_PR_U4 0x001E
740 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10_1GBASE_PRX_U4 0x001F
741 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_40GBASE_KR4 0x0020
742 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_40GBASE_CR4 0x0021
743 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_40GBASE_SR4 0x0022
744 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_40GBASE_LR4 0x0023
745 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_40GBASE_FR 0x0024
746 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_40GBASE_ER4 0x0025
747 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_40GBASE_T 0x0026
748 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_100GBASE_CR10 0x0028
749 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_100GBASE_SR10 0x0029
750 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_100GBASE_LR4 0x002A
751 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_100GBASE_ER4 0x002B
752 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_100GBASE_KP4 0x002C
753 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_100GBASE_KR4 0x002D
754 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_100GBASE_CR4 0x002E
755 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_100GBASE_SR4 0x002F
756 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_2_5GBASE_T 0x0030
757 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_5GBASE_T 0x0031
758 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GPASS_XR_D 0x0032
759 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_10GPASS_XR_U 0x0033
760 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_BASE_H 0x0034
761 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_25GBASE_LR 0x0035
762 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_25GBASE_ER 0x0036
763 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_25GBASE_T 0x0037
764 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_25GBASE_CR 0x0038
765 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_25GBASE_KR 0x0039
766 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_25GBASE_SR 0x003A
767 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_BASE_T1 0x003D
768 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_200GBASE_DR4 0x0053
769 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_200GBASE_FR4 0x0054
770 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_200GBASE_LR4 0x0055
771 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_400GBASE_SR16 0x0059
772 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_400GBASE_DR4 0x005A
773 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_400GBASE_FR8 0x005B
774 #define ADIN1111_PMA_PMD_CNTRL2_PMA_PMD_TYPE_SEL_400GBASE_LR8 0x005C
777 #define ADIN1111_PMA_PMD_STAT2_PMA_PMD_PRESENT 0xC000
778 #define ADIN1111_PMA_PMD_STAT2_PMA_PMD_EXT_ABLE 0x0200
779 #define ADIN1111_PMA_PMD_STAT2_PMA_PMD_TX_DIS_ABLE 0x0100
780 #define ADIN1111_PMA_PMD_STAT2_LB_PMA_LOC_ABLE 0x0001
783 #define ADIN1111_PMA_PMD_TX_DIS_PMA_TX_DIS 0x0001
786 #define ADIN1111_PMA_PMD_EXT_ABILITY_PMA_PMD_BT1_ABLE 0x0800
789 #define ADIN1111_PMA_PMD_BT1_ABILITY_B10S_ABILITY 0x0008
790 #define ADIN1111_PMA_PMD_BT1_ABILITY_B10L_ABILITY 0x0004
791 #define ADIN1111_PMA_PMD_BT1_ABILITY_B1000_ABILITY 0x0002
792 #define ADIN1111_PMA_PMD_BT1_ABILITY_B100_ABILITY 0x0001
795 #define ADIN1111_PMA_PMD_BT1_CONTROL_CFG_MST 0x4000
796 #define ADIN1111_PMA_PMD_BT1_CONTROL_BT1_TYPE_SEL 0x000F
797 #define ADIN1111_PMA_PMD_BT1_CONTROL_BT1_TYPE_SEL_100BASE_T 0x0000
798 #define ADIN1111_PMA_PMD_BT1_CONTROL_BT1_TYPE_SEL_1000BASE_T 0x0001
799 #define ADIN1111_PMA_PMD_BT1_CONTROL_BT1_TYPE_SEL_10BASE_T1L 0x0002
800 #define ADIN1111_PMA_PMD_BT1_CONTROL_BT1_TYPE_SEL_10BASE_T1S 0x0003
803 #define ADIN1111_B10L_PMA_CNTRL_B10L_TX_DIS_MODE_EN 0x4000
804 #define ADIN1111_B10L_PMA_CNTRL_B10L_TX_LVL_HI 0x1000
805 #define ADIN1111_B10L_PMA_CNTRL_B10L_EEE 0x0400
806 #define ADIN1111_B10L_PMA_CNTRL_B10L_LB_PMA_LOC_EN 0x0001
809 #define ADIN1111_B10L_PMA_STAT_B10L_LB_PMA_LOC_ABLE 0x2000
810 #define ADIN1111_B10L_PMA_STAT_B10L_TX_LVL_HI_ABLE 0x1000
811 #define ADIN1111_B10L_PMA_STAT_B10L_PMA_SFT_PD_ABLE 0x0800
812 #define ADIN1111_B10L_PMA_STAT_B10L_EEE_ABLE 0x0400
815 #define ADIN1111_B10L_TEST_MODE_CNTRL_B10L_TX_TEST_MODE 0xE000
818 #define ADIN1111_CR_STBL_CHK_FOFFS_SAT_THR_CR_STBL_CHK_FOFFS_SAT_THR 0x0400
821 #define ADIN1111_B10L_PMA_LINK_STAT_B10L_REM_RCVR_STAT_OK_LL 0x0200
822 #define ADIN1111_B10L_PMA_LINK_STAT_B10L_REM_RCVR_STAT_OK 0x0100
823 #define ADIN1111_B10L_PMA_LINK_STAT_B10L_LOC_RCVR_STAT_OK_LL 0x0080
824 #define ADIN1111_B10L_PMA_LINK_STAT_B10L_LOC_RCVR_STAT_OK 0x0040
825 #define ADIN1111_B10L_PMA_LINK_STAT_B10L_DSCR_STAT_OK_LL 0x0020
826 #define ADIN1111_B10L_PMA_LINK_STAT_B10L_DSCR_STAT_OK 0x0010
827 #define ADIN1111_B10L_PMA_LINK_STAT_B10L_LINK_STAT_OK_LL 0x0002
828 #define ADIN1111_B10L_PMA_LINK_STAT_B10L_LINK_STAT_OK 0x0001
831 #define ADIN1111_PCS_CNTRL1_PCS_SFT_RST 0x8000
832 #define ADIN1111_PCS_CNTRL1_LB_PCS_EN 0x4000
833 #define ADIN1111_PCS_CNTRL1_PCS_SFT_PD 0x0800
836 #define ADIN1111_PCS_STAT1_PCS_SFT_PD_ABLE 0x0002
839 #define ADIN1111_PCS_STAT2_PCS_PRESENT 0xC000
842 #define ADIN1111_B10L_PCS_CNTRL_B10L_LB_PCS_EN 0x4000
845 #define ADIN1111_B10L_PCS_STAT_B10L_PCS_DSCR_STAT_OK_LL 0x0004
848 #define ADIN1111_AN_CONTROL_AN_EN 0x1000
849 #define ADIN1111_AN_CONTROL_AN_RESTART 0x0200
852 #define ADIN1111_AN_STATUS_AN_PAGE_RX 0x0040
853 #define ADIN1111_AN_STATUS_AN_COMPLETE 0x0020
854 #define ADIN1111_AN_STATUS_AN_REMOTE_FAULT 0x0010
855 #define ADIN1111_AN_STATUS_AN_ABLE 0x0008
856 #define ADIN1111_AN_STATUS_AN_LINK_STATUS 0x0004
859 #define ADIN1111_AN_ADV_ABILITY_L_AN_ADV_NEXT_PAGE_REQ 0x8000
860 #define ADIN1111_AN_ADV_ABILITY_L_AN_ADV_ACK 0x4000
861 #define ADIN1111_AN_ADV_ABILITY_L_AN_ADV_REMOTE_FAULT 0x2000
862 #define ADIN1111_AN_ADV_ABILITY_L_AN_ADV_FORCE_MS 0x1000
863 #define ADIN1111_AN_ADV_ABILITY_L_AN_ADV_PAUSE 0x0C00
864 #define ADIN1111_AN_ADV_ABILITY_L_AN_ADV_SELECTOR 0x001F
865 #define ADIN1111_AN_ADV_ABILITY_L_AN_ADV_SELECTOR_DEFAULT 0x0001
868 #define ADIN1111_AN_ADV_ABILITY_M_AN_ADV_B10L 0x4000
869 #define ADIN1111_AN_ADV_ABILITY_M_AN_ADV_MST 0x0010
872 #define ADIN1111_AN_ADV_ABILITY_H_AN_ADV_B10L_TX_LVL_HI_ABL 0x2000
873 #define ADIN1111_AN_ADV_ABILITY_H_AN_ADV_B10L_TX_LVL_HI_REQ 0x1000
876 #define ADIN1111_AN_LP_ADV_ABILITY_L_AN_LP_ADV_NEXT_PAGE_REQ 0x8000
877 #define ADIN1111_AN_LP_ADV_ABILITY_L_AN_LP_ADV_ACK 0x4000
878 #define ADIN1111_AN_LP_ADV_ABILITY_L_AN_LP_ADV_REMOTE_FAULT 0x2000
879 #define ADIN1111_AN_LP_ADV_ABILITY_L_AN_LP_ADV_FORCE_MS 0x1000
880 #define ADIN1111_AN_LP_ADV_ABILITY_L_AN_LP_ADV_PAUSE 0x0C00
881 #define ADIN1111_AN_LP_ADV_ABILITY_L_AN_LP_ADV_SELECTOR 0x001F
884 #define ADIN1111_AN_LP_ADV_ABILITY_M_AN_LP_ADV_B10L 0x4000
885 #define ADIN1111_AN_LP_ADV_ABILITY_M_AN_LP_ADV_B1000 0x0080
886 #define ADIN1111_AN_LP_ADV_ABILITY_M_AN_LP_ADV_B10S_FD 0x0040
887 #define ADIN1111_AN_LP_ADV_ABILITY_M_AN_LP_ADV_B100 0x0020
888 #define ADIN1111_AN_LP_ADV_ABILITY_M_AN_LP_ADV_MST 0x0010
891 #define ADIN1111_AN_LP_ADV_ABILITY_H_AN_LP_ADV_B10L_EEE 0x4000
892 #define ADIN1111_AN_LP_ADV_ABILITY_H_AN_LP_ADV_B10L_TX_LVL_HI_ABL 0x2000
893 #define ADIN1111_AN_LP_ADV_ABILITY_H_AN_LP_ADV_B10L_TX_LVL_HI_REQ 0x1000
894 #define ADIN1111_AN_LP_ADV_ABILITY_H_AN_LP_ADV_B10S_HD 0x0800
897 #define ADIN1111_AN_NEXT_PAGE_L_AN_NP_NEXT_PAGE_REQ 0x8000
898 #define ADIN1111_AN_NEXT_PAGE_L_AN_NP_ACK 0x4000
899 #define ADIN1111_AN_NEXT_PAGE_L_AN_NP_MESSAGE_PAGE 0x2000
900 #define ADIN1111_AN_NEXT_PAGE_L_AN_NP_ACK2 0x1000
901 #define ADIN1111_AN_NEXT_PAGE_L_AN_NP_TOGGLE 0x0800
902 #define ADIN1111_AN_NEXT_PAGE_L_AN_NP_MESSAGE_CODE 0x07FF
903 #define ADIN1111_AN_NEXT_PAGE_L_AN_NP_MESSAGE_CODE_NULL 0x0001
904 #define ADIN1111_AN_NEXT_PAGE_L_AN_NP_MESSAGE_CODE_OUI_TAGGED 0x0005
905 #define ADIN1111_AN_NEXT_PAGE_L_AN_NP_MESSAGE_CODE_AN_DEV_ID_TAG 0x0006
908 #define ADIN1111_AN_NEXT_PAGE_M_AN_NP_UNFORMATTED1 0xFFFF
911 #define ADIN1111_AN_NEXT_PAGE_H_AN_NP_UNFORMATTED2 0xFFFF
914 #define ADIN1111_AN_LP_NEXT_PAGE_L_AN_LP_NP_NEXT_PAGE_REQ 0x8000
915 #define ADIN1111_AN_LP_NEXT_PAGE_L_AN_LP_NP_ACK 0x4000
916 #define ADIN1111_AN_LP_NEXT_PAGE_L_AN_LP_NP_MESSAGE_PAGE 0x2000
917 #define ADIN1111_AN_LP_NEXT_PAGE_L_AN_LP_NP_ACK2 0x1000
918 #define ADIN1111_AN_LP_NEXT_PAGE_L_AN_LP_NP_TOGGLE 0x0800
919 #define ADIN1111_AN_LP_NEXT_PAGE_L_AN_LP_NP_MESSAGE_CODE 0x07FF
920 #define ADIN1111_AN_LP_NEXT_PAGE_L_AN_LP_NP_MESSAGE_CODE_NULL 0x0001
921 #define ADIN1111_AN_LP_NEXT_PAGE_L_AN_LP_NP_MESSAGE_CODE_OUI_TAGGED 0x0005
922 #define ADIN1111_AN_LP_NEXT_PAGE_L_AN_LP_NP_MESSAGE_CODE_AN_DEV_ID_TAG 0x0006
925 #define ADIN1111_AN_LP_NEXT_PAGE_M_AN_LP_NP_UNFORMATTED1 0xFFFF
928 #define ADIN1111_AN_LP_NEXT_PAGE_H_AN_LP_NP_UNFORMATTED2 0xFFFF
931 #define ADIN1111_AN_B10_ADV_ABILITY_AN_B10_ADV_B10L 0x8000
932 #define ADIN1111_AN_B10_ADV_ABILITY_AN_B10_ADV_B10L_EEE 0x4000
933 #define ADIN1111_AN_B10_ADV_ABILITY_AN_B10_ADV_B10L_TX_LVL_HI_ABL 0x2000
934 #define ADIN1111_AN_B10_ADV_ABILITY_AN_B10_ADV_B10L_TX_LVL_HI_REQ 0x1000
937 #define ADIN1111_AN_B10_LP_ADV_ABILITY_AN_B10_LP_ADV_B10L 0x8000
938 #define ADIN1111_AN_B10_LP_ADV_ABILITY_AN_B10_LP_ADV_B10L_EEE 0x4000
939 #define ADIN1111_AN_B10_LP_ADV_ABILITY_AN_B10_LP_ADV_B10L_TX_LVL_HI_ABL 0x2000
940 #define ADIN1111_AN_B10_LP_ADV_ABILITY_AN_B10_LP_ADV_B10L_TX_LVL_HI_REQ 0x1000
941 #define ADIN1111_AN_B10_LP_ADV_ABILITY_AN_B10_LP_ADV_B10S_FD 0x0080
942 #define ADIN1111_AN_B10_LP_ADV_ABILITY_AN_B10_LP_ADV_B10S_HD 0x0040
945 #define ADIN1111_AN_FRC_MODE_EN_AN_FRC_MODE_EN 0x0001
948 #define ADIN1111_AN_STATUS_EXTRA_AN_LP_NP_RX 0x0400
949 #define ADIN1111_AN_STATUS_EXTRA_AN_INC_LINK 0x0200
950 #define ADIN1111_AN_STATUS_EXTRA_AN_TX_LVL_RSLTN 0x0180
951 #define ADIN1111_AN_STATUS_EXTRA_AN_TX_LVL_RSLTN_NOT_RUN 0x0000
952 #define ADIN1111_AN_STATUS_EXTRA_AN_TX_LVL_RSLTN_SUCCESS_1_0V 0x0100
953 #define ADIN1111_AN_STATUS_EXTRA_AN_TX_LVL_RSLTN_SUCCESS_2_4V 0x0180
954 #define ADIN1111_AN_STATUS_EXTRA_AN_MS_CONFIG_RSLTN 0x0060
955 #define ADIN1111_AN_STATUS_EXTRA_AN_MS_CONFIG_RSLTN_NOT_RUN 0x0000
956 #define ADIN1111_AN_STATUS_EXTRA_AN_MS_CONFIG_RSLTN_CONFIG_FAULT 0x0020
957 #define ADIN1111_AN_STATUS_EXTRA_AN_MS_CONFIG_RSLTN_SUCCESS_SLAVE 0x0040
958 #define ADIN1111_AN_STATUS_EXTRA_AN_MS_CONFIG_RSLTN_SUCCESS_MASTER 0x0060
959 #define ADIN1111_AN_STATUS_EXTRA_AN_HCD_TECH 0x001E
960 #define ADIN1111_AN_STATUS_EXTRA_AN_HCD_TECH_NULL 0x0000
961 #define ADIN1111_AN_STATUS_EXTRA_AN_HCD_TECH_10BASE_T1L 0x0002
962 #define ADIN1111_AN_STATUS_EXTRA_AN_LINK_GOOD 0x0001
965 #define ADIN1111_AN_PHY_INST_STATUS_IS_AN_TX_EN 0x0010
966 #define ADIN1111_AN_PHY_INST_STATUS_IS_CFG_MST 0x0008
967 #define ADIN1111_AN_PHY_INST_STATUS_IS_CFG_SLV 0x0004
968 #define ADIN1111_AN_PHY_INST_STATUS_IS_TX_LVL_HI 0x0002
969 #define ADIN1111_AN_PHY_INST_STATUS_IS_TX_LVL_LO 0x0001
972 #define ADIN1111_MMD1_DEV_ID1_MMD1_DEV_ID1 0xFFFF
973 #define ADIN1111_MMD1_DEV_ID1_MMD1_DEV_ID1_DEFAULT 0x0283
976 #define ADIN1111_MMD1_DEV_ID2_MMD1_DEV_ID2_OUI 0xFC00
977 #define ADIN1111_MMD1_DEV_ID2_MMD1_DEV_ID2_OUI_DEFAULT 0xBC00
978 #define ADIN1111_MMD1_DEV_ID2_MMD1_MODEL_NUM 0x03F0
979 #define ADIN1111_MMD1_DEV_ID2_MMD1_MODEL_NUM_DEFAULT 0x0090
980 #define ADIN1111_MMD1_DEV_ID2_MMD1_REV_NUM 0x000F
981 #define ADIN1111_MMD1_DEV_ID2_MMD1_REV_NUM_DEFAULT 0x0001
984 #define ADIN1111_MMD1_STATUS_MMD1_STATUS 0xC000
985 #define ADIN1111_MMD1_STATUS_MMD1_STATUS_DEV_RESP 0x8000
988 #define ADIN1111_CRSM_IRQ_STATUS_CRSM_SW_IRQ_LH 0x8000
989 #define ADIN1111_CRSM_IRQ_STATUS_CRSM_HRD_RST_IRQ_LH 0x1000
992 #define ADIN1111_CRSM_IRQ_MASK_CRSM_SW_IRQ_REQ 0x8000
993 #define ADIN1111_CRSM_IRQ_MASK_CRSM_HRD_RST_IRQ_EN 0x1000
996 #define ADIN1111_CRSM_SFT_RST_CRSM_SFT_RST 0x0001
999 #define ADIN1111_CRSM_SFT_PD_CNTRL_CRSM_SFT_PD 0x0001
1002 #define ADIN1111_CRSM_PHY_SUBSYS_RST_CRSM_PHY_SUBSYS_RST 0x0001
1005 #define ADIN1111_CRSM_MAC_IF_RST_CRSM_MAC_IF_RST 0x0001
1008 #define ADIN1111_CRSM_STAT_CRSM_SFT_PD_RDY 0x0002
1009 #define ADIN1111_CRSM_STAT_CRSM_SYS_RDY 0x0001
1012 #define ADIN1111_CRSM_PMG_CNTRL_CRSM_FRC_OSC_EN 0x0001
1015 #define ADIN1111_CRSM_DIAG_CLK_CTRL_CRSM_DIAG_CLK_EN 0x0001
1018 #define ADIN1111_MGMT_PRT_PKG_MGMT_PRT_PKG_VAL 0x003F
1021 #define ADIN1111_MGMT_MDIO_CNTRL_MGMT_GRP_MDIO_EN 0x0001
1024 #define ADIN1111_DIGIO_PINMUX_DIGIO_TSTIMER_PINMUX 0x00C0
1025 #define ADIN1111_DIGIO_PINMUX_DIGIO_TSTIMER_PINMUX_RXD_1 0x0000
1026 #define ADIN1111_DIGIO_PINMUX_DIGIO_TSTIMER_PINMUX_LED_0 0x0040
1027 #define ADIN1111_DIGIO_PINMUX_DIGIO_TSTIMER_PINMUX_INT 0x0080
1028 #define ADIN1111_DIGIO_PINMUX_DIGIO_TSTIMER_PINMUX_NONE 0x00C0
1029 #define ADIN1111_DIGIO_PINMUX_DIGIO_TSCAPT_PINMUX 0x0030
1030 #define ADIN1111_DIGIO_PINMUX_DIGIO_TSCAPT_PINMUX_TXD_1 0x0000
1031 #define ADIN1111_DIGIO_PINMUX_DIGIO_TSCAPT_PINMUX_LED_1 0x0010
1032 #define ADIN1111_DIGIO_PINMUX_DIGIO_TSCAPT_PINMUX_MDIO 0x0020
1033 #define ADIN1111_DIGIO_PINMUX_DIGIO_TSCAPT_PINMUX_NONE 0x0030
1034 #define ADIN1111_DIGIO_PINMUX_DIGIO_LED1_PINMUX 0x000E
1035 #define ADIN1111_DIGIO_PINMUX_DIGIO_LED1_PINMUX_LED_1 0x0000
1036 #define ADIN1111_DIGIO_PINMUX_DIGIO_LED1_PINMUX_TX_ER 0x0002
1037 #define ADIN1111_DIGIO_PINMUX_DIGIO_LED1_PINMUX_TX_EN 0x0004
1038 #define ADIN1111_DIGIO_PINMUX_DIGIO_LED1_PINMUX_TX_CLK 0x0006
1039 #define ADIN1111_DIGIO_PINMUX_DIGIO_LED1_PINMUX_TXD_0 0x0008
1040 #define ADIN1111_DIGIO_PINMUX_DIGIO_LED1_PINMUX_TXD_2 0x000A
1041 #define ADIN1111_DIGIO_PINMUX_DIGIO_LED1_PINMUX_LINK_ST 0x000C
1042 #define ADIN1111_DIGIO_PINMUX_DIGIO_LED1_PINMUX_NONE 0x000E
1043 #define ADIN1111_DIGIO_PINMUX_DIGIO_LINK_ST_POLARITY 0x0001
1044 #define ADIN1111_DIGIO_PINMUX_DIGIO_LINK_ST_POLARITY_ASSERT_HIGH 0x0000
1045 #define ADIN1111_DIGIO_PINMUX_DIGIO_LINK_ST_POLARITY_ASSERT_LOW 0x0001
1048 #define ADIN1111_LED0_BLINK_TIME_CNTRL_LED0_ON_N4MS 0xFF00
1049 #define ADIN1111_LED0_BLINK_TIME_CNTRL_LED0_OFF_N4MS 0x00FF
1052 #define ADIN1111_LED1_BLINK_TIME_CNTRL_LED1_ON_N4MS 0xFF00
1053 #define ADIN1111_LED1_BLINK_TIME_CNTRL_LED1_OFF_N4MS 0x00FF
1056 #define ADIN1111_LED_CNTRL_LED1_EN 0x8000
1057 #define ADIN1111_LED_CNTRL_LED1_LINK_ST_QUALIFY 0x4000
1058 #define ADIN1111_LED_CNTRL_LED1_MODE 0x2000
1059 #define ADIN1111_LED_CNTRL_LED1_FUNCTION 0x1F00
1060 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_LINKUP_TXRX_ACTIVITY 0x0000
1061 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_LINKUP_TX_ACTIVITY 0x0100
1062 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_LINKUP_RX_ACTIVITY 0x0200
1063 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_LINKUP_ONLY 0x0300
1064 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_TXRX_ACTIVITY 0x0400
1065 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_TX_ACTIVITY 0x0500
1066 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_RX_ACTIVITY 0x0600
1067 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_LINKUP_RX_ER 0x0700
1068 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_LINKUP_RX_TX_ER 0x0800
1069 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_RX_ER 0x0900
1070 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_RX_TX_ER 0x0A00
1071 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_TX_SOP 0x0B00
1072 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_RX_SOP 0x0C00
1073 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_ON 0x0D00
1074 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_OFF 0x0E00
1075 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_BLINK 0x0F00
1076 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_TX_LEVEL_2P4 0x1000
1077 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_TX_LEVEL_1P0 0x1100
1078 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_MASTER 0x1200
1079 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_SLAVE 0x1300
1080 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_INCOMPATIBLE_LINK_CFG 0x1400
1081 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_AN_LINK_GOOD 0x1500
1082 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_AN_COMPLETE 0x1600
1083 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_TS_TIMER 0x1700
1084 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_LOC_RCVR_STATUS 0x1800
1085 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_REM_RCVR_STATUS 0x1900
1086 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_CLK25_REF 0x1A00
1087 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_TX_TCLK 0x1B00
1088 #define ADIN1111_LED_CNTRL_LED1_FUNCTION_CLK_120MHZ 0x1C00
1089 #define ADIN1111_LED_CNTRL_LED0_EN 0x0080
1090 #define ADIN1111_LED_CNTRL_LED0_LINK_ST_QUALIFY 0x0040
1091 #define ADIN1111_LED_CNTRL_LED0_MODE 0x0020
1092 #define ADIN1111_LED_CNTRL_LED0_FUNCTION 0x001F
1093 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_LINKUP_TXRX_ACTIVITY 0x0000
1094 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_LINKUP_TX_ACTIVITY 0x0001
1095 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_LINKUP_RX_ACTIVITY 0x0002
1096 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_LINKUP_ONLY 0x0003
1097 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_TXRX_ACTIVITY 0x0004
1098 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_TX_ACTIVITY 0x0005
1099 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_RX_ACTIVITY 0x0006
1100 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_LINKUP_RX_ER 0x0007
1101 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_LINKUP_RX_TX_ER 0x0008
1102 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_RX_ER 0x0009
1103 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_RX_TX_ER 0x000A
1104 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_TX_SOP 0x000B
1105 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_RX_SOP 0x000C
1106 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_ON 0x000D
1107 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_OFF 0x000E
1108 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_BLINK 0x000F
1109 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_TX_LEVEL_2P4 0x0010
1110 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_TX_LEVEL_1P0 0x0011
1111 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_MASTER 0x0012
1112 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_SLAVE 0x0013
1113 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_INCOMPATIBLE_LINK_CFG 0x0014
1114 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_AN_LINK_GOOD 0x0015
1115 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_AN_COMPLETE 0x0016
1116 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_TS_TIMER 0x0017
1117 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_LOC_RCVR_STATUS 0x0018
1118 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_REM_RCVR_STATUS 0x0019
1119 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_CLK25_REF 0x001A
1120 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_TX_TCLK 0x001B
1121 #define ADIN1111_LED_CNTRL_LED0_FUNCTION_CLK_120MHZ 0x001C
1124 #define ADIN1111_LED_POLARITY_LED1_POLARITY 0x000C
1125 #define ADIN1111_LED_POLARITY_LED1_POLARITY_AUTOSENSE 0x0000
1126 #define ADIN1111_LED_POLARITY_LED1_POLARITY_ACTIVE_HIGH 0x0004
1127 #define ADIN1111_LED_POLARITY_LED1_POLARITY_ACTIVE_LOW 0x0008
1128 #define ADIN1111_LED_POLARITY_LED0_POLARITY 0x0003
1129 #define ADIN1111_LED_POLARITY_LED0_POLARITY_AUTOSENSE 0x0000
1130 #define ADIN1111_LED_POLARITY_LED0_POLARITY_ACTIVE_HIGH 0x0001
1131 #define ADIN1111_LED_POLARITY_LED0_POLARITY_ACTIVE_LOW 0x0002
1134 #define ADIN1111_MMD2_DEV_ID1_MMD2_DEV_ID1 0xFFFF
1135 #define ADIN1111_MMD2_DEV_ID1_MMD2_DEV_ID1_DEFAULT 0x0283
1138 #define ADIN1111_MMD2_DEV_ID2_MMD2_DEV_ID2_OUI 0xFC00
1139 #define ADIN1111_MMD2_DEV_ID2_MMD2_DEV_ID2_OUI_DEFAULT 0xBC00
1140 #define ADIN1111_MMD2_DEV_ID2_MMD2_MODEL_NUM 0x03F0
1141 #define ADIN1111_MMD2_DEV_ID2_MMD2_MODEL_NUM_DEFAULT 0x0090
1142 #define ADIN1111_MMD2_DEV_ID2_MMD2_REV_NUM 0x000F
1143 #define ADIN1111_MMD2_DEV_ID2_MMD2_REV_NUM_DEFAULT 0x0001
1146 #define ADIN1111_MMD2_STATUS_MMD2_STATUS 0xC000
1147 #define ADIN1111_MMD2_STATUS_MMD2_STATUS_DEV_RESP 0x8000
1150 #define ADIN1111_PHY_SUBSYS_IRQ_STATUS_MAC_IF_FC_FG_IRQ_LH 0x4000
1151 #define ADIN1111_PHY_SUBSYS_IRQ_STATUS_MAC_IF_EBUF_ERR_IRQ_LH 0x2000
1152 #define ADIN1111_PHY_SUBSYS_IRQ_STATUS_AN_STAT_CHNG_IRQ_LH 0x0800
1153 #define ADIN1111_PHY_SUBSYS_IRQ_STATUS_LINK_STAT_CHNG_LH 0x0002
1156 #define ADIN1111_PHY_SUBSYS_IRQ_MASK_MAC_IF_FC_FG_IRQ_EN 0x4000
1157 #define ADIN1111_PHY_SUBSYS_IRQ_MASK_MAC_IF_EBUF_ERR_IRQ_EN 0x2000
1158 #define ADIN1111_PHY_SUBSYS_IRQ_MASK_AN_STAT_CHNG_IRQ_EN 0x0800
1159 #define ADIN1111_PHY_SUBSYS_IRQ_MASK_LINK_STAT_CHNG_IRQ_EN 0x0002
1162 #define ADIN1111_FC_EN_FC_EN 0x0001
1165 #define ADIN1111_FC_IRQ_EN_FC_IRQ_EN 0x0001
1168 #define ADIN1111_FC_TX_SEL_FC_TX_SEL 0x0001
1171 #define ADIN1111_FG_EN_FG_EN 0x0001
1174 #define ADIN1111_FG_CNTRL_RSTRT_FG_RSTRT 0x0008
1175 #define ADIN1111_FG_CNTRL_RSTRT_FG_CNTRL 0x0007
1176 #define ADIN1111_FG_CNTRL_RSTRT_FG_CNTRL_NO_FRAMES 0x0000
1177 #define ADIN1111_FG_CNTRL_RSTRT_FG_CNTRL_RANDOM 0x0001
1178 #define ADIN1111_FG_CNTRL_RSTRT_FG_CNTRL_ALL_ZEROS 0x0002
1179 #define ADIN1111_FG_CNTRL_RSTRT_FG_CNTRL_ALL_ONES 0x0003
1180 #define ADIN1111_FG_CNTRL_RSTRT_FG_CNTRL_ALT 0x0004
1181 #define ADIN1111_FG_CNTRL_RSTRT_FG_CNTRL_DEC 0x0005
1184 #define ADIN1111_FG_CONT_MODE_EN_FG_CONT_MODE_EN 0x0001
1187 #define ADIN1111_FG_IRQ_EN_FG_IRQ_EN 0x0001
1190 #define ADIN1111_FG_DONE_FG_DONE 0x0001
1193 #define ADIN1111_MAC_IF_LOOPBACK_MAC_IF_REM_LB_RX_SUP_EN 0x0008
1194 #define ADIN1111_MAC_IF_LOOPBACK_MAC_IF_REM_LB_EN 0x0004
1195 #define ADIN1111_MAC_IF_LOOPBACK_MAC_IF_LB_TX_SUP_EN 0x0002
1196 #define ADIN1111_MAC_IF_LOOPBACK_MAC_IF_LB_EN 0x0001
1199 #define ADIN1111_MAC_IF_SOP_CNTRL_MAC_IF_TX_SOP_LEN_CHK_EN 0x0020
1200 #define ADIN1111_MAC_IF_SOP_CNTRL_MAC_IF_TX_SOP_SFD_EN 0x0010
1201 #define ADIN1111_MAC_IF_SOP_CNTRL_MAC_IF_TX_SOP_DET_EN 0x0008
1202 #define ADIN1111_MAC_IF_SOP_CNTRL_MAC_IF_RX_SOP_LEN_CHK_EN 0x0004
1203 #define ADIN1111_MAC_IF_SOP_CNTRL_MAC_IF_RX_SOP_SFD_EN 0x0002
1204 #define ADIN1111_MAC_IF_SOP_CNTRL_MAC_IF_RX_SOP_DET_EN 0x0001
1207 #define ADIN1111_ADDR_FILT_UPRn(index) (ADIN1111_ADDR_FILT_UPR0 + ((index) * 2))
1208 #define ADIN1111_ADDR_FILT_LWRn(index) (ADIN1111_ADDR_FILT_LWR0 + ((index) * 2))
1209 #define ADIN1111_ADDR_MSK_UPRn(index) (ADIN1111_ADDR_MSK_UPR0 + ((index) * 2))
1210 #define ADIN1111_ADDR_MSK_LWRn(index) (ADIN1111_ADDR_MSK_LWR0 + ((index) * 2))
Structure describing a buffer that spans multiple chunks.
error_t adin1111Init(NetInterface *interface)
ADIN1111 controller initialization.
void adin1111WriteReg(NetInterface *interface, uint16_t address, uint32_t data)
Write SPI register.
uint32_t adin1111ReadReg(NetInterface *interface, uint16_t address)
Read SPI register.
void adin1111EnableIrq(NetInterface *interface)
Enable interrupts.
void adin1111Tick(NetInterface *interface)
ADIN1111 timer handler.
void adin1111DumpReg(NetInterface *interface)
Dump SPI registers for debugging purpose.
error_t adin1111UpdateMacAddrFilter(NetInterface *interface)
Configure MAC address filtering.
bool_t adin1111IrqHandler(NetInterface *interface)
ADIN1111 interrupt service routine.
void adin1111WritePhyReg(NetInterface *interface, uint8_t address, uint16_t data)
Write PHY register.
uint16_t adin1111ReadPhyReg(NetInterface *interface, uint8_t address)
Read PHY register.
void adin1111DumpPhyReg(NetInterface *interface)
Dump PHY registers for debugging purpose.
uint8_t adin1111CalcCrc(const uint8_t *data, size_t length)
CRC calculation.
void adin1111WriteMmdReg(NetInterface *interface, uint8_t devAddr, uint16_t regAddr, uint16_t data)
Write MMD register.
const NicDriver adin1111Driver
ADIN1111 driver.
uint16_t adin1111ReadMmdReg(NetInterface *interface, uint8_t devAddr, uint16_t regAddr)
Read MMD register.
void adin1111ReadFifo(NetInterface *interface, uint16_t *header, uint8_t *data, size_t length)
Read RX FIFO.
void adin1111EventHandler(NetInterface *interface)
ADIN1111 event handler.
void adin1111DisableIrq(NetInterface *interface)
Disable interrupts.
error_t adin1111SendPacket(NetInterface *interface, const NetBuffer *buffer, size_t offset, NetTxAncillary *ancillary)
Send a packet.
Network interface controller abstraction layer.
error_t adin1111ReceivePacket(NetInterface *interface)
Receive a packet.
void adin1111InitHook(NetInterface *interface)
ADIN1111 custom configuration.
uint32_t adin1111CalcParity(uint32_t data)
Calculate parity bit over a 32-bit data.
void adin1111WriteFifo(NetInterface *interface, uint16_t header, const uint8_t *data, size_t length)
Write TX FIFO.