/***************************************************************************** Function : HPA_Read8Reg Description: read 8bit data from DSP & BBP Input : ulRegAddr -- address of DSP & BBP : ulRegVal -- 8bit data Return : void Other : Caution : this function should not supported. *****************************************************************************/ VOS_UINT8 HPA_Read8Reg( VOS_UINT32 ulRegAddr ) { VOS_UINT16 usTempValue; VOS_UINT32 ulTempAddr; VOS_UINT8 *pucTemp; /* Add for L Only version */ if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType()) { return 0; } /* Add for L Only version */ ulTempAddr = ulRegAddr & 0xfffffffe; usTempValue = *(volatile VOS_UINT16 *)(ulTempAddr); pucTemp = (VOS_UINT8 *)&usTempValue; if ( ulRegAddr == ulTempAddr ) { return *pucTemp; } else { pucTemp++; return *pucTemp; } }
/***************************************************************************** Function : HPA_Write8Reg Description: write 8bit data to DSP & BBP Input : ulRegAddr -- address of DSP & BBP : ulRegVal -- 8bit data Return : void Other : Caution : this function should not supported. *****************************************************************************/ VOS_VOID HPA_Write8Reg( VOS_UINT32 ulRegAddr, VOS_UINT8 ucRegVal ) { VOS_UINT16 usTempValue; VOS_UINT32 ulTempAddr; VOS_UINT8 *pucTemp; /* Add for L Only version */ if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType()) { return; } /* Add for L Only version */ ulTempAddr = ulRegAddr & 0xfffffffe; usTempValue = *(volatile VOS_UINT16 *)(ulTempAddr); pucTemp = (VOS_UINT8 *)&usTempValue; if ( ulRegAddr == ulTempAddr ) { *pucTemp = ucRegVal; } else { pucTemp++; *pucTemp = ucRegVal; } *(volatile VOS_UINT16 *)ulTempAddr = usTempValue; }
/***************************************************************************** Function : HPA_FIDInit Description: HPA FID Init Input : Ip Return : void Other : *****************************************************************************/ VOS_UINT32 HPA_FIDInit( enum VOS_INIT_PHASE_DEFINE ip ) { /* Add for L Only version */ if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType()) { return 0; } /* Add for L Only version */ switch ( ip ) { case VOS_IP_LOAD_CONFIG: if ( VOS_OK != VOS_RegisterPIDInfo(UEPS_PID_SHPA, APM_PIDInit, (Msg_Fun_Type)HPA_ApmMsgPIDProc)) { PS_LOG( UEPS_PID_GHPA, 0, PS_PRINT_ERROR, "VOS_RegisterPIDInfo UEPS_PID_SHPA failure !\n"); return VOS_ERR; } if ( VOS_OK != VOS_RegisterTaskPrio(WUEPS_FID_HPA, COMM_HPA_TASK_PRIO) ) { PS_LOG( UEPS_PID_GHPA, 0, PS_PRINT_ERROR, "HPA_FIDInit:VOS_RegisterMsgTaskPrio failure !\n"); return VOS_ERR; } if ( VOS_NULL_BYTE == VOS_RegisterSelfTaskPrio(WUEPS_FID_HPA, (VOS_TASK_ENTRY_TYPE)HPA_TransferTaskEntry, COMM_HPA_SELFTASK_PRIO, HPA_TRANSFER_TASK_STACK_SIZE ) ) { PS_LOG( UEPS_PID_GHPA, 0, PS_PRINT_ERROR, "VOS_RegisterSelfTask:HPA_TransferTaskEntry failure !\n"); return VOS_ERR; } break; case VOS_IP_FARMALLOC: if(VOS_OK != HPA_Init()) { PS_LOG( UEPS_PID_GHPA, 0, PS_PRINT_ERROR, "HPA Init failure !\n"); return VOS_ERR; } break; default: break; } return VOS_OK; }
VOS_UINT32 OMCallBackFidInit(enum VOS_INIT_PHASE_DEFINE ip) { VOS_UINT32 ulRslt; /* Add for L Only version */ if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType()) { return 0; } /* Add for L Only version */ switch( ip ) { case VOS_IP_LOAD_CONFIG: { ulRslt = VOS_RegisterPIDInfo(WUEPS_PID_OM_CALLBACK, VOS_NULL_PTR, (Msg_Fun_Type)OM_CallBackMsgProc); if( VOS_OK != ulRslt ) { return VOS_ERR; } if(VOS_OK != VOS_RegisterMsgTaskPrio(WUEPS_FID_OM_CALLBACK, VOS_PRIORITY_NULL)) { PS_LOG(WUEPS_PID_OM, 0, PS_PRINT_ERROR, "OMCallBackFidInit:VOS_RegisterMsgTaskPrio failure !\n"); return VOS_ERR; } #if (VOS_WIN32 == VOS_OS_VER) #ifndef __PS_WIN32_RECUR__ /* 接收SOCKET数据的自处理任务 */ ulRslt = VOS_RegisterSelfTaskPrio(WUEPS_FID_OM_CALLBACK, (VOS_TASK_ENTRY_TYPE)Sock_ServerTask, COMM_SOCK_SELFTASK_PRIO, RL_SOCK_TASK_STACK_SIZE); if ( VOS_NULL_BYTE == ulRslt ) { return VOS_ERR; } #endif #endif break; } default: break; } return VOS_OK; }
/***************************************************************************** Function : HPA_Write32RegMask Description: write mask to DSP & BBP Input : ulRegAddr -- address of DSP & BBP : ulMask -- mask Return : void Other : caution: BIT_N must be used befor call the function *****************************************************************************/ VOS_VOID HPA_Write32RegMask(VOS_UINT32 ulRegAddr, VOS_UINT32 ulMask) { /* Add for L Only version */ if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType()) { return; } /* Add for L Only version */ if ( 0 != (ulRegAddr & 0x03) )/* not 4byte aligned */ { LogPrint1("HPA_Write32RegMask Address: 0x%x not aligned.\r\n",(VOS_INT)ulRegAddr); return; } *(volatile VOS_UINT32 *)ulRegAddr |= ulMask; }
/***************************************************************************** Function : HPA_Read16Reg Description: read 16bit data from DSP & BBP Input : ulRegAddr -- address of DSP & BBP : ulRegVal -- 16bit data Return : void Other : *****************************************************************************/ VOS_UINT16 HPA_Read16Reg( VOS_UINT32 ulRegAddr ) { /* Add for L Only version */ if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType()) { return 0; } /* Add for L Only version */ if ( 0 != (ulRegAddr & 0x01) )/* not 2byte aligned */ { LogPrint1("HPA_Read16Reg Address: 0x%x not aligned.\r\n",(VOS_INT)ulRegAddr); return 0; } return *(volatile VOS_UINT16 *)ulRegAddr; }
/***************************************************************************** Function : HPA_Write16Reg Description: write 16bit data to DSP & BBP Input : ulRegAddr -- address of DSP & BBP : ulRegVal -- 16bit data Return : void Other : *****************************************************************************/ VOS_VOID HPA_Write16Reg( VOS_UINT32 ulRegAddr, VOS_UINT16 usRegVal) { /* Add for L Only version */ if (BOARD_TYPE_LTE_ONLY == BSP_OM_GetBoardType()) { return; } /* Add for L Only version */ if ( 0 != (ulRegAddr & 0x01) )/* not 2byte aligned */ { LogPrint1("HPA_Write16Reg Address: 0x%x not aligned.\r\n",(VOS_INT)ulRegAddr); return; } *(volatile VOS_UINT16 *)ulRegAddr = usRegVal; }