[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/interface/l1/cl1/common/hscapi.h b/mcu/interface/l1/cl1/common/hscapi.h
new file mode 100644
index 0000000..c6cda78
--- /dev/null
+++ b/mcu/interface/l1/cl1/common/hscapi.h
@@ -0,0 +1,533 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2016
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 2002-2010 VIA Telecom, Inc. All rights reserved.
+*
+*************************************************************/
+#ifndef _HSCAPI_H_
+#define _HSCAPI_H_
+/*****************************************************************************
+*
+* FILE NAME : hscapi.h
+*
+* DESCRIPTION :
+*
+*
+* HISTORY :
+* See Log at end of file
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+* Include Files
+----------------------------------------------------------------------------*/
+#include "sysapi.h"
+#include "pswapi.h"
+
+
+/*----------------------------------------------------------------------------
+* Message IDs for signals and commands sent to HSC
+*----------------------------------------------------------------------------*/
+#include "hscmsg.h"
+
+/*----------------------------------------------------------------------------
+* Definitions
+*----------------------------------------------------------------------------*/
+#define HSC_NUM_APPS (SYS_MODE_EVDO+1)
+/* The maximum mini-acq error, in tc8, where the 32K calibration will be applied.
+ If the mini-acq error is greater than or equal to this threshold,
+ the error will not be used for adjusting 32k clock calibration. */
+#define SP_MINI_ACQ_TC8_CAL_ADJUST_MAX (8*5) /* Threshold for mini-acq error for SCI=0 */
+
+
+#define HSC_FM_FREQUENCY 208000000 /*208MHz*/
+#define HSC_FM_DURATION 1 /*1s*/
+#define HSC_32K_CNTS_PER_SEC 32768 /*HWD_CLK_FREQ_32KHZ TBD*/
+
+#define CL1_IF_EVDO_RC_REQ_TXOFF_DELAY (7) /* 7ms, about 1.666*(3+1), for L3 use, 1 slot more than RC Tx off slot is for marge */
+#define CL1_IF_1XRTT_RC_REQ_TXOFF_DELAY (5) /* 5ms, about 1.250*(3+1), for L3 use, 1 slot more than RC Tx off slot is for marge */
+
+
+/* MPA Release reasons, to be shared with SYS */
+typedef enum
+{
+ HSC_SSM_MPA_REL_PREEMPT,
+ HSC_SSM_MPA_REL_SLEEP,
+ HSC_SSM_MPA_REL_RESET,
+ HSC_SSM_PREP_MAX
+} HscSsmMpaReasonT;
+
+/* 32k Clk Cal Settle Speeds */
+typedef enum
+{
+ SETTLE_NORMAL,
+ SETTLE_FAST,
+ SETTLE_MAX
+} HscClkCalSpeedT;
+
+typedef enum
+{
+ CONFID_HIGH,
+ CONFID_MED,
+ CONFID_MIN,
+ CONFID_MAX
+} HscClkCalThreshT;
+
+typedef enum
+{
+ SIM2_GSM_SUSPEND,
+ SIM2_GSM_RESUME,
+ SIM1_1xRTT_SUSPEND,
+ SIM1_1xRTT_RESUME,
+ SIM1_1xRTT_CANCEL,
+ SIM1_LTE_RESUME
+} HscCssSupendResumeT;
+
+typedef enum
+{
+ UNKNOWN_STATE = 0,
+ WAITING_STATE,
+ OFFERED_STATE,
+ INVALID_STATE
+} HscSib8TimingStateT;
+
+typedef enum
+{
+ HSC_CSS_RAT_FLIGHT,
+ HSC_CSS_RAT_STANDBY,
+ HSC_CSS_RAT_ACTIVE
+}HscCssRatTypeT;
+
+typedef enum
+{
+ FH,
+ PCG,
+ SLOT,
+ FH_INPCGSLOT,
+ FH_inPCGIRQ,
+ FH_inSLOTIRQ
+} TimeProfileModeT;
+
+typedef SysAirInterfaceT HscSysAirInterfaceT;
+
+/*----------------------------------------------------------------------------
+ Message Formats structure
+----------------------------------------------------------------------------*/
+/* MSG_ID_HSC_CLK_CAL_START_MSG, HSC_ETS_CLK_CAL_START_MSG */
+typedef struct
+{
+ HscSysAirInterfaceT Owner; /* SYS_MODE_1xRTT or SYS_MODE_EVDO */
+} HscClkCalStartMsgT;
+
+
+/* HSC_IDP_SLEEP_CMD_MSG */
+typedef struct
+{
+ FrameRecT PchWakeSystemTimeFrame;
+ kal_uint8 SyncCapsuleOffset;
+} HscIdpSleepCmdMsgT;
+
+
+/* MSG_ID_HSC_IDP_ENABLE_DO_SLOTTED_MSG */
+typedef struct
+{
+ kal_uint16 PageSlot; /* assigned slot to monitor */
+ kal_uint16 SlotCycleIndex; /* selected slot cycle index */
+} HscIdpSPageParmsMsgT;
+
+
+/* MSG_ID_HSC_RMC_ACTIVATE_RSP_MSG */
+typedef struct
+{
+ kal_int16 PilotPN;
+ kal_int16 RxTxOffsetTc2;
+ kal_int16 MiniAcqErrTc2;
+ kal_uint16 PwrEst;
+} HscRmcMiniAcqErrMsgT;
+
+#ifdef MTK_DEV_C2K_IRAT
+/* HSC_CLC_SIB8_INFO_CFG_MSG */
+typedef struct
+{
+ kal_bool is_update; /* 0 = Clear, 1 = Update*/
+ sys_time_info_c2k_struct sib8_sys_time_info;
+} HscClcSib8InfoCfgMsgT;
+
+/* HSC_SIB8_TIMING_SYNC_REQ */
+typedef struct
+{
+ SysAirInterfaceT Mode; /* 0 = 1xRTT, 1 = EvDO*/
+} HscSib8TimingSyncReqMsgT;
+
+/* HSC_SIB8_TIMING_SYNC_CNF */
+typedef struct
+{
+ SysAirInterfaceT Mode; /* 0 = 1xRTT, 1 = EvDO*/
+ kal_bool result; /* Indicate the time sync info in this message is valid or invalid. */
+} HscSib8TimingSyncCnfMsgT;
+#endif
+
+/* MSG_ID_HSC_CLC_OOSA_SLEEP_CMD_MSG */
+typedef struct
+{
+ kal_uint32 SleepDuration; /* Sleep duration in 1/10 seconds */
+} HscClcOosaSleepCmdMsgT;
+
+typedef struct
+{
+ HscSysAirInterfaceT Mode; /* 0 = 1xRTT, 1 = EvDO*/
+ kal_bool IsFlightMode; /* TRUE - Fligh mode; FALSE - other mode */
+} HscInfiniteSleepReqMsgT;
+
+
+/* MSG_ID_HSC_CSS_SUSPEND_RESUME_CMD_MSG */
+typedef struct
+{
+ HscCssSupendResumeT CssCmdType;
+ HscCssRatTypeT RatType;
+} HscCssSuspendResumeCmdMsgT;
+
+/* LL1A_CLC_LTE_SCAN_C2K_ACTIVE_PARAMS_IND */
+typedef struct
+{
+ kal_uint16 LTE_scan_active_duration_1xRTT; /* unit in milisecond, value range [1..10000], 0xFFFF means invalid (feature off) */
+ kal_uint16 LTE_scan_active_duration_DO; /* unit in milisecond, value range [1..1000], 0xFFFF means invalid (feature off) */
+} Ll1aClcLteScanC2kActiveParamsIndT;
+
+/* LL1A_IDP_SIGNAL_PROTECT_STATUS_IND */
+typedef struct
+{
+ kal_bool bSignalProtectStatus;/* KAL_TRUE,means signal interation is started and need be protected; */
+ /* KAL_FALSE,means signal interation is ended and protection can be canceled. */
+} Ll1aIdpSignalProtectStatusIndT;
+
+/* LL1A_PSW_SIGNAL_PROTECT_STATUS_IND */
+typedef struct
+{
+ kal_bool bSignalProtectStatus;/* KAL_TRUE,means signal interation is started and need be protected; */
+ /* KAL_FALSE,means signal interation is ended and protection can be canceled. */
+} Ll1aPswSignalProtectStatusIndT;
+
+/* HSC_ETS_CAL_SETTLE_TIME_SET_MSG */
+typedef struct
+{
+ kal_uint8 SettleTime[SETTLE_MAX][CONFID_MAX];
+ kal_uint16 FastSettlePeriodInSeconds;
+} HscClkCalParmsT;
+
+/* MSG_ID_HSC_ALTERNATE_AFC_MSG */
+typedef struct
+{
+ kal_uint8 Enable;
+} HscAlternateAfcMsgT;
+
+/* HSC_IDP_WAKE_CMD_MSG */
+typedef struct
+{
+ kal_uint8 Req;
+} HscIdpWakeCmdMsgT;
+
+typedef struct
+{
+ TimeProfileModeT Mode;
+ kal_uint8 startidx;
+ kal_uint8 endidx;
+} HscTimeProfileMsgT;
+
+typedef struct
+{
+ kal_uint8 Owner;
+} HscSleepOverCompMsgT;
+
+/* MSG_ID_HSC_SET_SHDR_SVDO_OP_MODE_MSG */
+typedef struct
+{
+ kal_uint8 ShdrEnabled;
+ kal_uint8 SvdoEnabled;
+} HscSetShdrSvdoOpModeT;
+
+#if defined (MTK_DEV_C2K_IRAT) && defined (MTK_DEV_C2K_SRLTE_L1)
+
+typedef struct
+{
+ kal_bool C2kInSim2;
+} HscC2kSimIndexInfoMsgT;
+
+typedef struct
+{
+ kal_uint32 MmoGapStartTime;
+ kal_int32 GapLength;
+} HscC2kMmoGapPatternIndMsgT;
+
+/* HSC_1X_PRIORITY_BOOST_MSG
+ * This message is sent by PSW, to modify 1X priority for preemption */
+typedef struct
+{
+ kal_bool control; /* True: raise priority, False: decrease priority */
+} Hsc1xPriorityBoostMsgT;
+
+typedef struct
+{
+ kal_bool control; /* True: raise priority, False: decrease priority */
+} HscDoPriorityBoostMsgT;
+
+#endif
+
+
+typedef struct
+{
+ SysAirInterfaceT Mode; /* 0 = 1xRTT, 1 = EvDO*/
+} HscFrcSyncInfoReptMsgT;
+
+/* MSG_ID_HSC_CSS_PSEUDO_SET_RAT_IND */
+typedef struct
+{
+ HscCssRatTypeT RatType;
+ kal_bool IsC2kOnSim2;
+} HscCssPseudoSetRatIndT;
+
+
+/*----------------------------------------------------------------------------
+* Hsc global
+*----------------------------------------------------------------------------*/
+extern kal_bool HscClkCalFastSettleEnabled;
+/*----------------------------------------------------------------------------
+* Hsc global APIs
+*----------------------------------------------------------------------------*/
+/*****************************************************************************
+
+ FUNCTION NAME: HscSsmFrameCntEst
+
+ DESCRIPTION: Estimates frame count during slotted paging
+
+ PARAMETERS:
+
+ RETURNED VALUES: FrameRecT
+
+*****************************************************************************/
+extern FrameRecT HscSsmFrameCntEst(HscSysAirInterfaceT Owner);
+
+
+/*****************************************************************************
+
+ FUNCTION NAME: HscSysDoPchBackoffTotalFrames
+
+ DESCRIPTION:
+
+ PARAMETERS:
+
+ RETURNED VALUES: Returns Total Backoff Time in DO Frames
+ (including RF backoff, Calibration, and MiniAcqErr Adjust)
+
+*****************************************************************************/
+extern kal_uint8 HscSysDoPchBackoffTotalFrames(HscSysAirInterfaceT Owner, kal_int32 backoff);
+
+
+/*****************************************************************************
+
+ FUNCTION NAME: HscClkCalSettleTimeGet
+
+ DESCRIPTION: Returns the 32KHz calibration settling time
+
+ PARAMETERS: SettleSpeed = SETTLE_NORMAL or SETTLE_FAST;
+ ThresholdZone = CONFID_HIGH, CONFID_MED, or CONFID_MIN;
+
+ RETURNED VALUES: 32KHz Calibration settling time
+
+*****************************************************************************/
+extern kal_uint8 HscClkCalSettleTimeGet(kal_uint8 SettleSpeed, kal_uint8 ThresholdZone);
+
+/*****************************************************************************
+
+ FUNCTION NAME: HscClkCalFastSettle
+
+ DESCRIPTION: Send HSC Transmitter State for 32k clock calibration
+
+ PARAMETERS: None
+
+ RETURNS: None
+
+*****************************************************************************/
+extern void HscClkCalFastSettle(kal_bool TxOn);
+
+/*****************************************************************************
+
+ FUNCTION NAME: HscSetAfcStatus
+
+ DESCRIPTION: Validates Afc for the given interface.
+
+ PARAMETERS: HscSysAirInterfaceT Interface
+ SysCdmaBandT Band
+ kal_bool Valid
+
+ RETURNS: None
+
+*****************************************************************************/
+extern void HscSetAfcStatus(SysAirInterfaceT Interface, SysCdmaBandT Band, kal_bool Valid);
+
+/*****************************************************************************
+
+ FUNCTION NAME: HscSsmSpecial1xPreemption
+
+ DESCRIPTION: Enables 1x PS to force high priorty for 1X antenna request
+
+ PARAMETERS: KAL_TRUE/KAL_FALSE
+
+ RETURNED VALUES: None
+
+*****************************************************************************/
+extern void HscSsmSpecial1xPreemption(kal_bool Control);
+
+/*****************************************************************************
+
+ FUNCTION NAME: HscSsmSpecialDoProtectPreemption
+
+ DESCRIPTION: Used to raise Do's priority and protect DO from being HSC preempt by 1xRTT
+
+ PARAMETERS: Control - Enable Do special protect from HSC preemption or not
+
+ RETURNED VALUES: None
+
+*****************************************************************************/
+extern void HscSsmSpecialDoProtectPreemption(kal_bool Control);
+
+/*****************************************************************************
+
+ FUNCTION NAME: HscSsmDoRxAgcSettleLong
+
+ DESCRIPTION:
+
+ PARAMETERS:
+
+ RETURNED VALUES: 1/KAL_TRUE : Long RxAgc Fast Settle Time
+ : 0/KAL_FALSE: Short RxAgc Fast Settle Time
+
+*****************************************************************************/
+extern kal_bool HscSsmDoRxAgcSettleLong(void);
+
+/*****************************************************************************
+
+ FUNCTION NAME: HscShdrEnabled
+
+ DESCRIPTION:
+
+ PARAMETERS:
+
+ RETURNED VALUES: 1/KAL_TRUE : SHDR is enabled
+ : 0/KAL_FALSE: SHDR is not enabled
+
+*****************************************************************************/
+extern kal_bool HscShdrEnabled(void);
+
+
+/*****************************************************************************
+
+ FUNCTION NAME: HscCurrentWakeupInShdr
+
+ DESCRIPTION: Returns the current (dynamic) state
+
+ PARAMETERS: None
+
+ RETURNED VALUES: 1/KAL_TRUE : SHDR is enabled
+ : 0/KAL_FALSE: SHDR is not enabled
+
+*****************************************************************************/
+extern kal_uint8 HscL1dSPageWakeStatus(void);
+extern void HscSpDisable(HscSysAirInterfaceT Owner);
+extern kal_uint16 HscSpHistory(HscSysAirInterfaceT Owner);
+extern kal_uint16 HscL1dSPageGetNumOfFrames4Wakeup(void);
+extern kal_bool HscSsmDoInSuspendQueue(void);
+#ifdef MTK_CBP
+extern void HscSsmRmcAntennaRelease(kal_uint8 RfPaths, kal_bool releaseFlag);
+extern void HscSsmResyncCancel(HscSysAirInterfaceT Owner);
+extern kal_bool HscSsmInWakeQueue(HscSysAirInterfaceT Owner);
+extern void HscSsmReset(HscSysAirInterfaceT Owner);
+extern kal_uint8 HscSpEnabled(HscSysAirInterfaceT Owner);
+#endif
+
+#if defined (MTK_DEV_C2K_IRAT) && defined (MTK_DEV_C2K_SRLTE_L1)
+extern kal_bool HscSsmIs1xAvailableforAutoGap( void );
+extern kal_bool HscSsmCloseToResync(void);
+extern kal_bool HscSsmResyncTimeQuery(HscSysAirInterfaceT Owner, kal_uint32 *Frc);
+extern kal_bool HscSsmResyncShdrGet(HscSysAirInterfaceT Owner);
+extern void HscSsmEvstandbyTimeCopyProhibit(kal_bool Prohibit);
+extern void HscOosaStateUpdateEvStandby();
+extern void HscOosaStateUpdate();
+extern void HscOosaSendWakeInd();
+extern void HscLl1aGapOfferReq(kal_bool Enable);
+extern kal_bool HscSsmDoPchPrioBoostTrigQuery(void);
+#endif
+
+
+extern void HscSsmResumeWakeCmdMsg(void);
+extern kal_bool MpaCheckSecondPathSupport(void);
+
+#ifdef SYS_OPTION_TX_TAS_ENABLE
+/* used for TAS only */
+extern kal_bool HscSsmCheckDoPreemptForTas(void);
+extern kal_bool HscSsmCheckShdrModeForTas(void);
+#endif
+
+/*****************************************************************************
+ * removed!
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
+/**Log information: \main\Trophy\Trophy_ylxiao_href22033\1 2013-03-18 14:15:26 GMT ylxiao
+** HREF#22033, merge 4.6.0**/
+/**Log information: \main\Trophy\1 2013-03-19 05:19:47 GMT hzhang
+** HREF#22033 to merge 0.4.6 code from SD.**/
+/**Log information: \main\Trophy\Trophy_jluo_href22084\1 2013-04-03 04:13:29 GMT jluo
+** HREF#22084:HANDROID#1723**/
+/**Log information: \main\Trophy\2 2013-04-03 06:37:55 GMT czhang
+** HREF#22084**/
+/**Log information: \main\Trophy\Trophy_yanliu_handroid2028\1 2013-08-30 07:03:10 GMT yanliu
+** HANDROID#2028: check in SD's MT slotted optimization**/
+/**Log information: \main\Trophy\3 2013-08-30 07:05:25 GMT yanliu
+** HANDROID#2028 merged: check in SD's MT slotted optimization**/
+/**Log information: \main\Trophy\Trophy_xding_href22331\1 2013-12-10 07:17:45 GMT xding
+** HREF#22331, ºÏ²¢MMCÏà¹Ø¹¦Äܵ½Trophy baselineÉÏ**/
+/**Log information: \main\Trophy\4 2013-12-10 08:33:12 GMT jzwang
+** href#22331:Merge MMC latest implementation from Qilian branch.**/
+