2 * Copyright (C) 2013 Realtek Semiconductor Corp.
5 * Unless you and Realtek execute a separate written software license
6 * agreement governing use of this software, this software is licensed
7 * to you under the terms of the GNU General Public License version 2,
8 * available at https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
10 * Purpose : RTL8367/RTL8367C switch high-level API
12 * Feature : The file includes port module high-layer API defination
16 #ifndef __RTK_API_PORT_H__
17 #define __RTK_API_PORT_H__
20 * Data Type Declaration
23 #define PHY_CONTROL_REG 0
24 #define PHY_STATUS_REG 1
25 #define PHY_AN_ADVERTISEMENT_REG 4
26 #define PHY_AN_LINKPARTNER_REG 5
27 #define PHY_1000_BASET_CONTROL_REG 9
28 #define PHY_1000_BASET_STATUS_REG 10
29 #define PHY_RESOLVED_REG 26
31 #define RTK_EFID_MAX 0x7
33 #define RTK_FIBER_FORCE_1000M 3
34 #define RTK_FIBER_FORCE_100M 5
35 #define RTK_FIBER_FORCE_100M1000M 7
37 #define RTK_INDRECT_ACCESS_CRTL 0x1f00
38 #define RTK_INDRECT_ACCESS_STATUS 0x1f01
39 #define RTK_INDRECT_ACCESS_ADDRESS 0x1f02
40 #define RTK_INDRECT_ACCESS_WRITE_DATA 0x1f03
41 #define RTK_INDRECT_ACCESS_READ_DATA 0x1f04
42 #define RTK_INDRECT_ACCESS_DELAY 0x1f80
43 #define RTK_INDRECT_ACCESS_BURST 0x1f81
44 #define RTK_RW_MASK 0x2
45 #define RTK_CMD_MASK 0x1
46 #define RTK_PHY_BUSY_OFFSET 2
49 typedef enum rtk_mode_ext_e
75 typedef enum rtk_port_duplex_e
82 typedef enum rtk_port_linkStatus_e
87 } rtk_port_linkStatus_t
;
89 typedef struct rtk_port_mac_ability_s
98 }rtk_port_mac_ability_t
;
100 typedef struct rtk_port_phy_ability_s
102 rtk_uint32 AutoNegotiation
; /*PHY register 0.12 setting for auto-negotiation process*/
103 rtk_uint32 Half_10
; /*PHY register 4.5 setting for 10BASE-TX half duplex capable*/
104 rtk_uint32 Full_10
; /*PHY register 4.6 setting for 10BASE-TX full duplex capable*/
105 rtk_uint32 Half_100
; /*PHY register 4.7 setting for 100BASE-TX half duplex capable*/
106 rtk_uint32 Full_100
; /*PHY register 4.8 setting for 100BASE-TX full duplex capable*/
107 rtk_uint32 Full_1000
; /*PHY register 9.9 setting for 1000BASE-T full duplex capable*/
108 rtk_uint32 FC
; /*PHY register 4.10 setting for flow control capability*/
109 rtk_uint32 AsyFC
; /*PHY register 4.11 setting for asymmetric flow control capability*/
110 } rtk_port_phy_ability_t
;
112 typedef rtk_uint32 rtk_port_phy_data_t
; /* phy page */
114 typedef enum rtk_port_phy_mdix_mode_e
116 PHY_AUTO_CROSSOVER_MODE
= 0,
120 } rtk_port_phy_mdix_mode_t
;
122 typedef enum rtk_port_phy_mdix_status_e
124 PHY_STATUS_AUTO_MDI_MODE
= 0,
125 PHY_STATUS_AUTO_MDIX_MODE
,
126 PHY_STATUS_FORCE_MDI_MODE
,
127 PHY_STATUS_FORCE_MDIX_MODE
,
128 PHY_STATUS_FORCE_MODE_END
129 } rtk_port_phy_mdix_status_t
;
131 typedef rtk_uint32 rtk_port_phy_page_t
; /* phy page */
133 typedef enum rtk_port_phy_reg_e
137 PHY_REG_IDENTIFIER_1
,
138 PHY_REG_IDENTIFIER_2
,
139 PHY_REG_AN_ADVERTISEMENT
,
140 PHY_REG_AN_LINKPARTNER
,
141 PHY_REG_1000_BASET_CONTROL
= 9,
142 PHY_REG_1000_BASET_STATUS
,
144 } rtk_port_phy_reg_t
;
146 typedef enum rtk_port_phy_test_mode_e
148 PHY_TEST_MODE_NORMAL
= 0,
154 } rtk_port_phy_test_mode_t
;
156 typedef enum rtk_port_speed_e
166 typedef enum rtk_port_media_e
168 PORT_MEDIA_COPPER
= 0,
173 typedef struct rtk_rtctResult_s
175 rtk_port_speed_t linkType
;
180 rtk_uint32 isRxShort
;
181 rtk_uint32 isTxShort
;
184 rtk_uint32 isRxMismatch
;
185 rtk_uint32 isTxMismatch
;
186 rtk_uint32 isRxLinedriver
;
187 rtk_uint32 isTxLinedriver
;
194 rtk_uint32 channelAShort
;
195 rtk_uint32 channelBShort
;
196 rtk_uint32 channelCShort
;
197 rtk_uint32 channelDShort
;
199 rtk_uint32 channelAOpen
;
200 rtk_uint32 channelBOpen
;
201 rtk_uint32 channelCOpen
;
202 rtk_uint32 channelDOpen
;
204 rtk_uint32 channelAMismatch
;
205 rtk_uint32 channelBMismatch
;
206 rtk_uint32 channelCMismatch
;
207 rtk_uint32 channelDMismatch
;
209 rtk_uint32 channelALinedriver
;
210 rtk_uint32 channelBLinedriver
;
211 rtk_uint32 channelCLinedriver
;
212 rtk_uint32 channelDLinedriver
;
214 rtk_uint32 channelALen
;
215 rtk_uint32 channelBLen
;
216 rtk_uint32 channelCLen
;
217 rtk_uint32 channelDLen
;
223 * rtk_port_phyAutoNegoAbility_set
225 * Set ethernet PHY auto-negotiation desired ability.
228 * pAbility - Ability structure
233 * RT_ERR_FAILED - Failed
234 * RT_ERR_SMI - SMI access error
235 * RT_ERR_PORT_ID - Invalid port number.
236 * RT_ERR_PHY_REG_ID - Invalid PHY address
237 * RT_ERR_INPUT - Invalid input parameters.
238 * RT_ERR_BUSYWAIT_TIMEOUT - PHY access busy
240 * If Full_1000 bit is set to 1, the AutoNegotiation will be automatic set to 1. While both AutoNegotiation and Full_1000 are set to 0, the PHY speed and duplex selection will
241 * be set as following 100F > 100H > 10F > 10H priority sequence.
243 extern rtk_api_ret_t
rtk_port_phyAutoNegoAbility_set(rtk_port_t port
, rtk_port_phy_ability_t
*pAbility
);
246 * rtk_port_phyAutoNegoAbility_get
248 * Get PHY ability through PHY registers.
252 * pAbility - Ability structure
255 * RT_ERR_FAILED - Failed
256 * RT_ERR_SMI - SMI access error
257 * RT_ERR_PORT_ID - Invalid port number.
258 * RT_ERR_PHY_REG_ID - Invalid PHY address
259 * RT_ERR_INPUT - Invalid input parameters.
260 * RT_ERR_BUSYWAIT_TIMEOUT - PHY access busy
262 * Get the capablity of specified PHY.
264 extern rtk_api_ret_t
rtk_port_phyAutoNegoAbility_get(rtk_port_t port
, rtk_port_phy_ability_t
*pAbility
);
267 * rtk_port_phyForceModeAbility_set
269 * Set the port speed/duplex mode/pause/asy_pause in the PHY force mode.
272 * pAbility - Ability structure
277 * RT_ERR_FAILED - Failed
278 * RT_ERR_SMI - SMI access error
279 * RT_ERR_PORT_ID - Invalid port number.
280 * RT_ERR_PHY_REG_ID - Invalid PHY address
281 * RT_ERR_INPUT - Invalid input parameters.
282 * RT_ERR_BUSYWAIT_TIMEOUT - PHY access busy
284 * While both AutoNegotiation and Full_1000 are set to 0, the PHY speed and duplex selection will
285 * be set as following 100F > 100H > 10F > 10H priority sequence.
287 extern rtk_api_ret_t
rtk_port_phyForceModeAbility_set(rtk_port_t port
, rtk_port_phy_ability_t
*pAbility
);
290 * rtk_port_phyForceModeAbility_get
292 * Get PHY ability through PHY registers.
296 * pAbility - Ability structure
299 * RT_ERR_FAILED - Failed
300 * RT_ERR_SMI - SMI access error
301 * RT_ERR_PORT_ID - Invalid port number.
302 * RT_ERR_PHY_REG_ID - Invalid PHY address
303 * RT_ERR_INPUT - Invalid input parameters.
304 * RT_ERR_BUSYWAIT_TIMEOUT - PHY access busy
306 * Get the capablity of specified PHY.
308 extern rtk_api_ret_t
rtk_port_phyForceModeAbility_get(rtk_port_t port
, rtk_port_phy_ability_t
*pAbility
);
311 * rtk_port_phyStatus_get
313 * Get ethernet PHY linking status
317 * linkStatus - PHY link status
318 * speed - PHY link speed
319 * duplex - PHY duplex mode
322 * RT_ERR_FAILED - Failed
323 * RT_ERR_SMI - SMI access error
324 * RT_ERR_PORT_ID - Invalid port number.
325 * RT_ERR_PHY_REG_ID - Invalid PHY address
326 * RT_ERR_INPUT - Invalid input parameters.
327 * RT_ERR_BUSYWAIT_TIMEOUT - PHY access busy
329 * API will return auto negotiation status of phy.
331 extern rtk_api_ret_t
rtk_port_phyStatus_get(rtk_port_t port
, rtk_port_linkStatus_t
*pLinkStatus
, rtk_port_speed_t
*pSpeed
, rtk_port_duplex_t
*pDuplex
);
334 * rtk_port_macForceLink_set
336 * Set port force linking configuration.
339 * pPortability - port ability configuration
344 * RT_ERR_FAILED - Failed
345 * RT_ERR_SMI - SMI access error
346 * RT_ERR_PORT_ID - Invalid port number.
348 * This API can set Port/MAC force mode properties.
350 extern rtk_api_ret_t
rtk_port_macForceLink_set(rtk_port_t port
, rtk_port_mac_ability_t
*pPortability
);
353 * rtk_port_macForceLink_get
355 * Get port force linking configuration.
359 * pPortability - port ability configuration
362 * RT_ERR_FAILED - Failed
363 * RT_ERR_SMI - SMI access error
364 * RT_ERR_PORT_ID - Invalid port number.
365 * RT_ERR_INPUT - Invalid input parameters.
367 * This API can get Port/MAC force mode properties.
369 extern rtk_api_ret_t
rtk_port_macForceLink_get(rtk_port_t port
, rtk_port_mac_ability_t
*pPortability
);
372 * rtk_port_macForceLinkExt_set
374 * Set external interface force linking configuration.
376 * port - external port ID
377 * mode - external interface mode
378 * pPortability - port ability configuration
383 * RT_ERR_FAILED - Failed
384 * RT_ERR_SMI - SMI access error
385 * RT_ERR_INPUT - Invalid input parameters.
387 * This API can set external interface force mode properties.
388 * The external interface can be set to:
389 * - MODE_EXT_DISABLE,
391 * - MODE_EXT_MII_MAC,
392 * - MODE_EXT_MII_PHY,
393 * - MODE_EXT_TMII_MAC,
394 * - MODE_EXT_TMII_PHY,
396 * - MODE_EXT_RMII_MAC,
397 * - MODE_EXT_RMII_PHY,
400 * - MODE_EXT_1000X_100FX,
404 extern rtk_api_ret_t
rtk_port_macForceLinkExt_set(rtk_port_t port
, rtk_mode_ext_t mode
, rtk_port_mac_ability_t
*pPortability
);
407 * rtk_port_macForceLinkExt_get
409 * Set external interface force linking configuration.
411 * port - external port ID
413 * pMode - external interface mode
414 * pPortability - port ability configuration
417 * RT_ERR_FAILED - Failed
418 * RT_ERR_SMI - SMI access error
419 * RT_ERR_INPUT - Invalid input parameters.
421 * This API can get external interface force mode properties.
423 extern rtk_api_ret_t
rtk_port_macForceLinkExt_get(rtk_port_t port
, rtk_mode_ext_t
*pMode
, rtk_port_mac_ability_t
*pPortability
);
426 * rtk_port_macStatus_get
428 * Get port link status.
432 * pPortstatus - port ability configuration
435 * RT_ERR_FAILED - Failed
436 * RT_ERR_SMI - SMI access error
437 * RT_ERR_PORT_ID - Invalid port number.
439 * This API can get Port/PHY properties.
441 extern rtk_api_ret_t
rtk_port_macStatus_get(rtk_port_t port
, rtk_port_mac_ability_t
*pPortstatus
);
444 * rtk_port_macLocalLoopbackEnable_set
446 * Set Port Local Loopback. (Redirect TX to RX.)
449 * enable - Loopback state, 0:disable, 1:enable
454 * RT_ERR_FAILED - Failed
455 * RT_ERR_SMI - SMI access error
456 * RT_ERR_PORT_ID - Invalid port number.
458 * This API can enable/disable Local loopback in MAC.
459 * For UTP port, This API will also enable the digital
460 * loopback bit in PHY register for sync of speed between
461 * PHY and MAC. For EXT port, users need to force the
462 * link state by themself.
464 extern rtk_api_ret_t
rtk_port_macLocalLoopbackEnable_set(rtk_port_t port
, rtk_enable_t enable
);
467 * rtk_port_macLocalLoopbackEnable_get
469 * Get Port Local Loopback. (Redirect TX to RX.)
473 * pEnable - Loopback state, 0:disable, 1:enable
476 * RT_ERR_FAILED - Failed
477 * RT_ERR_SMI - SMI access error
478 * RT_ERR_PORT_ID - Invalid port number.
482 extern rtk_api_ret_t
rtk_port_macLocalLoopbackEnable_get(rtk_port_t port
, rtk_enable_t
*pEnable
);
485 * rtk_port_phyReg_set
487 * Set PHY register data of the specific port.
491 * regData - Register data
496 * RT_ERR_FAILED - Failed
497 * RT_ERR_SMI - SMI access error
498 * RT_ERR_PORT_ID - Invalid port number.
499 * RT_ERR_PHY_REG_ID - Invalid PHY address
500 * RT_ERR_BUSYWAIT_TIMEOUT - PHY access busy
502 * This API can set PHY register data of the specific port.
504 extern rtk_api_ret_t
rtk_port_phyReg_set(rtk_port_t port
, rtk_port_phy_reg_t reg
, rtk_port_phy_data_t value
);
507 * rtk_port_phyReg_get
509 * Get PHY register data of the specific port.
514 * pData - Register data
517 * RT_ERR_FAILED - Failed
518 * RT_ERR_SMI - SMI access error
519 * RT_ERR_PORT_ID - Invalid port number.
520 * RT_ERR_PHY_REG_ID - Invalid PHY address
521 * RT_ERR_BUSYWAIT_TIMEOUT - PHY access busy
523 * This API can get PHY register data of the specific port.
525 extern rtk_api_ret_t
rtk_port_phyReg_get(rtk_port_t port
, rtk_port_phy_reg_t reg
, rtk_port_phy_data_t
*pData
);
528 * rtk_port_backpressureEnable_set
530 * Set the half duplex backpressure enable status of the specific port.
533 * enable - Back pressure status.
538 * RT_ERR_FAILED - Failed
539 * RT_ERR_SMI - SMI access error
540 * RT_ERR_PORT_ID - Invalid port number.
541 * RT_ERR_ENABLE - Invalid enable input.
543 * This API can set the half duplex backpressure enable status of the specific port.
544 * The half duplex backpressure enable status of the port is as following:
548 extern rtk_api_ret_t
rtk_port_backpressureEnable_set(rtk_port_t port
, rtk_enable_t enable
);
551 * rtk_port_backpressureEnable_get
553 * Get the half duplex backpressure enable status of the specific port.
557 * pEnable - Back pressure status.
560 * RT_ERR_FAILED - Failed
561 * RT_ERR_SMI - SMI access error
562 * RT_ERR_PORT_ID - Invalid port number.
564 * This API can get the half duplex backpressure enable status of the specific port.
565 * The half duplex backpressure enable status of the port is as following:
569 extern rtk_api_ret_t
rtk_port_backpressureEnable_get(rtk_port_t port
, rtk_enable_t
*pEnable
);
572 * rtk_port_adminEnable_set
574 * Set port admin configuration of the specific port.
577 * enable - Back pressure status.
582 * RT_ERR_FAILED - Failed
583 * RT_ERR_SMI - SMI access error
584 * RT_ERR_PORT_ID - Invalid port number.
585 * RT_ERR_ENABLE - Invalid enable input.
587 * This API can set port admin configuration of the specific port.
588 * The port admin configuration of the port is as following:
592 extern rtk_api_ret_t
rtk_port_adminEnable_set(rtk_port_t port
, rtk_enable_t enable
);
595 * rtk_port_adminEnable_get
597 * Get port admin configurationof the specific port.
601 * pEnable - Back pressure status.
604 * RT_ERR_FAILED - Failed
605 * RT_ERR_SMI - SMI access error
606 * RT_ERR_PORT_ID - Invalid port number.
608 * This API can get port admin configuration of the specific port.
609 * The port admin configuration of the port is as following:
613 extern rtk_api_ret_t
rtk_port_adminEnable_get(rtk_port_t port
, rtk_enable_t
*pEnable
);
616 * rtk_port_isolation_set
618 * Set permitted port isolation portmask
621 * pPortmask - Permit port mask
626 * RT_ERR_FAILED - Failed
627 * RT_ERR_SMI - SMI access error
628 * RT_ERR_PORT_ID - Invalid port number.
629 * RT_ERR_PORT_MASK - Invalid portmask.
631 * This API set the port mask that a port can trasmit packet to of each port
632 * A port can only transmit packet to ports included in permitted portmask
634 extern rtk_api_ret_t
rtk_port_isolation_set(rtk_port_t port
, rtk_portmask_t
*pPortmask
);
637 * rtk_port_isolation_get
639 * Get permitted port isolation portmask
643 * pPortmask - Permit port mask
646 * RT_ERR_FAILED - Failed
647 * RT_ERR_SMI - SMI access error
648 * RT_ERR_PORT_ID - Invalid port number.
650 * This API get the port mask that a port can trasmit packet to of each port
651 * A port can only transmit packet to ports included in permitted portmask
653 extern rtk_api_ret_t
rtk_port_isolation_get(rtk_port_t port
, rtk_portmask_t
*pPortmask
);
656 * rtk_port_rgmiiDelayExt_set
658 * Set RGMII interface delay value for TX and RX.
660 * txDelay - TX delay value, 1 for delay 2ns and 0 for no-delay
661 * rxDelay - RX delay value, 0~7 for delay setup.
666 * RT_ERR_FAILED - Failed
667 * RT_ERR_SMI - SMI access error
668 * RT_ERR_INPUT - Invalid input parameters.
670 * This API can set external interface 2 RGMII delay.
671 * In TX delay, there are 2 selection: no-delay and 2ns delay.
672 * In RX dekay, there are 8 steps for delay tunning. 0 for no-delay, and 7 for maximum delay.
674 extern rtk_api_ret_t
rtk_port_rgmiiDelayExt_set(rtk_port_t port
, rtk_data_t txDelay
, rtk_data_t rxDelay
);
677 * rtk_port_rgmiiDelayExt_get
679 * Get RGMII interface delay value for TX and RX.
683 * pTxDelay - TX delay value
684 * pRxDelay - RX delay value
687 * RT_ERR_FAILED - Failed
688 * RT_ERR_SMI - SMI access error
689 * RT_ERR_INPUT - Invalid input parameters.
691 * This API can set external interface 2 RGMII delay.
692 * In TX delay, there are 2 selection: no-delay and 2ns delay.
693 * In RX dekay, there are 8 steps for delay tunning. 0 for n0-delay, and 7 for maximum delay.
695 extern rtk_api_ret_t
rtk_port_rgmiiDelayExt_get(rtk_port_t port
, rtk_data_t
*pTxDelay
, rtk_data_t
*pRxDelay
);
698 * rtk_port_phyEnableAll_set
700 * Set all PHY enable status.
702 * enable - PHY Enable State.
707 * RT_ERR_FAILED - Failed
708 * RT_ERR_SMI - SMI access error
709 * RT_ERR_ENABLE - Invalid enable input.
711 * This API can set all PHY status.
712 * The configuration of all PHY is as following:
716 extern rtk_api_ret_t
rtk_port_phyEnableAll_set(rtk_enable_t enable
);
719 * rtk_port_phyEnableAll_get
721 * Get all PHY enable status.
725 * pEnable - PHY Enable State.
728 * RT_ERR_FAILED - Failed
729 * RT_ERR_SMI - SMI access error
731 * This API can set all PHY status.
732 * The configuration of all PHY is as following:
736 extern rtk_api_ret_t
rtk_port_phyEnableAll_get(rtk_enable_t
*pEnable
);
741 * Set port-based enhanced filtering database
744 * efid - Specified enhanced filtering database.
749 * RT_ERR_FAILED - Failed
750 * RT_ERR_SMI - SMI access error
751 * RT_ERR_L2_FID - Invalid fid.
752 * RT_ERR_INPUT - Invalid input parameter.
753 * RT_ERR_PORT_ID - Invalid port ID.
755 * The API can set port-based enhanced filtering database.
757 extern rtk_api_ret_t
rtk_port_efid_set(rtk_port_t port
, rtk_data_t efid
);
762 * Get port-based enhanced filtering database
766 * pEfid - Specified enhanced filtering database.
769 * RT_ERR_FAILED - Failed
770 * RT_ERR_SMI - SMI access error
771 * RT_ERR_INPUT - Invalid input parameters.
772 * RT_ERR_PORT_ID - Invalid port ID.
774 * The API can get port-based enhanced filtering database status.
776 extern rtk_api_ret_t
rtk_port_efid_get(rtk_port_t port
, rtk_data_t
*pEfid
);
779 * rtk_port_phyComboPortMedia_set
781 * Set Combo port media type
783 * port - Port id. (Should be Port 4)
784 * media - Media (COPPER or FIBER)
789 * RT_ERR_FAILED - Failed
790 * RT_ERR_SMI - SMI access error
791 * RT_ERR_INPUT - Invalid input parameters.
792 * RT_ERR_PORT_ID - Invalid port ID.
794 * The API can Set Combo port media type.
796 extern rtk_api_ret_t
rtk_port_phyComboPortMedia_set(rtk_port_t port
, rtk_port_media_t media
);
799 * rtk_port_phyComboPortMedia_get
801 * Get Combo port media type
803 * port - Port id. (Should be Port 4)
805 * pMedia - Media (COPPER or FIBER)
808 * RT_ERR_FAILED - Failed
809 * RT_ERR_SMI - SMI access error
810 * RT_ERR_INPUT - Invalid input parameters.
811 * RT_ERR_PORT_ID - Invalid port ID.
813 * The API can Set Combo port media type.
815 extern rtk_api_ret_t
rtk_port_phyComboPortMedia_get(rtk_port_t port
, rtk_port_media_t
*pMedia
);
818 * rtk_port_rtctEnable_set
822 * pPortmask - Port mask of RTCT enabled port
827 * RT_ERR_FAILED - Failed
828 * RT_ERR_SMI - SMI access error
829 * RT_ERR_PORT_MASK - Invalid port mask.
831 * The API can enable RTCT Test
833 extern rtk_api_ret_t
rtk_port_rtctEnable_set(rtk_portmask_t
*pPortmask
);
836 * rtk_port_rtctDisable_set
840 * pPortmask - Port mask of RTCT disabled port
845 * RT_ERR_FAILED - Failed
846 * RT_ERR_SMI - SMI access error
847 * RT_ERR_PORT_MASK - Invalid port mask.
849 * The API can disable RTCT Test
851 rtk_api_ret_t
rtk_port_rtctDisable_set(rtk_portmask_t
*pPortmask
);
855 * rtk_port_rtctResult_get
857 * Get the result of RTCT test
861 * pRtctResult - The result of RTCT result
864 * RT_ERR_FAILED - Failed
865 * RT_ERR_SMI - SMI access error
866 * RT_ERR_PORT_ID - Invalid port ID.
867 * RT_ERR_PHY_RTCT_NOT_FINISH - Testing does not finish.
869 * The API can get RTCT test result.
870 * RTCT test may takes 4.8 seconds to finish its test at most.
871 * Thus, if this API return RT_ERR_PHY_RTCT_NOT_FINISH or
872 * other error code, the result can not be referenced and
873 * user should call this API again until this API returns
875 * The result is stored at pRtctResult->ge_result
876 * pRtctResult->linkType is unused.
877 * The unit of channel length is 2.5cm. Ex. 300 means 300 * 2.5 = 750cm = 7.5M
879 extern rtk_api_ret_t
rtk_port_rtctResult_get(rtk_port_t port
, rtk_rtctResult_t
*pRtctResult
);
891 * RT_ERR_FAILED - Failed
892 * RT_ERR_SMI - SMI access error
893 * RT_ERR_PORT_ID - Invalid port ID.
895 * The API can reset Serdes
897 extern rtk_api_ret_t
rtk_port_sds_reset(rtk_port_t port
);
900 * rtk_port_sgmiiLinkStatus_get
906 * pSignalDetect - Signal detect
911 * RT_ERR_FAILED - Failed
912 * RT_ERR_SMI - SMI access error
913 * RT_ERR_PORT_ID - Invalid port ID.
915 * The API can reset Serdes
917 extern rtk_api_ret_t
rtk_port_sgmiiLinkStatus_get(rtk_port_t port
, rtk_data_t
*pSignalDetect
, rtk_data_t
*pSync
, rtk_port_linkStatus_t
*pLink
);
920 * rtk_port_sgmiiNway_set
922 * Configure SGMII/HSGMII port Nway state
930 * RT_ERR_FAILED - Failed
931 * RT_ERR_SMI - SMI access error
932 * RT_ERR_PORT_ID - Invalid port ID.
934 * The API configure SGMII/HSGMII port Nway state
936 extern rtk_api_ret_t
rtk_port_sgmiiNway_set(rtk_port_t port
, rtk_enable_t state
);
939 * rtk_port_sgmiiNway_get
941 * Get SGMII/HSGMII port Nway state
945 * pState - Nway state
948 * RT_ERR_FAILED - Failed
949 * RT_ERR_SMI - SMI access error
950 * RT_ERR_PORT_ID - Invalid port ID.
952 * The API can get SGMII/HSGMII port Nway state
954 extern rtk_api_ret_t
rtk_port_sgmiiNway_get(rtk_port_t port
, rtk_enable_t
*pState
);
956 #endif /* __RTK_API_PORT_H__ */