FreeCalypso > hg > fc-magnetite
view src/aci2/aci/cmh.h @ 685:3fb7384e820d
tpudrv12.h: FCDEV3B goes back to being itself
A while back we had the idea of a FreeCalypso modem family whereby our
current fcdev3b target would some day morph into fcmodem, with multiple
FC modem family products, potentially either triband or quadband, being
firmware-compatible with each other and with our original FCDEV3B. But
in light of the discovery of Tango modules that earlier idea is now being
withdrawn: instead the already existing Tango hw is being adopted into
our FreeCalypso family.
Tango cannot be firmware-compatible with triband OM/FCDEV3B targets
because the original quadband RFFE on Tango modules is wired in TI's
original Leonardo arrangement. Because this Leonardo/Tango way is now
becoming the official FreeCalypso way of driving quadband RFFEs thanks
to the adoption of Tango into our FC family, our earlier idea of
extending FIC's triband RFFE control signals with TSPACT5 no longer makes
much sense - we will probably never produce any new hardware with that
once-proposed arrangement. Therefore, that triband-or-quadband FCFAM
provision is being removed from the code base, and FCDEV3B goes back to
being treated the same way as CONFIG_TARGET_GTAMODEM for RFFE control
purposes.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 24 Sep 2020 21:03:08 +0000 |
parents | 93999a60b835 |
children |
line wrap: on
line source
/* +----------------------------------------------------------------------------- | Project : GSM-F&D (8411) | Modul : CMH +----------------------------------------------------------------------------- | Copyright 2002 Texas Instruments Berlin, AG | All rights reserved. | | This file is confidential and a trade secret of Texas | Instruments Berlin, AG | The receipt of or possession of this file does not convey | any rights to reproduce or disclose its contents or to | manufacture, use, or sell anything it may describe, in | whole, or in part, without the specific written consent of | Texas Instruments Berlin, AG. +----------------------------------------------------------------------------- | Purpose : Definitions for the AT Command Handler +----------------------------------------------------------------------------- */ #ifndef CMH_H #define CMH_H /*==== CONSTANTS ==================================================*/ typedef enum { RAT_OK = 0, RAT_CONNECT, RAT_CME, RAT_NO_CARRIER, RAT_CRING, RAT_DR, RAT_CR, RAT_CPIN, RAT_COPS, RAT_CREG, RAT_CCWA, RAT_CLIP, RAT_CDIP, RAT_COLP, RAT_CRING_OFF, #ifdef FF_FAX RAT_FCO, RAT_FIS, RAT_FTI, RAT_FCS, RAT_FCI, #endif RAT_CMS, RAT_CSMS, RAT_CMGS, RAT_CMSS, RAT_CMGW, RAT_CDS, RAT_CMGC, RAT_CMGD, RAT_CMGR, RAT_CMGL, RAT_CMTI, RAT_CMT, RAT_CBM, RAT_CPMS, #ifdef FF_FAX RAT_FHT, RAT_FHR, RAT_FSA, RAT_FPA, RAT_FPW, RAT_FET, RAT_FVO, RAT_FPO, RAT_FPI, RAT_FNF, RAT_FNS, RAT_FNC, RAT_FHS, RAT_FPS, RAT_FTC, #endif RAT_ILRR, RAT_BUSY, RAT_NO_ANSWER, RAT_SIMREM, RAT_CLIR, RAT_COLR, RAT_CSSI, RAT_CSSU, RAT_CUSD, RAT_CCFC, RAT_CLCK, RAT_CIMI, RAT_SATI, RAT_SATE, RAT_KSIR, RAT_CPI, RAT_CTYI, RAT_CNUM, RAT_CPOL, RAT_CCCM, RAT_CTV, RAT_SATN, RAT_SATA, RAT_SMS_READY, RAT_PHB_STATUS, RAT_SIMINS, RAT_CRSM, RAT_CSIM, RAT_CCBS, RAT_CCWV, RAT_CNAP, RAT_SIG_SMS, RAT_CLAN, RAT_CLAE, RAT_CSQ, RAT_ALS, RAT_CTZV, RAT_P_CREG, #ifdef GPRS RAT_CGACT, RAT_CGDATA, RAT_CGANS, RAT_CGEREP, RAT_CGREG, RAT_QOS_MOD, RAT_SNCNT, RAT_P_CGREG, RAT_P_CGEV, #endif /* GPRS */ #ifdef FF_EM_MODE RAT_EM, RAT_EMET, RAT_EMETS, #endif /* FF_EM_MODE */ #ifdef FF_CPHS RAT_CPNUMS, RAT_CPVWI, RAT_CPROAM, #endif /* FF_CPHS */ RAT_CIEV, RAT_RDL, RAT_RDLB, RAT_CCCN, RAT_CSSN, RAT_CSTAT, RAT_Z, RAT_CPRSM, RAT_P_CTZV, RAT_P_CPRI, RAT_P_SIMEF, RAT_P_CNIV, RAT_P_COPS, RAT_P_CMGR, RAT_P_CMGL, RAT_MAX } RAT_ID; /*==== TYPES ======================================================*/ typedef struct entStatus /* entity status */ { T_ACI_CMD_SRC entOwn; /* entity owner */ T_ACI_AT_CMD curCmd; /* current command processing */ } T_ENT_STAT; typedef struct mmCmdPrm /* command parameters related to MM */ { T_ACI_COPS_FRMT COPSfrmt; T_ACI_NRG_RGMD NRGregMode; T_ACI_NRG_SVMD NRGsrvMode; T_ACI_NRG_FRMT NRGoprFrmt; T_ACI_CSQ_MODE CSQworkStat; T_ACI_CTZR_MODE CTZRMode; T_ACI_CTZU_MODE CTZUMode; T_ACI_PCTZV_MODE PCTZVMode; T_ACI_CNIV_MODE CNIVMode; T_ACI_IND_MODE sIndicationParam; } T_MM_CMD_PRM; typedef struct ccCmdPrm /* command parameters related to CC */ { T_ACI_CLIR_MOD CLIRmode; T_ACI_DCD_MOD DCDmode; T_ACI_TOA CSTAtoa; BOOL CSTAdef; T_ACI_CHLD_MOD CHLDmode; T_ACI_CCUG_IDX CCUGidx; T_ACI_CCUG_INFO CCUGinfo; T_ACI_CCUG_MOD CCUGmode; USHORT mltyCncFlg; USHORT mltyDscFlg; T_ACI_ALS_MOD ALSmode; /* mode for Alternate Line Service */ T_ACI_CTTY_MOD CTTYmode; /* TTY Service notification */ T_ACI_CC_CSCN_MOD CSCNcc_mode; } T_CC_CMD_PRM; typedef struct simCmdPrm /* command parameters related to SIM */ { UBYTE CNUMActRec; UBYTE CNUMOutput; T_ACI_CPOL_FRMT CPOLfrmt; UBYTE CPOLact; UBYTE CPOLidx; UBYTE CPOLidx2; T_ACI_CPOL_MOD CPOLmode; UBYTE CPOLplmn[3]; UBYTE CLANact; } T_SIM_CMD_PRM; typedef struct ssCmdPrm /* command parameters related to SS */ { UBYTE CXXXpwd[MAX_PWD_NUM+1]; UBYTE CXXXnewPwd[MAX_PWD_NUM+1]; UBYTE CXXXnewPwd2[MAX_PWD_NUM+1]; USHORT mltyTrnFlg; T_ACI_SS_CSCN_MOD CSCNss_mode; } T_SS_CMD_PRM; typedef struct phbCmdPrm /* command parameters related to PHB */ { T_ACI_PB_STOR cmhStor; UBYTE phbStor; /* T_PHB_TYPE */ USHORT order_num; /* Next matching entry, 0 if none */ SHORT fndRec; UBYTE wrtRec; T_ACI_CSVM_MOD CSVMmode; T_ACI_CLAE_MOD CLAEmode; UBYTE curCmd; UBYTE temp_cmhStor; /* These data types are used to hold */ UBYTE temp_phbStor; /* the phone book storage types temprorily, in case of SIM PIN-2 verification. These values are assigned to the actual storage fileds when SIM PIN-2 verification confirmation comes without any ERROR. */ } T_PHB_CMD_PRM; /* Fax and data related command parameters have been moved to a specific structure in cmh_ra.h */ typedef struct cmhCmdPrm /* handler command parameter */ { T_MM_CMD_PRM mmCmdPrm; T_CC_CMD_PRM ccCmdPrm; T_SIM_CMD_PRM simCmdPrm; T_SS_CMD_PRM ssCmdPrm; T_PHB_CMD_PRM phbCmdPrm; } T_CMH_PRM; /*==== PROTOTYPES =================================================*/ EXTERN void cmh_Init ( void ); EXTERN void cmh_Reset ( T_ACI_CMD_SRC srcId, BOOL atz ); EXTERN BOOL cmh_IsVldCmdSrc ( T_ACI_CMD_SRC cmdSrc ); EXTERN UBYTE cmh_mergeTOA ( UBYTE ton, UBYTE npi ); EXTERN UBYTE cmh_mergeTOS ( UBYTE tos, UBYTE oe ); EXTERN void cmh_demergeTOA ( UBYTE toa, UBYTE* ton, UBYTE* npi ); EXTERN void cmh_demergeTOS ( UBYTE tosa, UBYTE* tos, UBYTE* oe ); EXTERN CHAR* cmh_setToaDef ( CHAR* number, T_ACI_TOA *toa ); EXTERN USHORT cmh_packBCD ( UBYTE *bcd_out, const UBYTE *char_in, USHORT len_in); EXTERN USHORT cmh_unpackBCD ( UBYTE *char_out, const UBYTE *bcd_in, USHORT len_in); EXTERN void cmh_unpackSCTS ( T_ACI_VP_ABS *scts, const UBYTE *buf_in ); EXTERN void cmh_logRslt ( T_ACI_CMD_SRC dest, RAT_ID rat, T_ACI_AT_CMD cmd, SHORT cId, T_ACI_BS_SPEED spd, T_ACI_CME_ERR err ); EXTERN void cmh_cvtToDefGsm ( CHAR* in, CHAR* out, USHORT* len ); EXTERN void cmh_cvtFromDefGsm ( CHAR* in, USHORT len, CHAR* out ); EXTERN UBYTE cmh_set_delayed_call( UCHAR (*call) (void*), void* arg ); EXTERN UBYTE cmh_start_delayed_call ( ULONG ms ); EXTERN UBYTE cmh_timeout ( USHORT handle ); EXTERN SHORT cmh_bldCalPrms ( char * pDialStr, T_CLPTY_PRM * calPrm ); EXTERN UBYTE qAT_CallActive ( void ); EXTERN void cmhSMS_disableAccess ( void ); EXTERN T_ACI_RETURN cmhSIM_ReadTranspEF ( T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, USHORT datafield, USHORT offset, UBYTE explen, UBYTE * exchData, void (*rplyCB)(SHORT)); EXTERN T_ACI_RETURN cmhSIM_WriteTranspEF (T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, USHORT datafield, USHORT offset, UBYTE datalen, UBYTE * exchData, void (*rplyCB)(SHORT)); #ifdef GPRS GLOBAL void cp_pdp_primitive(T_SMREG_PDP_ACTIVATE_CNF * pdp_activate_cnf, T_PPP_PDP_ACTIVATE_RES *activate_result); #endif GLOBAL T_ACI_RETURN cmhSIM_WriteRecordEF (T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, USHORT datafield, UBYTE record, UBYTE datalen, UBYTE * exchData, void (*rplyCB)(SHORT)); GLOBAL T_ACI_RETURN cmhSIM_ReadRecordEF ( T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, USHORT datafield, UBYTE record, UBYTE explen, UBYTE * exchData, void (*rplyCB)(SHORT)); GLOBAL T_ACI_RETURN cmhSMS_ReadParams (T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, SHORT recNr); GLOBAL T_ACI_RETURN cmhSMS_WriteParams (T_ACI_CMD_SRC srcId, T_ACI_AT_CMD cmd, SHORT recNr); GLOBAL T_ACI_RETURN cmhSIM_GetSIMError ( T_ACI_CMD_SRC srcBuf, T_ACI_AT_CMD cmdBuf ); GLOBAL T_ACI_RETURN cmhSIM_CheckSimPinStatus ( T_ACI_CMD_SRC srcBuf, T_ACI_AT_CMD cmdBuf ); GLOBAL T_ACI_RETURN cmhSIM_Read_AD ( ); EXTERN void percentCSTAT_indication(T_ACI_ENTITY_ID_MSG entityId, T_ACI_ENTITY_STATE_MSG entityState); EXTERN void cmhSMS_ReadCbDtaDwnl ( T_SIM_MMI_INSERT_IND *sim_mmi_insert_ind ); GLOBAL void cmhSIM_Get_CSP(); GLOBAL void cmhSIM_Read_CSP(); #ifdef SIM_PERS GLOBAL void cmhSIM_WriteDefaultValue_DCK(); #endif GLOBAL UBYTE cmhSIM_isplmnmodebit_set(); GLOBAL T_ACI_CMD_MODE aci_rat_cmd_mode(RAT_ID cmd,T_ACI_CMD_SRC src); GLOBAL T_ACI_CMD_MODE aci_cmd_src_mode_get(T_ACI_CMD_SRC src_id); GLOBAL void aci_cmd_src_mode_set(UBYTE src_id,T_ACI_CMD_MODE mode); /*==== MACROS =====================================================*/ EXTERN T_ACI_CMD_MODE _mode; EXTERN UBYTE srcId_cb; EXTERN USHORT used_sources; #define IS_SRC_USED(x) ((used_sources >> x) & 0x01) #define IS_SRC_BT(x) ((used_sources >> (x + 8)) & 0x01) /* we set the src id only when the src id NEQ local. Bec in ASC test we intentionally set the src from TST to LCL for some purpose, but the srcId_cb should remain TST */ #define R_AT(cmd,src)\ _mode=aci_rat_cmd_mode(cmd,src);\ if (src > CMD_SRC_LCL)\ srcId_cb=(UBYTE)src;\ if (_mode NEQ CMD_MODE_NONE AND RATJmpTbl[cmd][_mode])\ RATJmpTbl[cmd][_mode] #define ACI_ERR_DESC( errCls, errNr )\ {aciErrDesc=(((errCls)<<16) | ((errNr)&0xFFFF));} /*==== EXPORT =====================================================*/ #ifdef CMH_F_C GLOBAL T_CMH_PRM cmhPrm[OWN_MAX]; GLOBAL T_ACI_ALS_MOD ALSlock = ALS_MOD_NOTPRESENT; GLOBAL T_ACI_ERR_DESC aciErrDesc = -1; #else EXTERN T_CMH_PRM cmhPrm[OWN_MAX]; EXTERN T_ACI_ALS_MOD ALSlock; EXTERN T_ACI_ERR_DESC aciErrDesc; EXTERN const T_VOID_FUNC RATJmpTbl[RAT_MAX][CMD_MODE_MAX]; /* SMI/MFW & ATI */ #endif /* of #ifndef CMH_F_C */ #endif /* CMH_H */ /*==== EOF =======================================================*/