aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv.c
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv.c')
-rw-r--r--target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv.c639
1 files changed, 0 insertions, 639 deletions
diff --git a/target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv.c b/target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv.c
deleted file mode 100644
index 7858edcf53..0000000000
--- a/target/linux/mediatek/files-5.4/drivers/net/phy/rtk/rtl8367c/rtl8367c_asicdrv.c
+++ /dev/null
@@ -1,639 +0,0 @@
-/*
- * Copyright (C) 2013 Realtek Semiconductor Corp.
- * All Rights Reserved.
- *
- * Unless you and Realtek execute a separate written software license
- * agreement governing use of this software, this software is licensed
- * to you under the terms of the GNU General Public License version 2,
- * available at https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
- *
- * $Revision: 76306 $
- * $Date: 2017-03-08 15:13:58 +0800 (週三, 08 三月 2017) $
- *
- * Purpose : RTL8367C switch high-level API for RTL8367C
- * Feature :
- *
- */
-
-#include <rtl8367c_asicdrv.h>
-
-#if defined(RTK_X86_ASICDRV)
-#include <I2Clib.h>
-#else
-#include <smi.h>
-#endif
-
-/*for driver verify testing only*/
-#ifdef CONFIG_RTL8367C_ASICDRV_TEST
-#define CLE_VIRTUAL_REG_SIZE 0x10000
-rtk_uint16 CleVirtualReg[CLE_VIRTUAL_REG_SIZE];
-#endif
-
-#if defined(CONFIG_RTL865X_CLE) || defined (RTK_X86_CLE)
-rtk_uint32 cleDebuggingDisplay;
-#endif
-
-#ifdef EMBEDDED_SUPPORT
-extern void setReg(rtk_uint16, rtk_uint16);
-extern rtk_uint16 getReg(rtk_uint16);
-#endif
-
-/* Function Name:
- * rtl8367c_setAsicRegBit
- * Description:
- * Set a bit value of a specified register
- * Input:
- * reg - register's address
- * bit - bit location
- * value - value to set. It can be value 0 or 1.
- * Output:
- * None
- * Return:
- * RT_ERR_OK - Success
- * RT_ERR_SMI - SMI access error
- * RT_ERR_INPUT - Invalid input parameter
- * Note:
- * Set a bit of a specified register to 1 or 0.
- */
-ret_t rtl8367c_setAsicRegBit(rtk_uint32 reg, rtk_uint32 bit, rtk_uint32 value)
-{
-
-#if defined(RTK_X86_ASICDRV)
- rtk_uint32 regData;
- ret_t retVal;
-
- if(bit >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
-
- retVal = Access_Read(reg, 2, &regData);
- if(TRUE != retVal)
- return RT_ERR_SMI;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, regData);
-
- if(value)
- regData = regData | (1 << bit);
- else
- regData = regData & (~(1 << bit));
-
- retVal = Access_Write(reg,2, regData);
- if(TRUE != retVal)
- return RT_ERR_SMI;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("W[0x%4.4x]=0x%4.4x\n", reg, regData);
-
-
-#elif defined(CONFIG_RTL8367C_ASICDRV_TEST)
-
- if(bit >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
-
- else if(reg >= CLE_VIRTUAL_REG_SIZE)
- return RT_ERR_OUT_OF_RANGE;
-
- if(value)
- {
- CleVirtualReg[reg] = CleVirtualReg[reg] | (1 << bit);
- }
- else
- {
- CleVirtualReg[reg] = CleVirtualReg[reg] & (~(1 << bit));
- }
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("W[0x%4.4x]=0x%4.4x\n", reg, CleVirtualReg[reg]);
-
-#elif defined(EMBEDDED_SUPPORT)
- rtk_uint16 tmp;
-
- if(reg > RTL8367C_REGDATAMAX || value > 1)
- return RT_ERR_INPUT;
-
- tmp = getReg(reg);
- tmp &= (1 << bitIdx);
- tmp |= (value << bitIdx);
- setReg(reg, tmp);
-
-#else
- rtk_uint32 regData;
- ret_t retVal;
-
- if(bit >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
-
- retVal = smi_read(reg, &regData);
- if(retVal != RT_ERR_OK)
- return RT_ERR_SMI;
-
- #ifdef CONFIG_RTL865X_CLE
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, regData);
- #endif
- if(value)
- regData = regData | (1 << bit);
- else
- regData = regData & (~(1 << bit));
-
- retVal = smi_write(reg, regData);
- if(retVal != RT_ERR_OK)
- return RT_ERR_SMI;
-
- #ifdef CONFIG_RTL865X_CLE
- if(0x8367B == cleDebuggingDisplay)
- PRINT("W[0x%4.4x]=0x%4.4x\n", reg, regData);
- #endif
-
-#endif
- return RT_ERR_OK;
-}
-/* Function Name:
- * rtl8367c_getAsicRegBit
- * Description:
- * Get a bit value of a specified register
- * Input:
- * reg - register's address
- * bit - bit location
- * value - value to get.
- * Output:
- * None
- * Return:
- * RT_ERR_OK - Success
- * RT_ERR_SMI - SMI access error
- * RT_ERR_INPUT - Invalid input parameter
- * Note:
- * None
- */
-ret_t rtl8367c_getAsicRegBit(rtk_uint32 reg, rtk_uint32 bit, rtk_uint32 *pValue)
-{
-
-#if defined(RTK_X86_ASICDRV)
-
- rtk_uint32 regData;
- ret_t retVal;
-
- if(bit >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
-
- retVal = Access_Read(reg, 2, &regData);
- if(TRUE != retVal)
- return RT_ERR_SMI;
-
- *pValue = (regData & (0x1 << bit)) >> bit;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, regData);
-
-#elif defined(CONFIG_RTL8367C_ASICDRV_TEST)
-
- if(bit >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
-
- if(reg >= CLE_VIRTUAL_REG_SIZE)
- return RT_ERR_OUT_OF_RANGE;
-
- *pValue = (CleVirtualReg[reg] & (0x1 << bit)) >> bit;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, CleVirtualReg[reg]);
-
-#elif defined(EMBEDDED_SUPPORT)
- rtk_uint16 tmp;
-
- if(reg > RTL8367C_REGDATAMAX )
- return RT_ERR_INPUT;
-
- tmp = getReg(reg);
- tmp = tmp >> bitIdx;
- tmp &= 1;
- *value = tmp;
-#else
- rtk_uint32 regData;
- ret_t retVal;
-
- retVal = smi_read(reg, &regData);
- if(retVal != RT_ERR_OK)
- return RT_ERR_SMI;
-
- #ifdef CONFIG_RTL865X_CLE
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, regData);
- #endif
-
- *pValue = (regData & (0x1 << bit)) >> bit;
-
-#endif
- return RT_ERR_OK;
-}
-/* Function Name:
- * rtl8367c_setAsicRegBits
- * Description:
- * Set bits value of a specified register
- * Input:
- * reg - register's address
- * bits - bits mask for setting
- * value - bits value for setting
- * Output:
- * None
- * Return:
- * RT_ERR_OK - Success
- * RT_ERR_SMI - SMI access error
- * RT_ERR_INPUT - Invalid input parameter
- * Note:
- * Set bits of a specified register to value. Both bits and value are be treated as bit-mask
- */
-ret_t rtl8367c_setAsicRegBits(rtk_uint32 reg, rtk_uint32 bits, rtk_uint32 value)
-{
-
-#if defined(RTK_X86_ASICDRV)
-
- rtk_uint32 regData;
- ret_t retVal;
- rtk_uint32 bitsShift;
- rtk_uint32 valueShifted;
-
- if(bits >= (1 << RTL8367C_REGBITLENGTH) )
- return RT_ERR_INPUT;
-
- bitsShift = 0;
- while(!(bits & (1 << bitsShift)))
- {
- bitsShift++;
- if(bitsShift >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
- }
-
- valueShifted = value << bitsShift;
- if(valueShifted > RTL8367C_REGDATAMAX)
- return RT_ERR_INPUT;
-
- retVal = Access_Read(reg, 2, &regData);
- if(TRUE != retVal)
- return RT_ERR_SMI;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, regData);
-
- regData = regData & (~bits);
- regData = regData | (valueShifted & bits);
-
- retVal = Access_Write(reg,2, regData);
- if(TRUE != retVal)
- return RT_ERR_SMI;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("W[0x%4.4x]=0x%4.4x\n", reg, regData);
-
-#elif defined(CONFIG_RTL8367C_ASICDRV_TEST)
- rtk_uint32 regData;
- rtk_uint32 bitsShift;
- rtk_uint32 valueShifted;
-
- if(bits >= (1 << RTL8367C_REGBITLENGTH) )
- return RT_ERR_INPUT;
-
- bitsShift = 0;
- while(!(bits & (1 << bitsShift)))
- {
- bitsShift++;
- if(bitsShift >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
- }
- valueShifted = value << bitsShift;
-
- if(valueShifted > RTL8367C_REGDATAMAX)
- return RT_ERR_INPUT;
-
- if(reg >= CLE_VIRTUAL_REG_SIZE)
- return RT_ERR_OUT_OF_RANGE;
-
- regData = CleVirtualReg[reg] & (~bits);
- regData = regData | (valueShifted & bits);
-
- CleVirtualReg[reg] = regData;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("W[0x%4.4x]=0x%4.4x\n", reg, regData);
-
-#elif defined(EMBEDDED_SUPPORT)
- rtk_uint32 regData;
- rtk_uint32 bitsShift;
- rtk_uint32 valueShifted;
-
- if(reg > RTL8367C_REGDATAMAX )
- return RT_ERR_INPUT;
-
- if(bits >= (1 << RTL8367C_REGBITLENGTH) )
- return RT_ERR_INPUT;
-
- bitsShift = 0;
- while(!(bits & (1 << bitsShift)))
- {
- bitsShift++;
- if(bitsShift >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
- }
-
- valueShifted = value << bitsShift;
- if(valueShifted > RTL8367C_REGDATAMAX)
- return RT_ERR_INPUT;
-
- regData = getReg(reg);
- regData = regData & (~bits);
- regData = regData | (valueShifted & bits);
-
- setReg(reg, regData);
-
-#else
- rtk_uint32 regData;
- ret_t retVal;
- rtk_uint32 bitsShift;
- rtk_uint32 valueShifted;
-
- if(bits >= (1 << RTL8367C_REGBITLENGTH) )
- return RT_ERR_INPUT;
-
- bitsShift = 0;
- while(!(bits & (1 << bitsShift)))
- {
- bitsShift++;
- if(bitsShift >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
- }
- valueShifted = value << bitsShift;
-
- if(valueShifted > RTL8367C_REGDATAMAX)
- return RT_ERR_INPUT;
-
- retVal = smi_read(reg, &regData);
- if(retVal != RT_ERR_OK)
- return RT_ERR_SMI;
- #ifdef CONFIG_RTL865X_CLE
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, regData);
- #endif
-
- regData = regData & (~bits);
- regData = regData | (valueShifted & bits);
-
- retVal = smi_write(reg, regData);
- if(retVal != RT_ERR_OK)
- return RT_ERR_SMI;
- #ifdef CONFIG_RTL865X_CLE
- if(0x8367B == cleDebuggingDisplay)
- PRINT("W[0x%4.4x]=0x%4.4x\n", reg, regData);
- #endif
-#endif
- return RT_ERR_OK;
-}
-/* Function Name:
- * rtl8367c_getAsicRegBits
- * Description:
- * Get bits value of a specified register
- * Input:
- * reg - register's address
- * bits - bits mask for setting
- * value - bits value for setting
- * Output:
- * None
- * Return:
- * RT_ERR_OK - Success
- * RT_ERR_SMI - SMI access error
- * RT_ERR_INPUT - Invalid input parameter
- * Note:
- * None
- */
-ret_t rtl8367c_getAsicRegBits(rtk_uint32 reg, rtk_uint32 bits, rtk_uint32 *pValue)
-{
-
-#if defined(RTK_X86_ASICDRV)
-
- rtk_uint32 regData;
- ret_t retVal;
- rtk_uint32 bitsShift;
-
- if(bits >= (1 << RTL8367C_REGBITLENGTH) )
- return RT_ERR_INPUT;
-
- bitsShift = 0;
- while(!(bits & (1 << bitsShift)))
- {
- bitsShift++;
- if(bitsShift >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
- }
-
- retVal = Access_Read(reg, 2, &regData);
- if(TRUE != retVal)
- return RT_ERR_SMI;
-
- *pValue = (regData & bits) >> bitsShift;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, regData);
-
-#elif defined(CONFIG_RTL8367C_ASICDRV_TEST)
- rtk_uint32 bitsShift;
-
- if(bits >= (1 << RTL8367C_REGBITLENGTH) )
- return RT_ERR_INPUT;
-
- bitsShift = 0;
- while(!(bits & (1 << bitsShift)))
- {
- bitsShift++;
- if(bitsShift >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
- }
-
- if(reg >= CLE_VIRTUAL_REG_SIZE)
- return RT_ERR_OUT_OF_RANGE;
-
- *pValue = (CleVirtualReg[reg] & bits) >> bitsShift;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, CleVirtualReg[reg]);
-
-#elif defined(EMBEDDED_SUPPORT)
- rtk_uint32 regData;
- rtk_uint32 bitsShift;
-
- if(reg > RTL8367C_REGDATAMAX )
- return RT_ERR_INPUT;
-
- if(bits >= (1UL << RTL8367C_REGBITLENGTH) )
- return RT_ERR_INPUT;
-
- bitsShift = 0;
- while(!(bits & (1UL << bitsShift)))
- {
- bitsShift++;
- if(bitsShift >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
- }
-
- regData = getReg(reg);
- *value = (regData & bits) >> bitsShift;
-
-#else
- rtk_uint32 regData;
- ret_t retVal;
- rtk_uint32 bitsShift;
-
- if(bits>= (1<<RTL8367C_REGBITLENGTH) )
- return RT_ERR_INPUT;
-
- bitsShift = 0;
- while(!(bits & (1 << bitsShift)))
- {
- bitsShift++;
- if(bitsShift >= RTL8367C_REGBITLENGTH)
- return RT_ERR_INPUT;
- }
-
- retVal = smi_read(reg, &regData);
- if(retVal != RT_ERR_OK) return RT_ERR_SMI;
-
- *pValue = (regData & bits) >> bitsShift;
- #ifdef CONFIG_RTL865X_CLE
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n",reg, regData);
- #endif
-
-#endif
- return RT_ERR_OK;
-}
-/* Function Name:
- * rtl8367c_setAsicReg
- * Description:
- * Set content of asic register
- * Input:
- * reg - register's address
- * value - Value setting to register
- * Output:
- * None
- * Return:
- * RT_ERR_OK - Success
- * RT_ERR_SMI - SMI access error
- * Note:
- * The value will be set to ASIC mapping address only and it is always return RT_ERR_OK while setting un-mapping address registers
- */
-ret_t rtl8367c_setAsicReg(rtk_uint32 reg, rtk_uint32 value)
-{
-#if defined(RTK_X86_ASICDRV)/*RTK-CNSD2-NickWu-20061222: for x86 compile*/
-
- ret_t retVal;
-
- retVal = Access_Write(reg,2,value);
- if(TRUE != retVal) return RT_ERR_SMI;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("W[0x%4.4x]=0x%4.4x\n",reg,value);
-
-#elif defined(CONFIG_RTL8367C_ASICDRV_TEST)
-
- /*MIBs emulating*/
- if(reg == RTL8367C_REG_MIB_ADDRESS)
- {
- CleVirtualReg[RTL8367C_MIB_COUNTER_BASE_REG] = 0x1;
- CleVirtualReg[RTL8367C_MIB_COUNTER_BASE_REG+1] = 0x2;
- CleVirtualReg[RTL8367C_MIB_COUNTER_BASE_REG+2] = 0x3;
- CleVirtualReg[RTL8367C_MIB_COUNTER_BASE_REG+3] = 0x4;
- }
-
- if(reg >= CLE_VIRTUAL_REG_SIZE)
- return RT_ERR_OUT_OF_RANGE;
-
- CleVirtualReg[reg] = value;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("W[0x%4.4x]=0x%4.4x\n",reg,CleVirtualReg[reg]);
-
-#elif defined(EMBEDDED_SUPPORT)
- if(reg > RTL8367C_REGDATAMAX || value > RTL8367C_REGDATAMAX )
- return RT_ERR_INPUT;
-
- setReg(reg, value);
-
-#else
- ret_t retVal;
-
- retVal = smi_write(reg, value);
- if(retVal != RT_ERR_OK)
- return RT_ERR_SMI;
- #ifdef CONFIG_RTL865X_CLE
- if(0x8367B == cleDebuggingDisplay)
- PRINT("W[0x%4.4x]=0x%4.4x\n",reg,value);
- #endif
-
-#endif
-
- return RT_ERR_OK;
-}
-/* Function Name:
- * rtl8367c_getAsicReg
- * Description:
- * Get content of asic register
- * Input:
- * reg - register's address
- * value - Value setting to register
- * Output:
- * None
- * Return:
- * RT_ERR_OK - Success
- * RT_ERR_SMI - SMI access error
- * Note:
- * Value 0x0000 will be returned for ASIC un-mapping address
- */
-ret_t rtl8367c_getAsicReg(rtk_uint32 reg, rtk_uint32 *pValue)
-{
-
-#if defined(RTK_X86_ASICDRV)
-
- rtk_uint32 regData;
- ret_t retVal;
-
- retVal = Access_Read(reg, 2, &regData);
- if(TRUE != retVal)
- return RT_ERR_SMI;
-
- *pValue = regData;
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, regData);
-
-#elif defined(CONFIG_RTL8367C_ASICDRV_TEST)
- if(reg >= CLE_VIRTUAL_REG_SIZE)
- return RT_ERR_OUT_OF_RANGE;
-
- *pValue = CleVirtualReg[reg];
-
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, CleVirtualReg[reg]);
-
-#elif defined(EMBEDDED_SUPPORT)
- if(reg > RTL8367C_REGDATAMAX )
- return RT_ERR_INPUT;
-
- *value = getReg(reg);
-
-#else
- rtk_uint32 regData;
- ret_t retVal;
-
- retVal = smi_read(reg, &regData);
- if(retVal != RT_ERR_OK)
- return RT_ERR_SMI;
-
- *pValue = regData;
- #ifdef CONFIG_RTL865X_CLE
- if(0x8367B == cleDebuggingDisplay)
- PRINT("R[0x%4.4x]=0x%4.4x\n", reg, regData);
- #endif
-
-#endif
-
- return RT_ERR_OK;
-}
-