/****************************************************************************** *(C) Copyright 2008 Marvell International Ltd. * All Rights Reserved ******************************************************************************/ /*-------------------------------------------------------------------------------------------------------------------- * ------------------------------------------------------------------------------------------------------------------- * * Filename: dev_api.h * * Description: API interface for Device service * * History: * Oct 17, 2008 - Qiang XU Creation of file * * Notes: * ******************************************************************************/ #ifndef __DEV_API_H__ #define __DEV_API_H__ #include "ci_dev.h" typedef struct ComConfig_struct { int umtsWbAmr; int gsmWbAmr; int vendor; int manufacture; int lteCategory; int mutiSlotPowerProfile; int lteSMSOnly; int ecSupported; int epcoSupported; int hccpSupported; int mdrbSupported; int cpBackoff; int nslp; int eab; int rohc; }ComConfig; CiReturnCode DEV_GetFunc(UINT32 atHandle, BOOL bCpConfig); CiReturnCode DEV_SetFunc(UINT32 atHandle, int funcVal, int resetVal, BOOL isExt, INT32 IsCommFeatureConfig, INT32 CommFeatureConfig); CiReturnCode DEV_GetDevStatus(UINT32 atHandle); CiReturnCode DEV_SetEngineModeReportOption(UINT32 atHandle, int modeVal, int timeVal); CiReturnCode DEV_GetSerialNumId(UINT32 atHandle); CiReturnCode DEV_GetEngineModeInfo(UINT32 atHandle); CiReturnCode DEV_GetSupportedBandModeReq(UINT32 atHandle); CiReturnCode DEV_GetBandModeReq(UINT32 atHandle); CiReturnCode DEV_SetBandModeReq(UINT32 atHandle, UINT8 networkMode, UINT8 preferredMode, UINT32 gsmMode, UINT32 umtsMode, UINT32 eutranModeH, UINT32 eutranModeL, UINT8 roamingConfig, UINT8 srvDomain, UINT8 bandPriorityFlag,BOOL islteduallink,UINT32 EUTRANBandModeExt); CiReturnCode DEV_GetWirelessModeReq(UINT32 atHandle); CiReturnCode DEV_SetWirelessModeReq(UINT32 atHandle, UINT8 networkMode, UINT8 preferredMode); CiReturnCode DEV_SetPOWERIND(UINT32 atHandle, UINT32 powerState); CiReturnCode DEV_SetEngModeIndicatorOption(UINT32 atHandle, int modeVal, int timeVal); CiReturnCode DEV_GetEngModeInfo(UINT32 atHandle, CiDevEngmodeType type ); CiReturnCode DEV_setLPNWUL(UINT32 atHandle, UINT8 *msg_data, UINT32 msg_data_len, UINT8 count, UINT8 bearer_type, UINT8 isFinalRsp, UINT8 *add_info, UINT32 add_info_len); CiReturnCode DEV_SysConfig(UINT32 atHandle, int modVal, int acqVal, int bandVal, int roamVal, int srvVal ); CiReturnCode DEV_GetSysConfig(UINT32 atHandle); CiReturnCode DEV_GetLteMeas(UINT32 atHandle); CiReturnCode DEV_GetSoftwareVersionNumber(UINT32 atHandle); CiReturnCode DEV_SetSoftwareVersionNumber(UINT32 atHandle, const char* sv); CiReturnCode DEV_SetHsdpaModeReq(UINT32 atHandle, UINT8 mode, UINT8 dl_category, UINT8 ul_category, UINT8 cpc_state, UINT8 dpaCategoryExt, UINT8 edchCategoryExt, UINT8 fdpchState, UINT8 efdpchState); CiReturnCode DEV_GetHsdpaModeReq(UINT32 atHandle); CiReturnCode DEV_SetPowerBackOffReq(UINT32 atHandle, UINT8 option,UINT8 value, UINT8 nwMode, UINT8 band); CiReturnCode DEV_GetComConfigReq(UINT32 atHandle, UINT32 tokens); CiReturnCode DEV_SetComConfigReq(UINT32 atHandle, ComConfig* ComConfigData); CiReturnCode DEV_GetRsrpReq(UINT32 atHandle); CiReturnCode DEV_GetRsrqReq(UINT32 atHandle); CiReturnCode DEV_Get_internal_revision_Req(UINT32 atHandle); CiReturnCode DEV_SetGsmModeTxRxReq(UINT32 atHandle, CiDevGsmTxRxOption option, UINT8 gsmBandMode, UINT16 arfcn, UINT32 afcDac, UINT32 txRampScale, UINT32 rxGainCode); CiReturnCode DEV_ReadRFTemperatureReq(UINT32 atHandle, UINT8 tempType); CiReturnCode DEV_SetLTEModeTxRxReq(UINT32 atHandle, CiDevLteTxRxOption option, UINT16 frequency, INT16 power, UINT8 bandwidth); CiReturnCode DEV_SetCommTxRxReq(UINT32 atHandle, CiDevPrimSetNstTxRxReq *req); CiReturnCode DEV_SetMccMncCcReq(UINT32 atHandle, UINT16 countryCode, UINT16 operCode, UINT8 *customerCode); CiReturnCode DEV_GetMccMncCcReq(UINT32 atHandle); CiReturnCode DEV_GetSinrReq(UINT32 atHandle); CiReturnCode DEV_GetRssiReq(UINT32 atHandle); void devCnf(CiSgOpaqueHandle opSgCnfHandle, CiServiceGroupID svgId, CiPrimitiveID primId, CiRequestHandle reqHandle, void* paras); void devInd(CiSgOpaqueHandle opSgOpaqueHandle, CiServiceGroupID svgId, CiPrimitiveID primId, CiIndicationHandle indHandle, void* pParam); void resetDevParas(void); CiReturnCode DEV_SetWcdmaModeTxRxReq(UINT32 atHandle, CiDevGsmTxRxOption option, UINT16 dlUarfcn, UINT16 ulUarfcn, UINT8 paMode, UINT16 apcDac, INT16 afcDac); CiReturnCode DEV_GetLteCoexInfoReq(UINT32 atHandle); CiReturnCode DEV_SetLteCoexReportOptionReq(UINT32 atHandle, UINT8 enable); CiReturnCode DEV_GetWbAmrReq(UINT32 atHandle, UINT32 tokens); CiReturnCode DEV_SetWbAmrReq(UINT32 atHandle, UINT32 umtsWbAmr, UINT32 gsmWbAmr); CiReturnCode DEV_SetEngModeIndicatorOption(UINT32 atHandle, int modeVal, int timeVal); CiReturnCode DEV_SetIMLConfigReq(UINT32 atHandle, UINT8 IMLType, int datalen, char *data); CiReturnCode DEV_GetIMLConfigReq(UINT32 atHandle); CiReturnCode Dev_SetComFeature(UINT32 atHandle, UINT8 cmd, UINT16 featureID, CHAR *data, int index, CHAR *list); CiReturnCode Dev_GetComFeature(UINT32 atHandle, UINT16 featureID, UINT32 index, CHAR *data); #ifdef PLATFORM_FOR_PS_LW CiReturnCode DEV_SetLTEBand(UINT32 atHandle, UINT8 numOfLteBands, int*lteBands); CiReturnCode DEV_GetLTEBand(UINT32 atHandle); CiReturnCode DEV_GetCsc_req(UINT32 atHandle); #endif CiReturnCode DEV_GetOperCfg_req(UINT32 atHandle, UINT8 mode, UINT32 val); CiReturnCode DEV_SetOperCfg_req(UINT32 atHandle, CiDevPrimSetOperConfigReq *setOperCfgReq); CiReturnCode DEV_GetMEDCR(UINT32 atHandle, UINT8 position); CiReturnCode DEV_SetMEDCR(UINT32 atHandle, UINT8 position, UINT8 value); CiReturnCode DEV_GetCellInfo(UINT32 atHandle); CiReturnCode DEV_GetLPECID(UINT32 atHandle); CiReturnCode DEV_GetLPOtdoaReq(UINT32 atHandle, UINT8 *msg_data, UINT32 msg_data_len, UINT8 count); CiReturnCode DEV_SetLPOtdoaAbort(UINT32 atHandle); void checkDevRet( CiRequestHandle reqHandle, CiDevRc result ); void devInd_2(CiSgOpaqueHandle opSgOpaqueHandle, CiServiceGroupID svgId, CiPrimitiveID primId, CiIndicationHandle indHandle, void* pParam); void devCnf_2(CiSgOpaqueHandle opSgCnfHandle, CiServiceGroupID svgId, CiPrimitiveID primId, CiRequestHandle reqHandle, void* paras); #define CI_DEV_PRIM_GET_WIRELESS_MODE_REQ (CI_DEV_PRIM_LAST_COMMON_PRIM + 1) #define CI_DEV_PRIM_GET_SINR_REQ (CI_DEV_PRIM_LAST_COMMON_PRIM + 2) #define CI_DEV_PRIM_GET_RSSI_REQ (CI_DEV_PRIM_LAST_COMMON_PRIM + 3) #define CI_DEV_PRIM_GET_CELL_INFO (CI_DEV_PRIM_LAST_COMMON_PRIM + 4) #define PRI_DEV_PRIM_GET_CP_FUNC_REQ (CI_DEV_PRIM_LAST_COMMON_PRIM + 1) #define PRI_DEV_PRIM_GET_RSRP_REQ (CI_DEV_PRIM_LAST_COMMON_PRIM + 2) #define PRI_DEV_PRIM_GET_RSRQ_REQ (CI_DEV_PRIM_LAST_COMMON_PRIM + 3) typedef enum ATCI_HSDPA_MODE { ATCI_HSDPA_OFF_HSUPA_OFF = 0, ATCI_HSDPA_ON_HSUPA_ON, ATCI_HSDPA_ON_HSUPA_OFF, ATCI_HSDPA_ON_HSUPA_ON_DLDC, ATCI_HSPA_REL6, } AtciHsdpaMode; #define MAX_RESPBUFF_SIZE (2048 - 4) //4 is the space for the '\r', '\n' added at the begin and end of respString in function atRespStr() /* enum of wireless parameter type*/ #define CI_DEV_SIGNALING_PACKET_NON_PAYLOAD_LEN 17 #define BIT_NUM_ONE_OCTET 8 #define TEST_BIT(val, nr) (((1UL << ((nr) & ((sizeof(val) * BIT_NUM_ONE_OCTET - 1)))) & (val)) != 0) //fix build warnning int GetCfunValue(void); void SetCfunValue(int value); void wait_cfun_done(void); BOOL isHandleForMasterSim(UINT32 reqHandle); CiReturnCode Dev_L1Debug(UINT32 atHandle, CHAR *data, UINT16 length); #ifdef SINGLE_SIM CiReturnCode DEV_SetSimSlot(UINT32 atHandle, int simSlot); CiReturnCode DEV_GetSimSlot(UINT32 atHandle); #endif #ifdef QUEC_BLACK_CELL_SUPPORT #define QUEC_BLACKCELL_REJECT_COUNT_MAX (10) typedef struct { UINT32 arfcn; /*gsm:arfcn wcdma: uarfcn lte:earfcn*/ UINT16 cellid; /*gsm:bsic wcdma:psc lte:pci*/ UINT8 rat; /*0:gsm 1:wcdma 2:lte*/ UINT8 Optype; /*0 is add,1 is delete blackcell*/ }quec_cellid_s_t; typedef struct { UINT32 arfcn; UINT16 cell_id; UINT8 event; }quec_blackcell_item_s_t; UINT8 quec_get_oneshot_flag(void); void quec_set_oneshot_flag(UINT8 flag); void quec_set_oneshot_type(UINT8 type); UINT8 quec_get_oneshot_type(void); void quec_send_oneshot_get_cellid(UINT8 type); void quec_clear_gmm_reject_count(void); void quec_clear_emm_reject_count(void); #endif #endif