/******************************************************************************* * miiSmiIfReadRegister * * DESCRIPTION: * This function reads a register throw the SMI / MII interface, to be used * by upper layers. * * INPUTS: * phyAddr - The PHY address to be read. * regAddr - The register address to read. * * OUTPUTS: * data - The register's data. * * RETURNS: * GT_OK - on success * GT_FAIL - on error * * COMMENTS: * None. * *******************************************************************************/ GT_STATUS miiSmiIfReadRegister ( IN GT_QD_DEV *dev, IN GT_U8 phyAddr, IN GT_U8 regAddr, OUT GT_U16 *data ) { unsigned int tmpData; #ifdef GT_RMGMT_ACCESS if((dev->accessMode == SMI_MULTI_ADDR_MODE) && (dev->fgtHwAccessMod == HW_ACCESS_MODE_SMI)) #else if(dev->accessMode == SMI_MULTI_ADDR_MODE) #endif { if(qdMultiAddrRead(dev,(GT_U32)phyAddr,(GT_U32)regAddr,&tmpData) != GT_TRUE) { return GT_FAIL; } } else { if(fgtReadMii(dev,(GT_U32)phyAddr,(GT_U32)regAddr,&tmpData) != GT_TRUE) { return GT_FAIL; } } *data = (GT_U16)tmpData; return GT_OK; }
/******************************************************************************* * miiSmiIfReadRegister * * DESCRIPTION: * This function reads a register throw the SMI / MII interface, to be used * by upper layers. * * INPUTS: * phyAddr - The PHY address to be read. * regAddr - The register address to read. * * OUTPUTS: * data - The register's data. * * RETURNS: * GT_OK - on success * GT_FAIL - on error * * COMMENTS: * None. * *******************************************************************************/ GT_STATUS miiSmiIfReadRegister ( IN GT_QD_DEV *dev, IN GT_U8 phyAddr, IN GT_U8 regAddr, OUT GT_U16 *data ) { unsigned int tmpData; if(dev->accessMode == SMI_MULTI_ADDR_MODE) { if(qdMultiAddrRead(dev,(GT_U32)phyAddr,(GT_U32)regAddr,&tmpData) != GT_TRUE) { return GT_FAIL; } } else { if(dev->fgtReadMii(dev,(GT_U32)phyAddr,(GT_U32)regAddr,&tmpData) != GT_TRUE) { return GT_FAIL; } } *data = (GT_U16)tmpData; return GT_OK; }