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
11 * $Date: 2017-03-08 15:13:58 +0800 (¶g¤T, 08 ¤T¤ë 2017) $
13 * Purpose : RTL8367C switch high-level API for RTL8367C
14 * Feature : Ethernet AV related functions
18 #ifndef _RTL8367C_ASICDRV_EAV_H_
19 #define _RTL8367C_ASICDRV_EAV_H_
21 #include <rtl8367c_asicdrv.h>
23 typedef enum RTL8367C_PTP_TIME_CMD_E
30 }RTL8367C_PTP_TIME_CMD
;
32 typedef enum RTL8367C_PTP_TIME_ADJ_E
37 }RTL8367C_PTP_TIME_ADJ
;
39 typedef enum RTL8367C_PTP_TIME_CTRL_E
41 PTP_TIME_CTRL_STOP
= 0,
44 }RTL8367C_PTP_TIME_CTRL
;
46 typedef enum RTL8367C_PTP_INTR_IMRS_E
49 PTP_IMRS_TX_DELAY_REQ
,
50 PTP_IMRS_TX_PDELAY_REQ
,
51 PTP_IMRS_TX_PDELAY_RESP
,
53 PTP_IMRS_RX_DELAY_REQ
,
54 PTP_IMRS_RX_PDELAY_REQ
,
55 PTP_IMRS_RX_PDELAY_RESP
,
57 }RTL8367C_PTP_INTR_IMRS
;
60 typedef enum RTL8367C_PTP_PKT_TYPE_E
63 PTP_PKT_TYPE_TX_DELAY_REQ
,
64 PTP_PKT_TYPE_TX_PDELAY_REQ
,
65 PTP_PKT_TYPE_TX_PDELAY_RESP
,
67 PTP_PKT_TYPE_RX_DELAY_REQ
,
68 PTP_PKT_TYPE_RX_PDELAY_REQ
,
69 PTP_PKT_TYPE_RX_PDELAY_RESP
,
71 }RTL8367C_PTP_PKT_TYPE
;
73 typedef struct rtl8367c_ptp_time_stamp_s
{
74 rtk_uint32 sequence_id
;
76 rtk_uint32 nano_second
;
77 }rtl8367c_ptp_time_stamp_t
;
79 #define RTL8367C_PTP_INTR_MASK 0xFF
81 #define RTL8367C_PTP_PORT_MASK 0x3FF
83 extern ret_t
rtl8367c_setAsicEavMacAddress(ether_addr_t mac
);
84 extern ret_t
rtl8367c_getAsicEavMacAddress(ether_addr_t
*pMac
);
85 extern ret_t
rtl8367c_setAsicEavTpid(rtk_uint32 outerTag
, rtk_uint32 innerTag
);
86 extern ret_t
rtl8367c_getAsicEavTpid(rtk_uint32
* pOuterTag
, rtk_uint32
* pInnerTag
);
87 extern ret_t
rtl8367c_setAsicEavSysTime(rtk_uint32 second
, rtk_uint32 nanoSecond
);
88 extern ret_t
rtl8367c_getAsicEavSysTime(rtk_uint32
* pSecond
, rtk_uint32
* pNanoSecond
);
89 extern ret_t
rtl8367c_setAsicEavSysTimeAdjust(rtk_uint32 type
, rtk_uint32 second
, rtk_uint32 nanoSecond
);
90 extern ret_t
rtl8367c_setAsicEavSysTimeCtrl(rtk_uint32 control
);
91 extern ret_t
rtl8367c_getAsicEavSysTimeCtrl(rtk_uint32
* pControl
);
92 extern ret_t
rtl8367c_setAsicEavInterruptMask(rtk_uint32 imr
);
93 extern ret_t
rtl8367c_getAsicEavInterruptMask(rtk_uint32
* pImr
);
94 extern ret_t
rtl8367c_getAsicEavInterruptStatus(rtk_uint32
* pIms
);
95 extern ret_t
rtl8367c_setAsicEavPortInterruptStatus(rtk_uint32 port
, rtk_uint32 ims
);
96 extern ret_t
rtl8367c_getAsicEavPortInterruptStatus(rtk_uint32 port
, rtk_uint32
* pIms
);
97 extern ret_t
rtl8367c_setAsicEavPortEnable(rtk_uint32 port
, rtk_uint32 enabled
);
98 extern ret_t
rtl8367c_getAsicEavPortEnable(rtk_uint32 port
, rtk_uint32
*pEnabled
);
99 extern ret_t
rtl8367c_getAsicEavPortTimeStamp(rtk_uint32 port
, rtk_uint32 type
, rtl8367c_ptp_time_stamp_t
* timeStamp
);
101 extern ret_t
rtl8367c_setAsicEavTrap(rtk_uint32 port
, rtk_uint32 enabled
);
102 extern ret_t
rtl8367c_getAsicEavTrap(rtk_uint32 port
, rtk_uint32
*pEnabled
);
103 extern ret_t
rtl8367c_setAsicEavEnable(rtk_uint32 port
, rtk_uint32 enabled
);
104 extern ret_t
rtl8367c_getAsicEavEnable(rtk_uint32 port
, rtk_uint32
*pEnabled
);
105 extern ret_t
rtl8367c_setAsicEavPriRemapping(rtk_uint32 srcpriority
, rtk_uint32 priority
);
106 extern ret_t
rtl8367c_getAsicEavPriRemapping(rtk_uint32 srcpriority
, rtk_uint32
*pPriority
);
108 #endif /*#ifndef _RTL8367C_ASICDRV_EAV_H_*/