LibDriver LAN8720
Loading...
Searching...
No Matches
driver_lan8720_register_test.c
Go to the documentation of this file.
1
36
38#include <stdlib.h>
39
40static lan8720_handle_t gs_handle;
41
50uint8_t lan8720_register_test(uint8_t addr)
51{
52 uint8_t res;
53 uint8_t reg;
54 uint8_t reg_check;
55 uint8_t selector;
56 uint8_t selector_check;
57 uint32_t phy_id;
58 uint8_t model_number;
59 uint8_t revision_number;
60 uint32_t phy_id_check;
61 uint8_t model_number_check;
62 uint8_t revision_number_check;
63 uint16_t cnt;
64 lan8720_speed_t speed;
65 lan8720_info_t info;
66 lan8720_bool_t enable;
69 lan8720_link_t status;
70 lan8720_pause_t pause;
71 lan8720_mode_t mode_check;
72 lan8720_polarity_t polarity;
73 lan8720_speed_indication_t speed_indication;
74
75 /* link interface function */
86
87 /* get information */
88 res = lan8720_info(&info);
89 if (res != 0)
90 {
91 lan8720_interface_debug_print("lan8720: get info failed.\n");
92
93 return 1;
94 }
95 else
96 {
97 /* print chip info */
98 lan8720_interface_debug_print("lan8720: chip is %s.\n", info.chip_name);
99 lan8720_interface_debug_print("lan8720: manufacturer is %s.\n", info.manufacturer_name);
100 lan8720_interface_debug_print("lan8720: interface is %s.\n", info.interface);
101 lan8720_interface_debug_print("lan8720: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
102 lan8720_interface_debug_print("lan8720: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
103 lan8720_interface_debug_print("lan8720: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
104 lan8720_interface_debug_print("lan8720: max current is %0.2fmA.\n", info.max_current_ma);
105 lan8720_interface_debug_print("lan8720: max temperature is %0.1fC.\n", info.temperature_max);
106 lan8720_interface_debug_print("lan8720: min temperature is %0.1fC.\n", info.temperature_min);
107 }
108
109 /* start register test */
110 lan8720_interface_debug_print("lan8720: start register test.\n");
111
112 /* lan8720_set_address/lan8720_get_address test */
113 lan8720_interface_debug_print("lan8720: lan8720_set_address/lan8720_get_address test.\n");
114
115 /* set address */
116 reg = rand() % 0x20;
117 res = lan8720_set_address(&gs_handle, reg);
118 if (res != 0)
119 {
120 lan8720_interface_debug_print("lan8720: set address failed.\n");
121
122 return 1;
123 }
124 lan8720_interface_debug_print("lan8720: set address 0x%02X.\n", reg);
125 res = lan8720_get_address(&gs_handle, &reg_check);
126 if (res != 0)
127 {
128 lan8720_interface_debug_print("lan8720: get address failed.\n");
129
130 return 1;
131 }
132 lan8720_interface_debug_print("lan8720: check address %s.\n", reg == reg_check ? "ok" : "error");
133
134 /* set address */
135 res = lan8720_set_address(&gs_handle, addr);
136 if (res != 0)
137 {
138 lan8720_interface_debug_print("lan8720: set address failed.\n");
139
140 return 1;
141 }
142
143 /* init */
144 res = lan8720_init(&gs_handle);
145 if (res != 0)
146 {
147 lan8720_interface_debug_print("lan8720: init failed.\n");
148
149 return 1;
150 }
151
152 /* lan8720_set_loop_back/lan8720_get_loop_back test */
153 lan8720_interface_debug_print("lan8720: lan8720_set_loop_back/lan8720_get_loop_back test.\n");
154
155 /* enable loop back */
156 res = lan8720_set_loop_back(&gs_handle, LAN8720_BOOL_TRUE);
157 if (res != 0)
158 {
159 lan8720_interface_debug_print("lan8720: set loop back failed.\n");
160 (void)lan8720_deinit(&gs_handle);
161
162 return 1;
163 }
164 lan8720_interface_debug_print("lan8720: enable loop back.\n");
165 res = lan8720_get_loop_back(&gs_handle, &enable);
166 if (res != 0)
167 {
168 lan8720_interface_debug_print("lan8720: get loop back failed.\n");
169 (void)lan8720_deinit(&gs_handle);
170
171 return 1;
172 }
173 lan8720_interface_debug_print("lan8720: check loop back %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
174
175 /* disable loop back */
176 res = lan8720_set_loop_back(&gs_handle, LAN8720_BOOL_FALSE);
177 if (res != 0)
178 {
179 lan8720_interface_debug_print("lan8720: set loop back failed.\n");
180 (void)lan8720_deinit(&gs_handle);
181
182 return 1;
183 }
184 lan8720_interface_debug_print("lan8720: disable loop back.\n");
185 res = lan8720_get_loop_back(&gs_handle, &enable);
186 if (res != 0)
187 {
188 lan8720_interface_debug_print("lan8720: get loop back failed.\n");
189 (void)lan8720_deinit(&gs_handle);
190
191 return 1;
192 }
193 lan8720_interface_debug_print("lan8720: check loop back %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
194
195 /* lan8720_set_speed_select/lan8720_get_speed_select test */
196 lan8720_interface_debug_print("lan8720: lan8720_set_speed_select/lan8720_get_speed_select test.\n");
197
198 /* 10M */
200 if (res != 0)
201 {
202 lan8720_interface_debug_print("lan8720: set speed select failed.\n");
203 (void)lan8720_deinit(&gs_handle);
204
205 return 1;
206 }
207 lan8720_interface_debug_print("lan8720: set speed select 10mbps.\n");
208 res = lan8720_get_speed_select(&gs_handle, &speed);
209 if (res != 0)
210 {
211 lan8720_interface_debug_print("lan8720: get speed select failed.\n");
212 (void)lan8720_deinit(&gs_handle);
213
214 return 1;
215 }
216 lan8720_interface_debug_print("lan8720: check speed select %s.\n", speed == LAN8720_SPEED_10M ? "ok" : "error");
217
218 /* 100M */
220 if (res != 0)
221 {
222 lan8720_interface_debug_print("lan8720: set speed select failed.\n");
223 (void)lan8720_deinit(&gs_handle);
224
225 return 1;
226 }
227 lan8720_interface_debug_print("lan8720: set speed select 100mbps.\n");
228 res = lan8720_get_speed_select(&gs_handle, &speed);
229 if (res != 0)
230 {
231 lan8720_interface_debug_print("lan8720: get speed select failed.\n");
232 (void)lan8720_deinit(&gs_handle);
233
234 return 1;
235 }
236 lan8720_interface_debug_print("lan8720: check speed select %s.\n", speed == LAN8720_SPEED_100M ? "ok" : "error");
237
238 /* lan8720_set_auto_negotiation/lan8720_get_auto_negotiation test */
239 lan8720_interface_debug_print("lan8720: lan8720_set_auto_negotiation/lan8720_get_auto_negotiation test.\n");
240
241 /* enable auto negotiation */
243 if (res != 0)
244 {
245 lan8720_interface_debug_print("lan8720: set auto negotiation failed.\n");
246 (void)lan8720_deinit(&gs_handle);
247
248 return 1;
249 }
250 lan8720_interface_debug_print("lan8720: enable auto negotiation failed.\n");
251 res = lan8720_get_auto_negotiation(&gs_handle, &enable);
252 if (res != 0)
253 {
254 lan8720_interface_debug_print("lan8720: get auto negotiation failed.\n");
255 (void)lan8720_deinit(&gs_handle);
256
257 return 1;
258 }
259 lan8720_interface_debug_print("lan8720: check auto negotiation %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
260
261 /* disable auto negotiation */
263 if (res != 0)
264 {
265 lan8720_interface_debug_print("lan8720: set auto negotiation failed.\n");
266 (void)lan8720_deinit(&gs_handle);
267
268 return 1;
269 }
270 lan8720_interface_debug_print("lan8720: disable auto negotiation failed.\n");
271 res = lan8720_get_auto_negotiation(&gs_handle, &enable);
272 if (res != 0)
273 {
274 lan8720_interface_debug_print("lan8720: get auto negotiation failed.\n");
275 (void)lan8720_deinit(&gs_handle);
276
277 return 1;
278 }
279 lan8720_interface_debug_print("lan8720: check auto negotiation %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
280
281 /* lan8720_set_power_down/lan8720_get_power_down test */
282 lan8720_interface_debug_print("lan8720: lan8720_set_power_down/lan8720_get_power_down test.\n");
283
284 /* enable power down */
285 res = lan8720_set_power_down(&gs_handle, LAN8720_BOOL_TRUE);
286 if (res != 0)
287 {
288 lan8720_interface_debug_print("lan8720: set power down failed.\n");
289 (void)lan8720_deinit(&gs_handle);
290
291 return 1;
292 }
293 lan8720_interface_debug_print("lan8720: enable power down.\n");
294 res = lan8720_get_power_down(&gs_handle, &enable);
295 if (res != 0)
296 {
297 lan8720_interface_debug_print("lan8720: get power down failed.\n");
298 (void)lan8720_deinit(&gs_handle);
299
300 return 1;
301 }
302 lan8720_interface_debug_print("lan8720: check power down %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
303
304 /* disable power down */
306 if (res != 0)
307 {
308 lan8720_interface_debug_print("lan8720: set power down failed.\n");
309 (void)lan8720_deinit(&gs_handle);
310
311 return 1;
312 }
313 lan8720_interface_debug_print("lan8720: disable power down.\n");
314 res = lan8720_get_power_down(&gs_handle, &enable);
315 if (res != 0)
316 {
317 lan8720_interface_debug_print("lan8720: get power down failed.\n");
318 (void)lan8720_deinit(&gs_handle);
319
320 return 1;
321 }
322 lan8720_interface_debug_print("lan8720: check power down %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
323
324 /* lan8720_set_electrical_isolation/lan8720_get_electrical_isolation test */
325 lan8720_interface_debug_print("lan8720: lan8720_set_electrical_isolation/lan8720_get_electrical_isolation test.\n");
326
327 /* enable electrical isolation */
329 if (res != 0)
330 {
331 lan8720_interface_debug_print("lan8720: set electrical isolation failed.\n");
332 (void)lan8720_deinit(&gs_handle);
333
334 return 1;
335 }
336 lan8720_interface_debug_print("lan8720: enable electrical isolation.\n");
337 res = lan8720_get_electrical_isolation(&gs_handle, &enable);
338 if (res != 0)
339 {
340 lan8720_interface_debug_print("lan8720: get electrical isolation failed.\n");
341 (void)lan8720_deinit(&gs_handle);
342
343 return 1;
344 }
345 lan8720_interface_debug_print("lan8720: check electrical isolation %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
346
347 /* disable electrical isolation */
349 if (res != 0)
350 {
351 lan8720_interface_debug_print("lan8720: set electrical isolation failed.\n");
352 (void)lan8720_deinit(&gs_handle);
353
354 return 1;
355 }
356 lan8720_interface_debug_print("lan8720: disable electrical isolation.\n");
357 res = lan8720_get_electrical_isolation(&gs_handle, &enable);
358 if (res != 0)
359 {
360 lan8720_interface_debug_print("lan8720: get electrical isolation failed.\n");
361 (void)lan8720_deinit(&gs_handle);
362
363 return 1;
364 }
365 lan8720_interface_debug_print("lan8720: check electrical isolation %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
366
367 /* lan8720_set_restart_auto_negotiate/lan8720_get_restart_auto_negotiate test */
368 lan8720_interface_debug_print("lan8720: lan8720_set_restart_auto_negotiate/lan8720_get_restart_auto_negotiate test.\n");
369
370 /* enable restart auto negotiate */
372 if (res != 0)
373 {
374 lan8720_interface_debug_print("lan8720: set restart auto negotiate failed.\n");
375 (void)lan8720_deinit(&gs_handle);
376
377 return 1;
378 }
379 lan8720_interface_debug_print("lan8720: enable restart auto negotiate.\n");
380 res = lan8720_get_restart_auto_negotiate(&gs_handle, &enable);
381 if (res != 0)
382 {
383 lan8720_interface_debug_print("lan8720: get restart auto negotiate failed.\n");
384 (void)lan8720_deinit(&gs_handle);
385
386 return 1;
387 }
388 lan8720_interface_debug_print("lan8720: check restart auto negotiate %s.\n", res == 0 ? "ok" : "error");
389
390 /* disable restart auto negotiate */
392 if (res != 0)
393 {
394 lan8720_interface_debug_print("lan8720: set restart auto negotiate failed.\n");
395 (void)lan8720_deinit(&gs_handle);
396
397 return 1;
398 }
399 lan8720_interface_debug_print("lan8720: disable restart auto negotiate.\n");
400 res = lan8720_get_restart_auto_negotiate(&gs_handle, &enable);
401 if (res != 0)
402 {
403 lan8720_interface_debug_print("lan8720: get restart auto negotiate failed.\n");
404 (void)lan8720_deinit(&gs_handle);
405
406 return 1;
407 }
408 lan8720_interface_debug_print("lan8720: check restart auto negotiate %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
409
410 /* lan8720_set_duplex_mode/lan8720_get_duplex_mode test */
411 lan8720_interface_debug_print("lan8720: lan8720_set_duplex_mode/lan8720_get_duplex_mode test.\n");
412
413 /* half duplex */
415 if (res != 0)
416 {
417 lan8720_interface_debug_print("lan8720: set duplex mode failed.\n");
418 (void)lan8720_deinit(&gs_handle);
419
420 return 1;
421 }
422 lan8720_interface_debug_print("lan8720: set half duplex mode.\n");
423 res = lan8720_get_duplex_mode(&gs_handle, &mode);
424 if (res != 0)
425 {
426 lan8720_interface_debug_print("lan8720: get duplex mode failed.\n");
427 (void)lan8720_deinit(&gs_handle);
428
429 return 1;
430 }
431 lan8720_interface_debug_print("lan8720: check duplex mode %s.\n", mode == LAN8720_DUPLEX_HALF ? "ok" : "error");
432
433 /* full duplex */
435 if (res != 0)
436 {
437 lan8720_interface_debug_print("lan8720: set duplex mode failed.\n");
438 (void)lan8720_deinit(&gs_handle);
439
440 return 1;
441 }
442 lan8720_interface_debug_print("lan8720: set full duplex mode.\n");
443 res = lan8720_get_duplex_mode(&gs_handle, &mode);
444 if (res != 0)
445 {
446 lan8720_interface_debug_print("lan8720: get duplex mode failed.\n");
447 (void)lan8720_deinit(&gs_handle);
448
449 return 1;
450 }
451 lan8720_interface_debug_print("lan8720: check duplex mode %s.\n", mode == LAN8720_DUPLEX_FULL ? "ok" : "error");
452
453 /* lan8720_get_100base_t4 test */
454 lan8720_interface_debug_print("lan8720: lan8720_get_100base_t4 test.\n");
455
456 /* get 100base t4 */
457 res = lan8720_get_100base_t4(&gs_handle, &enable);
458 if (res != 0)
459 {
460 lan8720_interface_debug_print("lan8720: get 100base t4 failed.\n");
461 (void)lan8720_deinit(&gs_handle);
462
463 return 1;
464 }
465 lan8720_interface_debug_print("lan8720: 100base t4 is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
466
467 /* lan8720_get_100base_tx_full_duplex test */
468 lan8720_interface_debug_print("lan8720: lan8720_get_100base_tx_full_duplex test.\n");
469
470 /* get 100base tx full duplex */
471 res = lan8720_get_100base_tx_full_duplex(&gs_handle, &enable);
472 if (res != 0)
473 {
474 lan8720_interface_debug_print("lan8720: get 100base tx full duplex failed.\n");
475 (void)lan8720_deinit(&gs_handle);
476
477 return 1;
478 }
479 lan8720_interface_debug_print("lan8720: 100base tx full duplex is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
480
481 /* lan8720_get_100base_tx_half_duplex test */
482 lan8720_interface_debug_print("lan8720: lan8720_get_100base_tx_half_duplex test.\n");
483
484 /* get 100base tx half duplex */
485 res = lan8720_get_100base_tx_half_duplex(&gs_handle, &enable);
486 if (res != 0)
487 {
488 lan8720_interface_debug_print("lan8720: get 100base tx half duplex failed.\n");
489 (void)lan8720_deinit(&gs_handle);
490
491 return 1;
492 }
493 lan8720_interface_debug_print("lan8720: 100base tx half duplex is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
494
495 /* lan8720_get_10base_t_full_duplex test */
496 lan8720_interface_debug_print("lan8720: lan8720_get_10base_t_full_duplex test.\n");
497
498 /* get 10base t full duplex */
499 res = lan8720_get_10base_t_full_duplex(&gs_handle, &enable);
500 if (res != 0)
501 {
502 lan8720_interface_debug_print("lan8720: get 10base t full duplex failed.\n");
503 (void)lan8720_deinit(&gs_handle);
504
505 return 1;
506 }
507 lan8720_interface_debug_print("lan8720: 10base t full duplex is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
508
509 /* lan8720_get_10base_t_half_duplex test */
510 lan8720_interface_debug_print("lan8720: lan8720_get_10base_t_half_duplex test.\n");
511
512 /* get 10base t half duplex */
513 res = lan8720_get_10base_t_half_duplex(&gs_handle, &enable);
514 if (res != 0)
515 {
516 lan8720_interface_debug_print("lan8720: get 10base t half duplex failed.\n");
517 (void)lan8720_deinit(&gs_handle);
518
519 return 1;
520 }
521 lan8720_interface_debug_print("lan8720: 10base t half duplex is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
522
523 /* lan8720_get_100base_t2_full_duplex test */
524 lan8720_interface_debug_print("lan8720: lan8720_get_100base_t2_full_duplex test.\n");
525
526 /* get 100base t2 full duplex */
527 res = lan8720_get_100base_t2_full_duplex(&gs_handle, &enable);
528 if (res != 0)
529 {
530 lan8720_interface_debug_print("lan8720: get 100base t2 full duplex failed.\n");
531 (void)lan8720_deinit(&gs_handle);
532
533 return 1;
534 }
535 lan8720_interface_debug_print("lan8720: 100base t2 full duplex is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
536
537 /* lan8720_get_100base_t2_half_duplex test */
538 lan8720_interface_debug_print("lan8720: lan8720_get_100base_t2_half_duplex test.\n");
539
540 /* get 100base t2 half duplex */
541 res = lan8720_get_100base_t2_half_duplex(&gs_handle, &enable);
542 if (res != 0)
543 {
544 lan8720_interface_debug_print("lan8720: get 100base t2 half duplex failed.\n");
545 (void)lan8720_deinit(&gs_handle);
546
547 return 1;
548 }
549 lan8720_interface_debug_print("lan8720: 100base t2 half duplex is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
550
551 /* lan8720_get_extended_status_information test */
552 lan8720_interface_debug_print("lan8720: lan8720_get_extended_status_information test.\n");
553
554 /* get extended status information */
555 res = lan8720_get_extended_status_information(&gs_handle, &enable);
556 if (res != 0)
557 {
558 lan8720_interface_debug_print("lan8720: get extended status information failed.\n");
559 (void)lan8720_deinit(&gs_handle);
560
561 return 1;
562 }
563 lan8720_interface_debug_print("lan8720: extended status information is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
564
565 /* lan8720_get_auto_negotiate_complete test */
566 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiate_complete test.\n");
567
568 /* get auto negotiate complete */
569 res = lan8720_get_auto_negotiate_complete(&gs_handle, &enable);
570 if (res != 0)
571 {
572 lan8720_interface_debug_print("lan8720: get auto negotiate complete failed.\n");
573 (void)lan8720_deinit(&gs_handle);
574
575 return 1;
576 }
577 lan8720_interface_debug_print("lan8720: auto negotiate complete is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
578
579 /* lan8720_get_remote_fault test */
580 lan8720_interface_debug_print("lan8720: lan8720_get_remote_fault test.\n");
581
582 /* get remote fault */
583 res = lan8720_get_remote_fault(&gs_handle, &enable);
584 if (res != 0)
585 {
586 lan8720_interface_debug_print("lan8720: get remote fault failed.\n");
587 (void)lan8720_deinit(&gs_handle);
588
589 return 1;
590 }
591 lan8720_interface_debug_print("lan8720: remote fault is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
592
593 /* lan8720_get_auto_negotiate_ability test */
594 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiate_ability test.\n");
595
596 /* get auto negotiate ability */
597 res = lan8720_get_auto_negotiate_ability(&gs_handle, &enable);
598 if (res != 0)
599 {
600 lan8720_interface_debug_print("lan8720: get auto negotiate ability failed.\n");
601 (void)lan8720_deinit(&gs_handle);
602
603 return 1;
604 }
605 lan8720_interface_debug_print("lan8720: auto negotiate ability is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
606
607 /* lan8720_get_link_status test */
608 lan8720_interface_debug_print("lan8720: lan8720_get_link_status test.\n");
609
610 /* get link status */
611 res = lan8720_get_link_status(&gs_handle, &status);
612 if (res != 0)
613 {
614 lan8720_interface_debug_print("lan8720: get link status failed.\n");
615 (void)lan8720_deinit(&gs_handle);
616
617 return 1;
618 }
619 lan8720_interface_debug_print("lan8720: link status is %s.\n", status == LAN8720_LINK_DOWN ? "down" : "up");
620
621 /* lan8720_get_jabber_detect test */
622 lan8720_interface_debug_print("lan8720: lan8720_get_jabber_detect test.\n");
623
624 /* get jabber detect */
625 res = lan8720_get_jabber_detect(&gs_handle, &enable);
626 if (res != 0)
627 {
628 lan8720_interface_debug_print("lan8720: get jabber detect failed.\n");
629 (void)lan8720_deinit(&gs_handle);
630
631 return 1;
632 }
633 lan8720_interface_debug_print("lan8720: jabber detect is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
634
635 /* lan8720_get_extended_capabilities test */
636 lan8720_interface_debug_print("lan8720: lan8720_get_extended_capabilities test.\n");
637
638 /* get extended capabilities */
639 res = lan8720_get_extended_capabilities(&gs_handle, &enable);
640 if (res != 0)
641 {
642 lan8720_interface_debug_print("lan8720: get extended capabilities failed.\n");
643 (void)lan8720_deinit(&gs_handle);
644
645 return 1;
646 }
647 lan8720_interface_debug_print("lan8720: extended capabilities is %s.\n", enable == LAN8720_BOOL_TRUE ? "yes" : "no");
648
649 /* lan8720_set_identifier/lan8720_get_identifier test */
650 lan8720_interface_debug_print("lan8720: lan8720_set_identifier/lan8720_get_identifier test.\n");
651
652 /* set identifier */
653 phy_id = rand() % 0x3FFFFF;
654 model_number = rand() % 0x3F;
655 revision_number = rand() % 0xF;
656 res = lan8720_set_identifier(&gs_handle, phy_id, model_number, revision_number);
657 if (res != 0)
658 {
659 lan8720_interface_debug_print("lan8720: set identifier failed.\n");
660 (void)lan8720_deinit(&gs_handle);
661
662 return 1;
663 }
664 lan8720_interface_debug_print("lan8720: set phy_id 0x%06X.\n", phy_id);
665 lan8720_interface_debug_print("lan8720: set model_number 0x%02X.\n", model_number);
666 lan8720_interface_debug_print("lan8720: set revision_number 0x%02X.\n", revision_number);
667 res = lan8720_get_identifier(&gs_handle, &phy_id_check, &model_number_check, &revision_number_check);
668 if (res != 0)
669 {
670 lan8720_interface_debug_print("lan8720: get identifier failed.\n");
671 (void)lan8720_deinit(&gs_handle);
672
673 return 1;
674 }
675 lan8720_interface_debug_print("lan8720: check phy_id %s.\n", phy_id == phy_id_check ? "ok" : "error");
676 lan8720_interface_debug_print("lan8720: check model_number %s.\n", model_number == model_number_check ? "ok" : "error");
677 lan8720_interface_debug_print("lan8720: check revision_number %s.\n", revision_number == revision_number_check ? "ok" : "error");
678
679 /* lan8720_set_auto_negotiation_advertisement_remote_fault/lan8720_get_auto_negotiation_advertisement_remote_fault test */
680 lan8720_interface_debug_print("lan8720: lan8720_set_auto_negotiation_advertisement_remote_fault/lan8720_get_auto_negotiation_advertisement_remote_fault test.\n");
681
682 /* enable */
684 if (res != 0)
685 {
686 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement remote fault failed.\n");
687 (void)lan8720_deinit(&gs_handle);
688
689 return 1;
690 }
691 lan8720_interface_debug_print("lan8720: enable auto negotiation advertisement remote fault.\n");
693 if (res != 0)
694 {
695 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement remote fault failed.\n");
696 (void)lan8720_deinit(&gs_handle);
697
698 return 1;
699 }
700 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement remote fault %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
701
702 /* disable */
704 if (res != 0)
705 {
706 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement remote fault failed.\n");
707 (void)lan8720_deinit(&gs_handle);
708
709 return 1;
710 }
711 lan8720_interface_debug_print("lan8720: disable auto negotiation advertisement remote fault.\n");
713 if (res != 0)
714 {
715 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement remote fault failed.\n");
716 (void)lan8720_deinit(&gs_handle);
717
718 return 1;
719 }
720 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement remote fault %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
721
722 /* lan8720_set_auto_negotiation_advertisement_pause/lan8720_get_auto_negotiation_advertisement_pause test */
723 lan8720_interface_debug_print("lan8720: lan8720_set_auto_negotiation_advertisement_pause/lan8720_get_auto_negotiation_advertisement_pause test.\n");
724
725 /* no pause */
727 if (res != 0)
728 {
729 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement pause failed.\n");
730 (void)lan8720_deinit(&gs_handle);
731
732 return 1;
733 }
734 lan8720_interface_debug_print("lan8720: set no pause.\n");
735 res = lan8720_get_auto_negotiation_advertisement_pause(&gs_handle, &pause);
736 if (res != 0)
737 {
738 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement pause failed.\n");
739 (void)lan8720_deinit(&gs_handle);
740
741 return 1;
742 }
743 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement pause %s.\n", pause == LAN8720_PAUSE_NO ? "ok" : "error");
744
745 /* symmetric pause */
747 if (res != 0)
748 {
749 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement pause failed.\n");
750 (void)lan8720_deinit(&gs_handle);
751
752 return 1;
753 }
754 lan8720_interface_debug_print("lan8720: set symmetric pause.\n");
755 res = lan8720_get_auto_negotiation_advertisement_pause(&gs_handle, &pause);
756 if (res != 0)
757 {
758 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement pause failed.\n");
759 (void)lan8720_deinit(&gs_handle);
760
761 return 1;
762 }
763 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement pause %s.\n", pause == LAN8720_PAUSE_SYMMETRIC ? "ok" : "error");
764
765 /* asymmetric pause */
767 if (res != 0)
768 {
769 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement pause failed.\n");
770 (void)lan8720_deinit(&gs_handle);
771
772 return 1;
773 }
774 lan8720_interface_debug_print("lan8720: set asymmetric pause.\n");
775 res = lan8720_get_auto_negotiation_advertisement_pause(&gs_handle, &pause);
776 if (res != 0)
777 {
778 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement pause failed.\n");
779 (void)lan8720_deinit(&gs_handle);
780
781 return 1;
782 }
783 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement pause %s.\n", pause == LAN8720_PAUSE_ASYMMETRIC ? "ok" : "error");
784
785 /* both pause */
787 if (res != 0)
788 {
789 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement pause failed.\n");
790 (void)lan8720_deinit(&gs_handle);
791
792 return 1;
793 }
794 lan8720_interface_debug_print("lan8720: set both pause.\n");
795 res = lan8720_get_auto_negotiation_advertisement_pause(&gs_handle, &pause);
796 if (res != 0)
797 {
798 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement pause failed.\n");
799 (void)lan8720_deinit(&gs_handle);
800
801 return 1;
802 }
803 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement pause %s.\n", pause == LAN8720_PAUSE_BOTH ? "ok" : "error");
804
805 /* lan8720_set_auto_negotiation_advertisement_100base_tx_full_duplex/lan8720_get_auto_negotiation_advertisement_100base_tx_full_duplex test */
806 lan8720_interface_debug_print("lan8720: lan8720_set_auto_negotiation_advertisement_100base_tx_full_duplex/lan8720_get_auto_negotiation_advertisement_100base_tx_full_duplex test.\n");
807
808 /* enable */
810 if (res != 0)
811 {
812 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement 100base tx full duplex failed.\n");
813 (void)lan8720_deinit(&gs_handle);
814
815 return 1;
816 }
817 lan8720_interface_debug_print("lan8720: enable auto negotiation advertisement 100base tx full duplex.\n");
819 if (res != 0)
820 {
821 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement 100base tx full duplex failed.\n");
822 (void)lan8720_deinit(&gs_handle);
823
824 return 1;
825 }
826 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement 100base tx full duplex %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
827
828 /* disable */
830 if (res != 0)
831 {
832 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement 100base tx full duplex failed.\n");
833 (void)lan8720_deinit(&gs_handle);
834
835 return 1;
836 }
837 lan8720_interface_debug_print("lan8720: disable auto negotiation advertisement 100base tx full duplex.\n");
839 if (res != 0)
840 {
841 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement 100base tx full duplex failed.\n");
842 (void)lan8720_deinit(&gs_handle);
843
844 return 1;
845 }
846 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement 100base tx full duplex %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
847
848 /* lan8720_set_auto_negotiation_advertisement_100base_tx/lan8720_get_auto_negotiation_advertisement_100base_tx test */
849 lan8720_interface_debug_print("lan8720: lan8720_set_auto_negotiation_advertisement_100base_tx/lan8720_get_auto_negotiation_advertisement_100base_tx test.\n");
850
851 /* enable */
853 if (res != 0)
854 {
855 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement 100base tx failed.\n");
856 (void)lan8720_deinit(&gs_handle);
857
858 return 1;
859 }
860 lan8720_interface_debug_print("lan8720: enable auto negotiation advertisement 100base tx.\n");
862 if (res != 0)
863 {
864 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement 100base tx failed.\n");
865 (void)lan8720_deinit(&gs_handle);
866
867 return 1;
868 }
869 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement 100base tx %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
870
871 /* disable */
873 if (res != 0)
874 {
875 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement 100base tx failed.\n");
876 (void)lan8720_deinit(&gs_handle);
877
878 return 1;
879 }
880 lan8720_interface_debug_print("lan8720: disable auto negotiation advertisement 100base tx.\n");
882 if (res != 0)
883 {
884 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement 100base tx failed.\n");
885 (void)lan8720_deinit(&gs_handle);
886
887 return 1;
888 }
889 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement 100base tx %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
890
891 /* lan8720_set_auto_negotiation_advertisement_10base_t_full_duplex/lan8720_get_auto_negotiation_advertisement_10base_t_full_duplex test */
892 lan8720_interface_debug_print("lan8720: lan8720_set_auto_negotiation_advertisement_10base_t_full_duplex/lan8720_get_auto_negotiation_advertisement_10base_t_full_duplex test.\n");
893
894 /* enable */
896 if (res != 0)
897 {
898 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement 10base t full duplex failed.\n");
899 (void)lan8720_deinit(&gs_handle);
900
901 return 1;
902 }
903 lan8720_interface_debug_print("lan8720: enable auto negotiation advertisement 10base t full duplex failed.\n");
905 if (res != 0)
906 {
907 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement 10base t full duplex failed.\n");
908 (void)lan8720_deinit(&gs_handle);
909
910 return 1;
911 }
912 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement 10base t full duplex %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
913
914 /* disable */
916 if (res != 0)
917 {
918 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement 10base t full duplex failed.\n");
919 (void)lan8720_deinit(&gs_handle);
920
921 return 1;
922 }
923 lan8720_interface_debug_print("lan8720: disable auto negotiation advertisement 10base t full duplex failed.\n");
925 if (res != 0)
926 {
927 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement 10base t full duplex failed.\n");
928 (void)lan8720_deinit(&gs_handle);
929
930 return 1;
931 }
932 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement 10base t full duplex %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
933
934 /* lan8720_set_auto_negotiation_advertisement_10base_t/lan8720_get_auto_negotiation_advertisement_10base_t test */
935 lan8720_interface_debug_print("lan8720: lan8720_set_auto_negotiation_advertisement_10base_t/lan8720_get_auto_negotiation_advertisement_10base_t test.\n");
936
937 /* enable */
939 if (res != 0)
940 {
941 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement 10base t failed.\n");
942 (void)lan8720_deinit(&gs_handle);
943
944 return 1;
945 }
946 lan8720_interface_debug_print("lan8720: enable auto negotiation advertisement 10base t.\n");
948 if (res != 0)
949 {
950 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement 10base t failed.\n");
951 (void)lan8720_deinit(&gs_handle);
952
953 return 1;
954 }
955 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement 10base t %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
956
957 /* disable */
959 if (res != 0)
960 {
961 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement 10base t failed.\n");
962 (void)lan8720_deinit(&gs_handle);
963
964 return 1;
965 }
966 lan8720_interface_debug_print("lan8720: disable auto negotiation advertisement 10base t.\n");
968 if (res != 0)
969 {
970 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement 10base t failed.\n");
971 (void)lan8720_deinit(&gs_handle);
972
973 return 1;
974 }
975 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement 10base t %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
976
977 /* lan8720_set_auto_negotiation_advertisement_selector_field/lan8720_get_auto_negotiation_advertisement_selector_field test */
978 lan8720_interface_debug_print("lan8720: lan8720_set_auto_negotiation_advertisement_selector_field/lan8720_get_auto_negotiation_advertisement_selector_field test.\n");
979
980 selector = rand() % 0x1F;
982 if (res != 0)
983 {
984 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement selector field failed.\n");
985 (void)lan8720_deinit(&gs_handle);
986
987 return 1;
988 }
989 lan8720_interface_debug_print("lan8720: set auto negotiation advertisement selector field 0x%02X.\n", selector);
990 res = lan8720_get_auto_negotiation_advertisement_selector_field(&gs_handle, &selector_check);
991 if (res != 0)
992 {
993 lan8720_interface_debug_print("lan8720: get auto negotiation advertisement selector field failed.\n");
994 (void)lan8720_deinit(&gs_handle);
995
996 return 1;
997 }
998 lan8720_interface_debug_print("lan8720: check auto negotiation advertisement selector field %s.\n", selector_check == selector ? "ok" : "error");
999
1000 /* lan8720_get_auto_negotiation_link_partner_ability_next_page test */
1001 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_link_partner_ability_next_page test.\n");
1002
1003 /* get auto negotiation link partner ability next page */
1005 if (res != 0)
1006 {
1007 lan8720_interface_debug_print("lan8720: get auto negotiation link partner ability next page failed.\n");
1008 (void)lan8720_deinit(&gs_handle);
1009
1010 return 1;
1011 }
1012 lan8720_interface_debug_print("lan8720: check auto negotiation link partner ability next page %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1013
1014 /* lan8720_get_auto_negotiation_link_partner_ability_acknowledge test */
1015 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_link_partner_ability_acknowledge test.\n");
1016
1017 /* get auto negotiation link partner ability acknowledge */
1019 if (res != 0)
1020 {
1021 lan8720_interface_debug_print("lan8720: get auto negotiation link partner ability acknowledge failed.\n");
1022 (void)lan8720_deinit(&gs_handle);
1023
1024 return 1;
1025 }
1026 lan8720_interface_debug_print("lan8720: check auto negotiation link partner ability acknowledge %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1027
1028 /* lan8720_get_auto_negotiation_link_partner_ability_remote_fault test */
1029 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_link_partner_ability_remote_fault test.\n");
1030
1031 /* get auto negotiation link partner ability remote fault */
1033 if (res != 0)
1034 {
1035 lan8720_interface_debug_print("lan8720: get auto negotiation link partner ability remote fault failed.\n");
1036 (void)lan8720_deinit(&gs_handle);
1037
1038 return 1;
1039 }
1040 lan8720_interface_debug_print("lan8720: check auto negotiation link partner ability remote fault %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1041
1042 /* lan8720_get_auto_negotiation_link_partner_ability_pause test */
1043 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_link_partner_ability_pause test.\n");
1044
1045 /* get auto negotiation link partner ability pause */
1047 if (res != 0)
1048 {
1049 lan8720_interface_debug_print("lan8720: get auto negotiation link partner ability pause failed.\n");
1050 (void)lan8720_deinit(&gs_handle);
1051
1052 return 1;
1053 }
1054 lan8720_interface_debug_print("lan8720: check auto negotiation link partner ability pause %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1055
1056 /* lan8720_get_auto_negotiation_link_partner_ability_100base_t4 test */
1057 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_link_partner_ability_100base_t4 test.\n");
1058
1059 /* get auto negotiation link partner ability 100base t4 */
1061 if (res != 0)
1062 {
1063 lan8720_interface_debug_print("lan8720: get auto negotiation link partner ability 100base t4 failed.\n");
1064 (void)lan8720_deinit(&gs_handle);
1065
1066 return 1;
1067 }
1068 lan8720_interface_debug_print("lan8720: check auto negotiation link partner ability 100base t4 %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1069
1070 /* lan8720_get_auto_negotiation_link_partner_ability_100base_tx_full_duplex test */
1071 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_link_partner_ability_100base_tx_full_duplex test.\n");
1072
1073 /* get auto negotiation link partner ability 100base tx full duplex */
1075 if (res != 0)
1076 {
1077 lan8720_interface_debug_print("lan8720: get auto negotiation link partner ability 100base tx full duplex failed.\n");
1078 (void)lan8720_deinit(&gs_handle);
1079
1080 return 1;
1081 }
1082 lan8720_interface_debug_print("lan8720: check auto negotiation link partner ability 100base tx full duplex %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1083
1084 /* lan8720_get_auto_negotiation_link_partner_ability_100base_tx test */
1085 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_link_partner_ability_100base_tx test.\n");
1086
1087 /* get auto negotiation link partner ability 100base tx */
1089 if (res != 0)
1090 {
1091 lan8720_interface_debug_print("lan8720: get auto negotiation link partner ability 100base tx failed.\n");
1092 (void)lan8720_deinit(&gs_handle);
1093
1094 return 1;
1095 }
1096 lan8720_interface_debug_print("lan8720: check auto negotiation link partner ability 100base tx %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1097
1098 /* lan8720_get_auto_negotiation_link_partner_ability_10base_t_full_duplex test */
1099 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_link_partner_ability_10base_t_full_duplex test.\n");
1100
1101 /* get auto negotiation link partner ability 10base t full duplex */
1103 if (res != 0)
1104 {
1105 lan8720_interface_debug_print("lan8720: get auto negotiation link partner ability 10base t full duplex failed.\n");
1106 (void)lan8720_deinit(&gs_handle);
1107
1108 return 1;
1109 }
1110 lan8720_interface_debug_print("lan8720: check auto negotiation link partner ability 10base t full duplex %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1111
1112 /* lan8720_get_auto_negotiation_link_partner_ability_10base_t test */
1113 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_link_partner_ability_10base_t test.\n");
1114
1115 /* get auto negotiation link partner ability 10base t */
1117 if (res != 0)
1118 {
1119 lan8720_interface_debug_print("lan8720: get auto negotiation link partner ability 10base t failed.\n");
1120 (void)lan8720_deinit(&gs_handle);
1121
1122 return 1;
1123 }
1124 lan8720_interface_debug_print("lan8720: check auto negotiation link partner ability 10base t %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1125
1126 /* lan8720_get_auto_negotiation_link_partner_ability_selector_field test */
1127 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_link_partner_ability_selector_field test.\n");
1128
1129 /* get auto negotiation link partner ability selector field */
1131 if (res != 0)
1132 {
1133 lan8720_interface_debug_print("lan8720: get auto negotiation link partner ability selector field failed.\n");
1134 (void)lan8720_deinit(&gs_handle);
1135
1136 return 1;
1137 }
1138 lan8720_interface_debug_print("lan8720: auto negotiation link partner ability selector field is 0x%02X.\n", selector);
1139
1140 /* lan8720_get_auto_negotiation_expansion_parallel_detection_fault test */
1141 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_expansion_parallel_detection_fault test.\n");
1142
1143 /* get auto negotiation expansion parallel detection fault */
1145 if (res != 0)
1146 {
1147 lan8720_interface_debug_print("lan8720: get auto negotiation expansion parallel detection fault failed.\n");
1148 (void)lan8720_deinit(&gs_handle);
1149
1150 return 1;
1151 }
1152 lan8720_interface_debug_print("lan8720: check auto negotiation expansion parallel detection fault %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1153
1154 /* lan8720_get_auto_negotiation_expansion_link_partner_next_page_able test */
1155 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_expansion_link_partner_next_page_able test.\n");
1156
1157 /* get auto negotiation expansion link partner next page able */
1159 if (res != 0)
1160 {
1161 lan8720_interface_debug_print("lan8720: get auto negotiation expansion link partner next page able failed.\n");
1162 (void)lan8720_deinit(&gs_handle);
1163
1164 return 1;
1165 }
1166 lan8720_interface_debug_print("lan8720: check auto negotiation expansion link partner next page able %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1167
1168 /* lan8720_get_auto_negotiation_expansion_next_page_able test */
1169 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_expansion_next_page_able test.\n");
1170
1171 /* get auto negotiation expansion next page able */
1173 if (res != 0)
1174 {
1175 lan8720_interface_debug_print("lan8720: get auto negotiation expansion next page able failed.\n");
1176 (void)lan8720_deinit(&gs_handle);
1177
1178 return 1;
1179 }
1180 lan8720_interface_debug_print("lan8720: check auto negotiation expansion next page able %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1181
1182 /* lan8720_get_auto_negotiation_expansion_page_received test */
1183 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_expansion_page_received test.\n");
1184
1185 /* get auto negotiation expansion page received */
1187 if (res != 0)
1188 {
1189 lan8720_interface_debug_print("lan8720: get auto negotiation expansion page received failed.\n");
1190 (void)lan8720_deinit(&gs_handle);
1191
1192 return 1;
1193 }
1194 lan8720_interface_debug_print("lan8720: check auto negotiation expansion page received %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1195
1196 /* lan8720_get_auto_negotiation_expansion_link_partner_auto_negotiation_able test */
1197 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_expansion_link_partner_auto_negotiation_able test.\n");
1198
1199 /* get auto negotiation expansion link partner auto negotiation able */
1201 if (res != 0)
1202 {
1203 lan8720_interface_debug_print("lan8720: get auto negotiation expansion link partner auto negotiation able failed.\n");
1204 (void)lan8720_deinit(&gs_handle);
1205
1206 return 1;
1207 }
1208 lan8720_interface_debug_print("lan8720: check auto negotiation expansion link partner auto negotiation able %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1209
1210 /* lan8720_set_energy_detect_power_down_mode/lan8720_get_energy_detect_power_down_mode test */
1211 lan8720_interface_debug_print("lan8720: lan8720_set_energy_detect_power_down_mode/lan8720_get_energy_detect_power_down_mode test.\n");
1212
1213 /* enable */
1215 if (res != 0)
1216 {
1217 lan8720_interface_debug_print("lan8720: set energy detect power down mode failed.\n");
1218 (void)lan8720_deinit(&gs_handle);
1219
1220 return 1;
1221 }
1222 lan8720_interface_debug_print("lan8720: enable energy detect power down mode.\n");
1223 res = lan8720_get_energy_detect_power_down_mode(&gs_handle, &enable);
1224 if (res != 0)
1225 {
1226 lan8720_interface_debug_print("lan8720: get energy detect power down mode failed.\n");
1227 (void)lan8720_deinit(&gs_handle);
1228
1229 return 1;
1230 }
1231 lan8720_interface_debug_print("lan8720: check energy detect power down mode %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
1232
1233 /* disable */
1235 if (res != 0)
1236 {
1237 lan8720_interface_debug_print("lan8720: set energy detect power down mode failed.\n");
1238 (void)lan8720_deinit(&gs_handle);
1239
1240 return 1;
1241 }
1242 lan8720_interface_debug_print("lan8720: disable energy detect power down mode.\n");
1243 res = lan8720_get_energy_detect_power_down_mode(&gs_handle, &enable);
1244 if (res != 0)
1245 {
1246 lan8720_interface_debug_print("lan8720: get energy detect power down mode failed.\n");
1247 (void)lan8720_deinit(&gs_handle);
1248
1249 return 1;
1250 }
1251 lan8720_interface_debug_print("lan8720: check energy detect power down mode %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
1252
1253 /* lan8720_set_far_loop_back/lan8720_get_far_loop_back test */
1254 lan8720_interface_debug_print("lan8720: lan8720_set_far_loop_back/lan8720_get_far_loop_back test.\n");
1255
1256 /* enable */
1258 if (res != 0)
1259 {
1260 lan8720_interface_debug_print("lan8720: set far loop back failed.\n");
1261 (void)lan8720_deinit(&gs_handle);
1262
1263 return 1;
1264 }
1265 lan8720_interface_debug_print("lan8720: enable far loop back.\n");
1266 res = lan8720_get_far_loop_back(&gs_handle, &enable);
1267 if (res != 0)
1268 {
1269 lan8720_interface_debug_print("lan8720: get far loop back failed.\n");
1270 (void)lan8720_deinit(&gs_handle);
1271
1272 return 1;
1273 }
1274 lan8720_interface_debug_print("lan8720: check far loop back %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
1275
1276 /* disable */
1278 if (res != 0)
1279 {
1280 lan8720_interface_debug_print("lan8720: set far loop back failed.\n");
1281 (void)lan8720_deinit(&gs_handle);
1282
1283 return 1;
1284 }
1285 lan8720_interface_debug_print("lan8720: disable far loop back.\n");
1286 res = lan8720_get_far_loop_back(&gs_handle, &enable);
1287 if (res != 0)
1288 {
1289 lan8720_interface_debug_print("lan8720: get far loop back failed.\n");
1290 (void)lan8720_deinit(&gs_handle);
1291
1292 return 1;
1293 }
1294 lan8720_interface_debug_print("lan8720: check far loop back %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
1295
1296 /* lan8720_set_alternate_interrupt_mode/lan8720_get_alternate_interrupt_mode test */
1297 lan8720_interface_debug_print("lan8720: lan8720_set_alternate_interrupt_mode/lan8720_get_alternate_interrupt_mode test.\n");
1298
1299 /* enable */
1301 if (res != 0)
1302 {
1303 lan8720_interface_debug_print("lan8720: set alternate interrupt mode failed.\n");
1304 (void)lan8720_deinit(&gs_handle);
1305
1306 return 1;
1307 }
1308 lan8720_interface_debug_print("lan8720: enable alternate interrupt mode.\n");
1309 res = lan8720_get_alternate_interrupt_mode(&gs_handle, &enable);
1310 if (res != 0)
1311 {
1312 lan8720_interface_debug_print("lan8720: get alternate interrupt mode failed.\n");
1313 (void)lan8720_deinit(&gs_handle);
1314
1315 return 1;
1316 }
1317 lan8720_interface_debug_print("lan8720: check alternate interrupt mode %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
1318
1319 /* disable */
1321 if (res != 0)
1322 {
1323 lan8720_interface_debug_print("lan8720: set alternate interrupt mode failed.\n");
1324 (void)lan8720_deinit(&gs_handle);
1325
1326 return 1;
1327 }
1328 lan8720_interface_debug_print("lan8720: disable alternate interrupt mode.\n");
1329 res = lan8720_get_alternate_interrupt_mode(&gs_handle, &enable);
1330 if (res != 0)
1331 {
1332 lan8720_interface_debug_print("lan8720: get alternate interrupt mode failed.\n");
1333 (void)lan8720_deinit(&gs_handle);
1334
1335 return 1;
1336 }
1337 lan8720_interface_debug_print("lan8720: check alternate interrupt mode %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
1338
1339 /* lan8720_get_energy_detected test */
1340 lan8720_interface_debug_print("lan8720: lan8720_get_energy_detected test.\n");
1341
1342 /* get energy detected */
1343 res = lan8720_get_energy_detected(&gs_handle, &enable);
1344 if (res != 0)
1345 {
1346 lan8720_interface_debug_print("lan8720: get energy detected failed.\n");
1347 (void)lan8720_deinit(&gs_handle);
1348
1349 return 1;
1350 }
1351 lan8720_interface_debug_print("lan8720: check energy detected %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
1352
1353 /* lan8720_set_mode/lan8720_get_mode test */
1354 lan8720_interface_debug_print("lan8720: lan8720_set_mode/lan8720_get_mode test.\n");
1355
1356 /* 10base-t half duplex */
1358 if (res != 0)
1359 {
1360 lan8720_interface_debug_print("lan8720: set mode failed.\n");
1361 (void)lan8720_deinit(&gs_handle);
1362
1363 return 1;
1364 }
1365 lan8720_interface_debug_print("lan8720: set 10base-t half duplex.\n");
1366 res = lan8720_get_mode(&gs_handle, &mode_check);
1367 if (res != 0)
1368 {
1369 lan8720_interface_debug_print("lan8720: get mode failed.\n");
1370 (void)lan8720_deinit(&gs_handle);
1371
1372 return 1;
1373 }
1374 lan8720_interface_debug_print("lan8720: check mode %s.\n", mode_check == LAN8720_MODE_10BASE_T_HALF_DUPLEX ? "ok" : "error");
1375
1376 /* 10base-t full duplex */
1378 if (res != 0)
1379 {
1380 lan8720_interface_debug_print("lan8720: set mode failed.\n");
1381 (void)lan8720_deinit(&gs_handle);
1382
1383 return 1;
1384 }
1385 lan8720_interface_debug_print("lan8720: set 10base-t full duplex.\n");
1386 res = lan8720_get_mode(&gs_handle, &mode_check);
1387 if (res != 0)
1388 {
1389 lan8720_interface_debug_print("lan8720: get mode failed.\n");
1390 (void)lan8720_deinit(&gs_handle);
1391
1392 return 1;
1393 }
1394 lan8720_interface_debug_print("lan8720: check mode %s.\n", mode_check == LAN8720_MODE_10BASE_T_FULL_DUPLEX ? "ok" : "error");
1395
1396 /* 100base-tx half duplex */
1398 if (res != 0)
1399 {
1400 lan8720_interface_debug_print("lan8720: set mode failed.\n");
1401 (void)lan8720_deinit(&gs_handle);
1402
1403 return 1;
1404 }
1405 lan8720_interface_debug_print("lan8720: set 100base-tx half duplex.\n");
1406 res = lan8720_get_mode(&gs_handle, &mode_check);
1407 if (res != 0)
1408 {
1409 lan8720_interface_debug_print("lan8720: get mode failed.\n");
1410 (void)lan8720_deinit(&gs_handle);
1411
1412 return 1;
1413 }
1414 lan8720_interface_debug_print("lan8720: check mode %s.\n", mode_check == LAN8720_MODE_100BASE_TX_HALF_DUPLEX ? "ok" : "error");
1415
1416 /* 100base-tx full duplex */
1418 if (res != 0)
1419 {
1420 lan8720_interface_debug_print("lan8720: set mode failed.\n");
1421 (void)lan8720_deinit(&gs_handle);
1422
1423 return 1;
1424 }
1425 lan8720_interface_debug_print("lan8720: set 100base-tx full duplex.\n");
1426 res = lan8720_get_mode(&gs_handle, &mode_check);
1427 if (res != 0)
1428 {
1429 lan8720_interface_debug_print("lan8720: get mode failed.\n");
1430 (void)lan8720_deinit(&gs_handle);
1431
1432 return 1;
1433 }
1434 lan8720_interface_debug_print("lan8720: check mode %s.\n", mode_check == LAN8720_MODE_100BASE_TX_FULL_DUPLEX ? "ok" : "error");
1435
1436 /* 100base-tx half duplex is advertised */
1438 if (res != 0)
1439 {
1440 lan8720_interface_debug_print("lan8720: set mode failed.\n");
1441 (void)lan8720_deinit(&gs_handle);
1442
1443 return 1;
1444 }
1445 lan8720_interface_debug_print("lan8720: set 100base-tx half duplex advertised.\n");
1446 res = lan8720_get_mode(&gs_handle, &mode_check);
1447 if (res != 0)
1448 {
1449 lan8720_interface_debug_print("lan8720: get mode failed.\n");
1450 (void)lan8720_deinit(&gs_handle);
1451
1452 return 1;
1453 }
1454 lan8720_interface_debug_print("lan8720: check mode %s.\n", mode_check == LAN8720_MODE_100BASE_TX_HALF_DUPLEX_ADVERTISED ? "ok" : "error");
1455
1456 /* repeater mode */
1458 if (res != 0)
1459 {
1460 lan8720_interface_debug_print("lan8720: set mode failed.\n");
1461 (void)lan8720_deinit(&gs_handle);
1462
1463 return 1;
1464 }
1465 lan8720_interface_debug_print("lan8720: set repeater mode.\n");
1466 res = lan8720_get_mode(&gs_handle, &mode_check);
1467 if (res != 0)
1468 {
1469 lan8720_interface_debug_print("lan8720: get mode failed.\n");
1470 (void)lan8720_deinit(&gs_handle);
1471
1472 return 1;
1473 }
1474 lan8720_interface_debug_print("lan8720: check mode %s.\n", mode_check == LAN8720_MODE_REPEATER_MODE ? "ok" : "error");
1475
1476 /* power down mode */
1478 if (res != 0)
1479 {
1480 lan8720_interface_debug_print("lan8720: set mode failed.\n");
1481 (void)lan8720_deinit(&gs_handle);
1482
1483 return 1;
1484 }
1485 lan8720_interface_debug_print("lan8720: set power down mode.\n");
1486 res = lan8720_get_mode(&gs_handle, &mode_check);
1487 if (res != 0)
1488 {
1489 lan8720_interface_debug_print("lan8720: get mode failed.\n");
1490 (void)lan8720_deinit(&gs_handle);
1491
1492 return 1;
1493 }
1494 lan8720_interface_debug_print("lan8720: check mode %s.\n", mode_check == LAN8720_MODE_POWER_DOWN_MODE ? "ok" : "error");
1495
1496 /* all capable */
1497 res = lan8720_set_mode(&gs_handle, LAN8720_MODE_ALL_CAPABLE);
1498 if (res != 0)
1499 {
1500 lan8720_interface_debug_print("lan8720: set mode failed.\n");
1501 (void)lan8720_deinit(&gs_handle);
1502
1503 return 1;
1504 }
1505 lan8720_interface_debug_print("lan8720: set all capable.\n");
1506 res = lan8720_get_mode(&gs_handle, &mode_check);
1507 if (res != 0)
1508 {
1509 lan8720_interface_debug_print("lan8720: get mode failed.\n");
1510 (void)lan8720_deinit(&gs_handle);
1511
1512 return 1;
1513 }
1514 lan8720_interface_debug_print("lan8720: check mode %s.\n", mode_check == LAN8720_MODE_ALL_CAPABLE ? "ok" : "error");
1515
1516 /* lan8720_set_phy_address/lan8720_get_phy_address test */
1517 lan8720_interface_debug_print("lan8720: lan8720_set_phy_address/lan8720_get_phy_address test.\n");
1518
1519 /* set phy address */
1520 res = lan8720_set_phy_address(&gs_handle, 0x01);
1521 if (res != 0)
1522 {
1523 lan8720_interface_debug_print("lan8720: set phy address failed.\n");
1524 (void)lan8720_deinit(&gs_handle);
1525
1526 return 1;
1527 }
1528 lan8720_interface_debug_print("lan8720: set phy address 0x01.\n");
1529 res = lan8720_get_phy_address(&gs_handle, &reg_check);
1530 if (res != 0)
1531 {
1532 lan8720_interface_debug_print("lan8720: get phy address failed.\n");
1533 (void)lan8720_deinit(&gs_handle);
1534
1535 return 1;
1536 }
1537 lan8720_interface_debug_print("lan8720: check phy address %s.\n", reg_check == 0x01 ? "ok" : "error");
1538
1539 /* lan8720_get_symbol_error_counter test */
1540 lan8720_interface_debug_print("lan8720: lan8720_get_symbol_error_counter test.\n");
1541
1542 /* get symbol error counter */
1543 res = lan8720_get_symbol_error_counter(&gs_handle, &cnt);
1544 if (res != 0)
1545 {
1546 lan8720_interface_debug_print("lan8720: get symbol error counter failed.\n");
1547 (void)lan8720_deinit(&gs_handle);
1548
1549 return 1;
1550 }
1551 lan8720_interface_debug_print("lan8720: symbol error counter is %d.\n", cnt);
1552
1553 /* lan8720_set_auto_mdix/lan8720_get_auto_mdix test */
1554 lan8720_interface_debug_print("lan8720: lan8720_set_auto_mdix/lan8720_get_auto_mdix test.\n");
1555
1556 /* enable */
1557 res = lan8720_set_auto_mdix(&gs_handle, LAN8720_BOOL_TRUE);
1558 if (res != 0)
1559 {
1560 lan8720_interface_debug_print("lan8720: set auto mdix failed.\n");
1561 (void)lan8720_deinit(&gs_handle);
1562
1563 return 1;
1564 }
1565 lan8720_interface_debug_print("lan8720: enable auto mdix.\n");
1566 res = lan8720_get_auto_mdix(&gs_handle, &enable);
1567 if (res != 0)
1568 {
1569 lan8720_interface_debug_print("lan8720: get auto mdix failed.\n");
1570 (void)lan8720_deinit(&gs_handle);
1571
1572 return 1;
1573 }
1574 lan8720_interface_debug_print("lan8720: check auto mdix %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
1575
1576 /* disable */
1577 res = lan8720_set_auto_mdix(&gs_handle, LAN8720_BOOL_FALSE);
1578 if (res != 0)
1579 {
1580 lan8720_interface_debug_print("lan8720: set auto mdix failed.\n");
1581 (void)lan8720_deinit(&gs_handle);
1582
1583 return 1;
1584 }
1585 lan8720_interface_debug_print("lan8720: disable auto mdix.\n");
1586 res = lan8720_get_auto_mdix(&gs_handle, &enable);
1587 if (res != 0)
1588 {
1589 lan8720_interface_debug_print("lan8720: get auto mdix failed.\n");
1590 (void)lan8720_deinit(&gs_handle);
1591
1592 return 1;
1593 }
1594 lan8720_interface_debug_print("lan8720: check auto mdix %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
1595
1596 /* lan8720_set_manual_channel_select/lan8720_get_manual_channel_select test */
1597 lan8720_interface_debug_print("lan8720: lan8720_set_manual_channel_select/lan8720_get_manual_channel_select test.\n");
1598
1599 /* tx transmits, rx receives */
1601 if (res != 0)
1602 {
1603 lan8720_interface_debug_print("lan8720: set manual channel select failed.\n");
1604 (void)lan8720_deinit(&gs_handle);
1605
1606 return 1;
1607 }
1608 lan8720_interface_debug_print("lan8720: set tx transmits, rx receives.\n");
1609 res = lan8720_get_manual_channel_select(&gs_handle, &select);
1610 if (res != 0)
1611 {
1612 lan8720_interface_debug_print("lan8720: get manual channel select failed.\n");
1613 (void)lan8720_deinit(&gs_handle);
1614
1615 return 1;
1616 }
1617 lan8720_interface_debug_print("lan8720: check manual channel select %s.\n", select == LAN8720_MANUAL_CHANNEL_SELECT_MDI ? "ok" : "error");
1618
1619 /* tx receives, rx transmits */
1621 if (res != 0)
1622 {
1623 lan8720_interface_debug_print("lan8720: set manual channel select failed.\n");
1624 (void)lan8720_deinit(&gs_handle);
1625
1626 return 1;
1627 }
1628 lan8720_interface_debug_print("lan8720: set tx receives, rx transmits.\n");
1629 res = lan8720_get_manual_channel_select(&gs_handle, &select);
1630 if (res != 0)
1631 {
1632 lan8720_interface_debug_print("lan8720: get manual channel select failed.\n");
1633 (void)lan8720_deinit(&gs_handle);
1634
1635 return 1;
1636 }
1637 lan8720_interface_debug_print("lan8720: check manual channel select %s.\n", select == LAN8720_MANUAL_CHANNEL_SELECT_MDIX ? "ok" : "error");
1638
1639 /* lan8720_set_sqe_test_off/lan8720_get_sqe_test_off test */
1640 lan8720_interface_debug_print("lan8720: lan8720_set_sqe_test_off/lan8720_get_sqe_test_off test.\n");
1641
1642 /* enable */
1644 if (res != 0)
1645 {
1646 lan8720_interface_debug_print("lan8720: set sqe test off failed.\n");
1647 (void)lan8720_deinit(&gs_handle);
1648
1649 return 1;
1650 }
1651 lan8720_interface_debug_print("lan8720: enable sqe test off.\n");
1652 res = lan8720_get_sqe_test_off(&gs_handle, &enable);
1653 if (res != 0)
1654 {
1655 lan8720_interface_debug_print("lan8720: get sqe test off failed.\n");
1656 (void)lan8720_deinit(&gs_handle);
1657
1658 return 1;
1659 }
1660 lan8720_interface_debug_print("lan8720: check sqe test off %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
1661
1662 /* disable */
1664 if (res != 0)
1665 {
1666 lan8720_interface_debug_print("lan8720: set sqe test off failed.\n");
1667 (void)lan8720_deinit(&gs_handle);
1668
1669 return 1;
1670 }
1671 lan8720_interface_debug_print("lan8720: disable sqe test off.\n");
1672 res = lan8720_get_sqe_test_off(&gs_handle, &enable);
1673 if (res != 0)
1674 {
1675 lan8720_interface_debug_print("lan8720: get sqe test off failed.\n");
1676 (void)lan8720_deinit(&gs_handle);
1677
1678 return 1;
1679 }
1680 lan8720_interface_debug_print("lan8720: check sqe test off %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
1681
1682 /* lan8720_get_polarity test */
1683 lan8720_interface_debug_print("lan8720: lan8720_get_polarity test.\n");
1684
1685 /* get polarity */
1686 res = lan8720_get_polarity(&gs_handle, &polarity);
1687 if (res != 0)
1688 {
1689 lan8720_interface_debug_print("lan8720: get polarity failed.\n");
1690 (void)lan8720_deinit(&gs_handle);
1691
1692 return 1;
1693 }
1694 lan8720_interface_debug_print("lan8720: check polarity %s.\n", polarity == LAN8720_POLARITY_NORMAL ? "normal polarity" : "reversed polarity");
1695
1696 /* lan8720_get_interrupt_flag test */
1697 lan8720_interface_debug_print("lan8720: lan8720_get_interrupt_flag test.\n");
1698
1699 /* energy on generated */
1700 res = lan8720_get_interrupt_flag(&gs_handle, LAN8720_INTERRUPT_ENERGY_ON, &enable);
1701 if (res != 0)
1702 {
1703 lan8720_interface_debug_print("lan8720: get interrupt flag failed.\n");
1704 (void)lan8720_deinit(&gs_handle);
1705
1706 return 1;
1707 }
1708 lan8720_interface_debug_print("lan8720: check energy on generated interrupt flag %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1709
1710 /* auto negotiation complete */
1712 if (res != 0)
1713 {
1714 lan8720_interface_debug_print("lan8720: get interrupt flag failed.\n");
1715 (void)lan8720_deinit(&gs_handle);
1716
1717 return 1;
1718 }
1719 lan8720_interface_debug_print("lan8720: check auto negotiation complete interrupt flag %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1720
1721 /* remote fault detected */
1723 if (res != 0)
1724 {
1725 lan8720_interface_debug_print("lan8720: get interrupt flag failed.\n");
1726 (void)lan8720_deinit(&gs_handle);
1727
1728 return 1;
1729 }
1730 lan8720_interface_debug_print("lan8720: check remote fault detected interrupt flag %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1731
1732 /* link down */
1733 res = lan8720_get_interrupt_flag(&gs_handle, LAN8720_INTERRUPT_LINK_DOWN, &enable);
1734 if (res != 0)
1735 {
1736 lan8720_interface_debug_print("lan8720: get interrupt flag failed.\n");
1737 (void)lan8720_deinit(&gs_handle);
1738
1739 return 1;
1740 }
1741 lan8720_interface_debug_print("lan8720: check link down interrupt flag %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1742
1743 /* auto negotiation lp acknowledge */
1745 if (res != 0)
1746 {
1747 lan8720_interface_debug_print("lan8720: get interrupt flag failed.\n");
1748 (void)lan8720_deinit(&gs_handle);
1749
1750 return 1;
1751 }
1752 lan8720_interface_debug_print("lan8720: check auto negotiation lp acknowledge interrupt flag %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1753
1754 /* parallel detection fault */
1756 if (res != 0)
1757 {
1758 lan8720_interface_debug_print("lan8720: get interrupt flag failed.\n");
1759 (void)lan8720_deinit(&gs_handle);
1760
1761 return 1;
1762 }
1763 lan8720_interface_debug_print("lan8720: check parallel detection fault interrupt flag %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1764
1765 /* auto negotiation page received */
1767 if (res != 0)
1768 {
1769 lan8720_interface_debug_print("lan8720: get interrupt flag failed.\n");
1770 (void)lan8720_deinit(&gs_handle);
1771
1772 return 1;
1773 }
1774 lan8720_interface_debug_print("lan8720: check auto negotiation page received interrupt flag %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
1775
1776 /* lan8720_set_interrupt_mask/lan8720_get_interrupt_mask test */
1777 lan8720_interface_debug_print("lan8720: lan8720_set_interrupt_mask/lan8720_get_interrupt_mask test.\n");
1778
1779 /* enable energy on generated */
1781 if (res != 0)
1782 {
1783 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
1784 (void)lan8720_deinit(&gs_handle);
1785
1786 return 1;
1787 }
1788 lan8720_interface_debug_print("lan8720: enable energy on generated.\n");
1789 res = lan8720_get_interrupt_mask(&gs_handle, LAN8720_INTERRUPT_ENERGY_ON, &enable);
1790 if (res != 0)
1791 {
1792 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
1793 (void)lan8720_deinit(&gs_handle);
1794
1795 return 1;
1796 }
1797 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
1798
1799 /* disable energy on generated */
1801 if (res != 0)
1802 {
1803 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
1804 (void)lan8720_deinit(&gs_handle);
1805
1806 return 1;
1807 }
1808 lan8720_interface_debug_print("lan8720: disable energy on generated.\n");
1809 res = lan8720_get_interrupt_mask(&gs_handle, LAN8720_INTERRUPT_ENERGY_ON, &enable);
1810 if (res != 0)
1811 {
1812 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
1813 (void)lan8720_deinit(&gs_handle);
1814
1815 return 1;
1816 }
1817 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
1818
1819 /* enable auto negotiation complete */
1821 if (res != 0)
1822 {
1823 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
1824 (void)lan8720_deinit(&gs_handle);
1825
1826 return 1;
1827 }
1828 lan8720_interface_debug_print("lan8720: enable auto negotiation complete.\n");
1830 if (res != 0)
1831 {
1832 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
1833 (void)lan8720_deinit(&gs_handle);
1834
1835 return 1;
1836 }
1837 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
1838
1839 /* disable auto negotiation complete */
1841 if (res != 0)
1842 {
1843 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
1844 (void)lan8720_deinit(&gs_handle);
1845
1846 return 1;
1847 }
1848 lan8720_interface_debug_print("lan8720: disable auto negotiation complete.\n");
1850 if (res != 0)
1851 {
1852 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
1853 (void)lan8720_deinit(&gs_handle);
1854
1855 return 1;
1856 }
1857 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
1858
1859 /* enable remote fault detected */
1861 if (res != 0)
1862 {
1863 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
1864 (void)lan8720_deinit(&gs_handle);
1865
1866 return 1;
1867 }
1868 lan8720_interface_debug_print("lan8720: enable remote fault detected.\n");
1870 if (res != 0)
1871 {
1872 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
1873 (void)lan8720_deinit(&gs_handle);
1874
1875 return 1;
1876 }
1877 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
1878
1879 /* disable remote fault detected */
1881 if (res != 0)
1882 {
1883 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
1884 (void)lan8720_deinit(&gs_handle);
1885
1886 return 1;
1887 }
1888 lan8720_interface_debug_print("lan8720: disable remote fault detected.\n");
1890 if (res != 0)
1891 {
1892 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
1893 (void)lan8720_deinit(&gs_handle);
1894
1895 return 1;
1896 }
1897 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
1898
1899 /* enable link down */
1901 if (res != 0)
1902 {
1903 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
1904 (void)lan8720_deinit(&gs_handle);
1905
1906 return 1;
1907 }
1908 lan8720_interface_debug_print("lan8720: enable link down.\n");
1909 res = lan8720_get_interrupt_mask(&gs_handle, LAN8720_INTERRUPT_LINK_DOWN, &enable);
1910 if (res != 0)
1911 {
1912 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
1913 (void)lan8720_deinit(&gs_handle);
1914
1915 return 1;
1916 }
1917 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
1918
1919 /* disable link down */
1921 if (res != 0)
1922 {
1923 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
1924 (void)lan8720_deinit(&gs_handle);
1925
1926 return 1;
1927 }
1928 lan8720_interface_debug_print("lan8720: disable link down.\n");
1929 res = lan8720_get_interrupt_mask(&gs_handle, LAN8720_INTERRUPT_LINK_DOWN, &enable);
1930 if (res != 0)
1931 {
1932 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
1933 (void)lan8720_deinit(&gs_handle);
1934
1935 return 1;
1936 }
1937 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
1938
1939 /* enable auto negotiation lp acknowledge */
1941 if (res != 0)
1942 {
1943 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
1944 (void)lan8720_deinit(&gs_handle);
1945
1946 return 1;
1947 }
1948 lan8720_interface_debug_print("lan8720: enable auto negotiation lp acknowledge.\n");
1950 if (res != 0)
1951 {
1952 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
1953 (void)lan8720_deinit(&gs_handle);
1954
1955 return 1;
1956 }
1957 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
1958
1959 /* disable auto negotiation lp acknowledge */
1961 if (res != 0)
1962 {
1963 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
1964 (void)lan8720_deinit(&gs_handle);
1965
1966 return 1;
1967 }
1968 lan8720_interface_debug_print("lan8720: disable auto negotiation lp acknowledge.\n");
1970 if (res != 0)
1971 {
1972 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
1973 (void)lan8720_deinit(&gs_handle);
1974
1975 return 1;
1976 }
1977 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
1978
1979 /* enable parallel detection fault */
1981 if (res != 0)
1982 {
1983 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
1984 (void)lan8720_deinit(&gs_handle);
1985
1986 return 1;
1987 }
1988 lan8720_interface_debug_print("lan8720: enable parallel detection fault.\n");
1990 if (res != 0)
1991 {
1992 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
1993 (void)lan8720_deinit(&gs_handle);
1994
1995 return 1;
1996 }
1997 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
1998
1999 /* disable parallel detection fault */
2001 if (res != 0)
2002 {
2003 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
2004 (void)lan8720_deinit(&gs_handle);
2005
2006 return 1;
2007 }
2008 lan8720_interface_debug_print("lan8720: disable parallel detection fault.\n");
2010 if (res != 0)
2011 {
2012 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
2013 (void)lan8720_deinit(&gs_handle);
2014
2015 return 1;
2016 }
2017 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
2018
2019 /* enable auto negotiation page received */
2021 if (res != 0)
2022 {
2023 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
2024 (void)lan8720_deinit(&gs_handle);
2025
2026 return 1;
2027 }
2028 lan8720_interface_debug_print("lan8720: enable auto negotiation page received.\n");
2030 if (res != 0)
2031 {
2032 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
2033 (void)lan8720_deinit(&gs_handle);
2034
2035 return 1;
2036 }
2037 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_TRUE ? "ok" : "error");
2038
2039 /* disable auto negotiation page received */
2041 if (res != 0)
2042 {
2043 lan8720_interface_debug_print("lan8720: set interrupt mask failed.\n");
2044 (void)lan8720_deinit(&gs_handle);
2045
2046 return 1;
2047 }
2048 lan8720_interface_debug_print("lan8720: disable auto negotiation page received.\n");
2050 if (res != 0)
2051 {
2052 lan8720_interface_debug_print("lan8720: get interrupt mask failed.\n");
2053 (void)lan8720_deinit(&gs_handle);
2054
2055 return 1;
2056 }
2057 lan8720_interface_debug_print("lan8720: check interrupt mask %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
2058
2059 /* lan8720_get_auto_negotiation_done test */
2060 lan8720_interface_debug_print("lan8720: lan8720_get_auto_negotiation_done test.\n");
2061
2062 /* get auto negotiation done */
2063 res = lan8720_get_auto_negotiation_done(&gs_handle, &enable);
2064 if (res != 0)
2065 {
2066 lan8720_interface_debug_print("lan8720: get auto negotiation done failed.\n");
2067 (void)lan8720_deinit(&gs_handle);
2068
2069 return 1;
2070 }
2071 lan8720_interface_debug_print("lan8720: check auto negotiation done %s.\n", enable == LAN8720_BOOL_TRUE ? "true" : "false");
2072
2073 /* lan8720_get_speed_indication test */
2074 lan8720_interface_debug_print("lan8720: lan8720_get_speed_indication test.\n");
2075
2076 /* get speed indication */
2077 res = lan8720_get_speed_indication(&gs_handle, &speed_indication);
2078 if (res != 0)
2079 {
2080 lan8720_interface_debug_print("lan8720: get speed indication failed.\n");
2081 (void)lan8720_deinit(&gs_handle);
2082
2083 return 1;
2084 }
2085 lan8720_interface_debug_print("lan8720: check speed indication 0x%02X.\n", speed_indication);
2086
2087 /* lan8720_set_soft_reset/lan8720_get_soft_reset test */
2088 lan8720_interface_debug_print("lan8720: lan8720_set_soft_reset/lan8720_get_soft_reset test.\n");
2089
2090 /* enable soft reset */
2091 res = lan8720_set_soft_reset(&gs_handle, LAN8720_BOOL_TRUE);
2092 if (res != 0)
2093 {
2094 lan8720_interface_debug_print("lan8720: set soft reset failed.\n");
2095 (void)lan8720_deinit(&gs_handle);
2096
2097 return 1;
2098 }
2099 lan8720_interface_debug_print("lan8720: enable soft reset.\n");
2101 res = lan8720_get_soft_reset(&gs_handle, &enable);
2102 if (res != 0)
2103 {
2104 lan8720_interface_debug_print("lan8720: get soft reset failed.\n");
2105 (void)lan8720_deinit(&gs_handle);
2106
2107 return 1;
2108 }
2109 lan8720_interface_debug_print("lan8720: check soft reset %s.\n", enable == LAN8720_BOOL_FALSE ? "ok" : "error");
2110
2111 /* finish register */
2112 lan8720_interface_debug_print("lan8720: finish register test.\n");
2113 (void)lan8720_deinit(&gs_handle);
2114
2115 return 0;
2116}
driver lan8720 register test header file
uint8_t lan8720_get_auto_negotiation_expansion_link_partner_auto_negotiation_able(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation expansion link partner auto negotiation able status
uint8_t lan8720_get_auto_negotiation_link_partner_ability_remote_fault(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation link partner ability remote fault status
uint8_t lan8720_get_auto_negotiation_done(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation done status
uint8_t lan8720_set_energy_detect_power_down_mode(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable energy detect power down mode
uint8_t lan8720_get_auto_negotiation_advertisement_100base_tx_full_duplex(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation advertisement 100base tx full duplex status
uint8_t lan8720_get_auto_negotiation_link_partner_ability_selector_field(lan8720_handle_t *handle, uint8_t *selector)
get auto negotiation link partner ability selector field
uint8_t lan8720_get_auto_mdix(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto mdix status
uint8_t lan8720_get_auto_negotiation_advertisement_10base_t_full_duplex(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation advertisement 10base t full duplex status
uint8_t lan8720_get_interrupt_mask(lan8720_handle_t *handle, lan8720_interrupt_t interrupt, lan8720_bool_t *enable)
get interrupt mask status
uint8_t lan8720_get_energy_detected(lan8720_handle_t *handle, lan8720_bool_t *enable)
get energy detected status
uint8_t lan8720_get_phy_address(lan8720_handle_t *handle, uint8_t *addr)
get phy address
uint8_t lan8720_get_auto_negotiation_link_partner_ability_100base_tx(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation link partner ability 100base tx status
uint8_t lan8720_get_auto_negotiation_advertisement_remote_fault(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation advertisement remote fault status
uint8_t lan8720_set_interrupt_mask(lan8720_handle_t *handle, lan8720_interrupt_t interrupt, lan8720_bool_t enable)
set interrupt mask
uint8_t lan8720_set_auto_negotiation_advertisement_pause(lan8720_handle_t *handle, lan8720_pause_t pause)
set auto negotiation advertisement pause
uint8_t lan8720_set_auto_negotiation_advertisement_10base_t(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable auto negotiation advertisement 10base t
lan8720_polarity_t
lan8720 polarity enumeration definition
uint8_t lan8720_get_symbol_error_counter(lan8720_handle_t *handle, uint16_t *cnt)
get symbol error counter
uint8_t lan8720_get_auto_negotiation_advertisement_100base_tx(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation advertisement 100base tx status
struct lan8720_info_s lan8720_info_t
lan8720 information structure definition
uint8_t lan8720_get_energy_detect_power_down_mode(lan8720_handle_t *handle, lan8720_bool_t *enable)
get energy detect power down mode status
uint8_t lan8720_get_auto_negotiation_advertisement_selector_field(lan8720_handle_t *handle, uint8_t *selector)
get auto negotiation advertisement selector field
uint8_t lan8720_set_auto_negotiation_advertisement_100base_tx_full_duplex(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable auto negotiation advertisement 100base tx full duplex
lan8720_mode_t
lan8720 mode enumeration definition
uint8_t lan8720_get_auto_negotiation_link_partner_ability_next_page(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation link partner ability next page status
uint8_t lan8720_get_auto_negotiation_link_partner_ability_10base_t(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation link partner ability 10base t status
uint8_t lan8720_get_auto_negotiation_link_partner_ability_10base_t_full_duplex(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation link partner ability 10base t full duplex status
uint8_t lan8720_get_polarity(lan8720_handle_t *handle, lan8720_polarity_t *polarity)
get polarity
uint8_t lan8720_set_auto_negotiation_advertisement_100base_tx(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable auto negotiation advertisement 100base tx
lan8720_manual_channel_select_t
lan8720 manual channel select enumeration definition
uint8_t lan8720_get_auto_negotiation_expansion_page_received(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation expansion page received status
uint8_t lan8720_get_auto_negotiation_expansion_link_partner_next_page_able(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation expansion link partner next page able status
uint8_t lan8720_set_phy_address(lan8720_handle_t *handle, uint8_t addr)
set phy address
uint8_t lan8720_set_auto_negotiation_advertisement_selector_field(lan8720_handle_t *handle, uint8_t selector)
set auto negotiation advertisement selector field
uint8_t lan8720_get_far_loop_back(lan8720_handle_t *handle, lan8720_bool_t *enable)
get far loop back status
uint8_t lan8720_set_identifier(lan8720_handle_t *handle, uint32_t phy_id, uint8_t model_number, uint8_t revision_number)
set identifier
uint8_t lan8720_get_auto_negotiation_link_partner_ability_100base_t4(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation link partner ability 100base t4 status
uint8_t lan8720_set_far_loop_back(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable far loop back
uint8_t lan8720_get_identifier(lan8720_handle_t *handle, uint32_t *phy_id, uint8_t *model_number, uint8_t *revision_number)
get identifier
uint8_t lan8720_set_mode(lan8720_handle_t *handle, lan8720_mode_t mode)
set mode
uint8_t lan8720_set_manual_channel_select(lan8720_handle_t *handle, lan8720_manual_channel_select_t select)
set manual channel select
uint8_t lan8720_get_auto_negotiation_link_partner_ability_100base_tx_full_duplex(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation link partner ability 100base tx full duplex status
uint8_t lan8720_get_auto_negotiation_link_partner_ability_acknowledge(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation link partner ability acknowledge status
uint8_t lan8720_set_auto_negotiation_advertisement_remote_fault(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable auto negotiation advertisement remote fault
uint8_t lan8720_get_interrupt_flag(lan8720_handle_t *handle, lan8720_interrupt_t interrupt, lan8720_bool_t *enable)
get interrupt flag status
uint8_t lan8720_get_speed_indication(lan8720_handle_t *handle, lan8720_speed_indication_t *speed)
get speed indication
uint8_t lan8720_get_auto_negotiation_link_partner_ability_pause(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation link partner ability pause status
uint8_t lan8720_get_auto_negotiation_expansion_parallel_detection_fault(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation expansion parallel detection fault status
uint8_t lan8720_get_auto_negotiation_advertisement_pause(lan8720_handle_t *handle, lan8720_pause_t *pause)
get auto negotiation advertisement pause
uint8_t lan8720_set_auto_negotiation_advertisement_10base_t_full_duplex(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable auto negotiation advertisement 10base t full duplex
uint8_t lan8720_get_sqe_test_off(lan8720_handle_t *handle, lan8720_bool_t *enable)
get sqe test off status
lan8720_speed_indication_t
lan8720 speed indication enumeration definition
uint8_t lan8720_get_manual_channel_select(lan8720_handle_t *handle, lan8720_manual_channel_select_t *select)
get manual channel select
uint8_t lan8720_get_alternate_interrupt_mode(lan8720_handle_t *handle, lan8720_bool_t *enable)
get alternate interrupt mode status
uint8_t lan8720_set_auto_mdix(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable auto mdix
uint8_t lan8720_set_alternate_interrupt_mode(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable alternate interrupt mode
struct lan8720_handle_s lan8720_handle_t
lan8720 handle structure definition
uint8_t lan8720_get_auto_negotiation_expansion_next_page_able(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation expansion next page able status
uint8_t lan8720_get_mode(lan8720_handle_t *handle, lan8720_mode_t *mode)
get mode
uint8_t lan8720_get_auto_negotiation_advertisement_10base_t(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation advertisement 10base t status
lan8720_pause_t
lan8720 pause enumeration definition
uint8_t lan8720_set_sqe_test_off(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable sqe test off
@ LAN8720_POLARITY_NORMAL
@ LAN8720_MODE_100BASE_TX_HALF_DUPLEX
@ LAN8720_MODE_10BASE_T_HALF_DUPLEX
@ LAN8720_MODE_ALL_CAPABLE
@ LAN8720_MODE_100BASE_TX_HALF_DUPLEX_ADVERTISED
@ LAN8720_MODE_10BASE_T_FULL_DUPLEX
@ LAN8720_MODE_POWER_DOWN_MODE
@ LAN8720_MODE_REPEATER_MODE
@ LAN8720_MODE_100BASE_TX_FULL_DUPLEX
@ LAN8720_MANUAL_CHANNEL_SELECT_MDIX
@ LAN8720_MANUAL_CHANNEL_SELECT_MDI
@ LAN8720_INTERRUPT_ENERGY_ON
@ LAN8720_INTERRUPT_PARALLEL_DETECTION_FAULT
@ LAN8720_INTERRUPT_LINK_DOWN
@ LAN8720_INTERRUPT_REMOTE_FAULT
@ LAN8720_INTERRUPT_AUTO_NEGOTIATION_COMPLETE
@ LAN8720_INTERRUPT_AUTO_NEGOTIATION_PAGE_RECEIVED
@ LAN8720_INTERRUPT_AUTO_NEGOTIATION_LP_ACK
@ LAN8720_PAUSE_BOTH
@ LAN8720_PAUSE_NO
@ LAN8720_PAUSE_ASYMMETRIC
@ LAN8720_PAUSE_SYMMETRIC
uint8_t lan8720_set_duplex_mode(lan8720_handle_t *handle, lan8720_duplex_t mode)
set duplex mode
uint8_t lan8720_get_auto_negotiate_ability(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiate ability status
uint8_t lan8720_get_extended_status_information(lan8720_handle_t *handle, lan8720_bool_t *enable)
get extended status information status
uint8_t lan8720_get_electrical_isolation(lan8720_handle_t *handle, lan8720_bool_t *enable)
get electrical isolation status
uint8_t lan8720_get_100base_t4(lan8720_handle_t *handle, lan8720_bool_t *enable)
get 100base t4 status
uint8_t lan8720_set_loop_back(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable loop back
uint8_t lan8720_get_address(lan8720_handle_t *handle, uint8_t *addr)
get the chip address
uint8_t lan8720_get_link_status(lan8720_handle_t *handle, lan8720_link_t *status)
get link status
uint8_t lan8720_set_speed_select(lan8720_handle_t *handle, lan8720_speed_t speed)
set speed select
uint8_t lan8720_get_restart_auto_negotiate(lan8720_handle_t *handle, lan8720_bool_t *enable)
get restart auto negotiate status
uint8_t lan8720_init(lan8720_handle_t *handle)
initialize the chip
uint8_t lan8720_get_duplex_mode(lan8720_handle_t *handle, lan8720_duplex_t *mode)
get duplex mode
uint8_t lan8720_get_100base_tx_full_duplex(lan8720_handle_t *handle, lan8720_bool_t *enable)
get 100base tx full duplex status
lan8720_bool_t
lan8720 bool enumeration definition
uint8_t lan8720_deinit(lan8720_handle_t *handle)
close the chip
uint8_t lan8720_get_auto_negotiation(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiation status
uint8_t lan8720_get_remote_fault(lan8720_handle_t *handle, lan8720_bool_t *enable)
get remote fault status
lan8720_duplex_t
lan8720 duplex enumeration definition
uint8_t lan8720_set_restart_auto_negotiate(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable restart auto negotiate
uint8_t lan8720_get_100base_t2_half_duplex(lan8720_handle_t *handle, lan8720_bool_t *enable)
get 100base t2 half duplex status
uint8_t lan8720_get_100base_tx_half_duplex(lan8720_handle_t *handle, lan8720_bool_t *enable)
get 100base tx half duplex status
uint8_t lan8720_get_loop_back(lan8720_handle_t *handle, lan8720_bool_t *enable)
get loop back status
uint8_t lan8720_get_10base_t_full_duplex(lan8720_handle_t *handle, lan8720_bool_t *enable)
get 10base t full duplex status
uint8_t lan8720_set_soft_reset(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable soft reset
uint8_t lan8720_get_speed_select(lan8720_handle_t *handle, lan8720_speed_t *speed)
get speed select status
lan8720_link_t
lan8720 link enumeration definition
uint8_t lan8720_set_auto_negotiation(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable auto negotiation
uint8_t lan8720_get_soft_reset(lan8720_handle_t *handle, lan8720_bool_t *enable)
get soft reset status
uint8_t lan8720_get_auto_negotiate_complete(lan8720_handle_t *handle, lan8720_bool_t *enable)
get auto negotiate complete status
uint8_t lan8720_get_100base_t2_full_duplex(lan8720_handle_t *handle, lan8720_bool_t *enable)
get 100base t2 full duplex status
uint8_t lan8720_get_10base_t_half_duplex(lan8720_handle_t *handle, lan8720_bool_t *enable)
get 10base t half duplex status
uint8_t lan8720_info(lan8720_info_t *info)
get chip's information
uint8_t lan8720_set_power_down(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable power down
uint8_t lan8720_get_extended_capabilities(lan8720_handle_t *handle, lan8720_bool_t *enable)
get extended capabilities status
uint8_t lan8720_get_jabber_detect(lan8720_handle_t *handle, lan8720_bool_t *enable)
get jabber detect status
lan8720_speed_t
lan8720 speed enumeration definition
uint8_t lan8720_set_address(lan8720_handle_t *handle, uint8_t addr)
set the chip address
uint8_t lan8720_get_power_down(lan8720_handle_t *handle, lan8720_bool_t *enable)
get power down status
uint8_t lan8720_set_electrical_isolation(lan8720_handle_t *handle, lan8720_bool_t enable)
enable or disable electrical isolation
@ LAN8720_BOOL_FALSE
@ LAN8720_BOOL_TRUE
@ LAN8720_DUPLEX_FULL
@ LAN8720_DUPLEX_HALF
@ LAN8720_LINK_DOWN
@ LAN8720_SPEED_10M
@ LAN8720_SPEED_100M
uint8_t lan8720_interface_reset_gpio_deinit(void)
interface reset gpio deinit
uint8_t lan8720_interface_reset_gpio_write(uint8_t level)
interface reset gpio write
void lan8720_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t lan8720_interface_smi_deinit(void)
interface smi bus deinit
uint8_t lan8720_interface_smi_init(void)
interface smi bus init
uint8_t lan8720_interface_smi_read(uint8_t addr, uint8_t reg, uint16_t *data)
interface smi bus read
void lan8720_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t lan8720_interface_reset_gpio_init(void)
interface reset gpio init
uint8_t lan8720_interface_smi_write(uint8_t addr, uint8_t reg, uint16_t data)
interface smi bus write
uint8_t lan8720_register_test(uint8_t addr)
register test
uint32_t driver_version
char manufacturer_name[32]