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: 2014-07-01 15:45:24 +0800 (週二, 01 七月 2014) $
13 * Purpose : RTL8370 switch high-level API for RTL8367C
18 #include <rtl8367c_asicdrv_eee.h>
19 #include <rtl8367c_asicdrv_phy.h>
22 @func ret_t | rtl8367c_setAsicEee100M | Set eee force mode function enable/disable.
23 @parm rtk_uint32 | port | The port number.
24 @parm rtk_uint32 | enabled | 1: enabled, 0: disabled.
25 @rvalue RT_ERR_OK | Success.
26 @rvalue RT_ERR_SMI | SMI access error.
27 @rvalue RT_ERR_INPUT | Invalid input parameter.
29 This API set the 100M EEE enable function.
32 ret_t
rtl8367c_setAsicEee100M(rtk_uint32 port
, rtk_uint32 enable
)
37 if(port
>= RTL8367C_PORTNO
)
38 return RT_ERR_PORT_ID
;
43 if((retVal
= rtl8367c_getAsicPHYOCPReg(port
, EEE_OCP_PHY_ADDR
, ®Data
)) != RT_ERR_OK
)
47 regData
|= (0x0001 << 1);
49 regData
&= ~(0x0001 << 1);
51 if((retVal
= rtl8367c_setAsicPHYOCPReg(port
, EEE_OCP_PHY_ADDR
, regData
)) != RT_ERR_OK
)
58 @func ret_t | rtl8367c_getAsicEee100M | Get 100M eee enable/disable.
59 @parm rtk_uint32 | port | The port number.
60 @parm rtk_uint32* | enabled | 1: enabled, 0: disabled.
61 @rvalue RT_ERR_OK | Success.
62 @rvalue RT_ERR_SMI | SMI access error.
63 @rvalue RT_ERR_INPUT | Invalid input parameter.
65 This API get the 100M EEE function.
67 ret_t
rtl8367c_getAsicEee100M(rtk_uint32 port
, rtk_uint32
*enable
)
72 if(port
>= RTL8367C_PORTNO
)
73 return RT_ERR_PORT_ID
;
75 if((retVal
= rtl8367c_getAsicPHYOCPReg(port
, EEE_OCP_PHY_ADDR
, ®Data
)) != RT_ERR_OK
)
78 *enable
= (regData
& (0x0001 << 1)) ? ENABLED
: DISABLED
;
83 @func ret_t | rtl8367c_setAsicEeeGiga | Set eee force mode function enable/disable.
84 @parm rtk_uint32 | port | The port number.
85 @parm rtk_uint32 | enabled | 1: enabled, 0: disabled.
86 @rvalue RT_ERR_OK | Success.
87 @rvalue RT_ERR_SMI | SMI access error.
88 @rvalue RT_ERR_INPUT | Invalid input parameter.
90 This API set the 100M EEE enable function.
93 ret_t
rtl8367c_setAsicEeeGiga(rtk_uint32 port
, rtk_uint32 enable
)
98 if(port
>= RTL8367C_PORTNO
)
99 return RT_ERR_PORT_ID
;
104 if((retVal
= rtl8367c_getAsicPHYOCPReg(port
, EEE_OCP_PHY_ADDR
, ®Data
)) != RT_ERR_OK
)
108 regData
|= (0x0001 << 2);
110 regData
&= ~(0x0001 << 2);
112 if((retVal
= rtl8367c_setAsicPHYOCPReg(port
, EEE_OCP_PHY_ADDR
, regData
)) != RT_ERR_OK
)
119 @func ret_t | rtl8367c_getAsicEeeGiga | Get 100M eee enable/disable.
120 @parm rtk_uint32 | port | The port number.
121 @parm rtk_uint32* | enabled | 1: enabled, 0: disabled.
122 @rvalue RT_ERR_OK | Success.
123 @rvalue RT_ERR_SMI | SMI access error.
124 @rvalue RT_ERR_INPUT | Invalid input parameter.
126 This API get the 100M EEE function.
128 ret_t
rtl8367c_getAsicEeeGiga(rtk_uint32 port
, rtk_uint32
*enable
)
130 rtk_api_ret_t retVal
;
133 if(port
>= RTL8367C_PORTNO
)
134 return RT_ERR_PORT_ID
;
136 if((retVal
= rtl8367c_getAsicPHYOCPReg(port
, EEE_OCP_PHY_ADDR
, ®Data
)) != RT_ERR_OK
)
139 *enable
= (regData
& (0x0001 << 2)) ? ENABLED
: DISABLED
;