mediatek: add patches for 5.15 and kernel config for mt7622
[openwrt/openwrt.git] / target / linux / mediatek / files / drivers / net / phy / rtk / rtl8367c / include / rtl8367c_asicdrv_eav.h
1 /*
2 * Copyright (C) 2013 Realtek Semiconductor Corp.
3 * All Rights Reserved.
4 *
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
9 *
10 * $Revision: 76306 $
11 * $Date: 2017-03-08 15:13:58 +0800 (¶g¤T, 08 ¤T¤ë 2017) $
12 *
13 * Purpose : RTL8367C switch high-level API for RTL8367C
14 * Feature : Ethernet AV related functions
15 *
16 */
17
18 #ifndef _RTL8367C_ASICDRV_EAV_H_
19 #define _RTL8367C_ASICDRV_EAV_H_
20
21 #include <rtl8367c_asicdrv.h>
22
23 typedef enum RTL8367C_PTP_TIME_CMD_E
24 {
25 PTP_TIME_READ = 0,
26 PTP_TIME_WRITE,
27 PTP_TIME_INC,
28 PTP_TIME_DEC,
29 PTP_TIME_CMD_END
30 }RTL8367C_PTP_TIME_CMD;
31
32 typedef enum RTL8367C_PTP_TIME_ADJ_E
33 {
34 PTP_TIME_ADJ_INC = 0,
35 PTP_TIME_ADJ_DEC,
36 PTP_TIME_ADJ_END
37 }RTL8367C_PTP_TIME_ADJ;
38
39 typedef enum RTL8367C_PTP_TIME_CTRL_E
40 {
41 PTP_TIME_CTRL_STOP = 0,
42 PTP_TIME_CTRL_START,
43 PTP_TIME_CTRL_END
44 }RTL8367C_PTP_TIME_CTRL;
45
46 typedef enum RTL8367C_PTP_INTR_IMRS_E
47 {
48 PTP_IMRS_TX_SYNC,
49 PTP_IMRS_TX_DELAY_REQ,
50 PTP_IMRS_TX_PDELAY_REQ,
51 PTP_IMRS_TX_PDELAY_RESP,
52 PTP_IMRS_RX_SYNC,
53 PTP_IMRS_RX_DELAY_REQ,
54 PTP_IMRS_RX_PDELAY_REQ,
55 PTP_IMRS_RX_PDELAY_RESP,
56 PTP_IMRS_END,
57 }RTL8367C_PTP_INTR_IMRS;
58
59
60 typedef enum RTL8367C_PTP_PKT_TYPE_E
61 {
62 PTP_PKT_TYPE_TX_SYNC,
63 PTP_PKT_TYPE_TX_DELAY_REQ,
64 PTP_PKT_TYPE_TX_PDELAY_REQ,
65 PTP_PKT_TYPE_TX_PDELAY_RESP,
66 PTP_PKT_TYPE_RX_SYNC,
67 PTP_PKT_TYPE_RX_DELAY_REQ,
68 PTP_PKT_TYPE_RX_PDELAY_REQ,
69 PTP_PKT_TYPE_RX_PDELAY_RESP,
70 PTP_PKT_TYPE_END,
71 }RTL8367C_PTP_PKT_TYPE;
72
73 typedef struct rtl8367c_ptp_time_stamp_s{
74 rtk_uint32 sequence_id;
75 rtk_uint32 second;
76 rtk_uint32 nano_second;
77 }rtl8367c_ptp_time_stamp_t;
78
79 #define RTL8367C_PTP_INTR_MASK 0xFF
80
81 #define RTL8367C_PTP_PORT_MASK 0x3FF
82
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);
100
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);
107
108 #endif /*#ifndef _RTL8367C_ASICDRV_EAV_H_*/
109