[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/protocol/l4_c2k/monapi.h b/mcu/interface/protocol/l4_c2k/monapi.h
new file mode 100644
index 0000000..670750f
--- /dev/null
+++ b/mcu/interface/protocol/l4_c2k/monapi.h
@@ -0,0 +1,227 @@
+/*****************************************************************************
+* 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-2011 VIA Telecom, Inc. All rights reserved.
+*
+*************************************************************/
+/*****************************************************************************
+
+ FILE NAME: monapi.h
+
+ DESCRIPTION:
+
+ This file contains all the constants, mail message definition and
+ function prototypes exported by the MON unit.
+
+*****************************************************************************/
+#ifndef MONAPI_H
+#define MONAPI_H
+
+#include "kal_public_defs.h"
+#include "sysapi.h"
+
+/*----------------------------------------------------------------------------
+ Defines Macros used in this file
+----------------------------------------------------------------------------*/
+
+/* NOTE: Empty all MonTrace */
+#define MonTrace(TraceId, ...)
+#define MonTraceInquire(TraceId) (KAL_TRUE)
+#define MonSpy(SpyId, ...)
+#define MonFault(Unit, Code1, Code2, Type)
+#define MON_DEEP_SLEEP_SW_LATENCY (17203) /* 350us + 1400us(for MML1_RF_POWER_ON), 17203=1750*8*1.2288*/
+
+
+
+/*----------------------------------------------------------------------------
+ Defines global variabls
+----------------------------------------------------------------------------*/
+extern const SysSFrameTimeT MonDeepSleepForeverTime;
+extern const SysSFrameTimeT MonDeepSleepFlightModeTime;
+
+#define SLEEP_FOREVER_TIME MonDeepSleepForeverTime
+#define FLIGHT_MODE_TIME MonDeepSleepFlightModeTime
+
+
+/*------------------------------------------------------------------------
+* Define typedefs used in MON API
+*------------------------------------------------------------------------*/
+
+/* Define fault halt/continue flag */
+typedef enum
+{
+ MON_CONTINUE = 0x00,
+ MON_HALT = 0x01
+} MonFaultTypeT;
+
+/* Define all unit fault code numbers */
+typedef enum
+{
+ MON_CP_FAULT_UNIT = 0x00,
+ MON_DBM_FAULT_UNIT = 0x01,
+ MON_EXE_FAULT_UNIT = 0x02,
+ MON_IPC_FAULT_UNIT = 0x03,
+ MON_IOP_FAULT_UNIT = 0x04,
+ MON_L1D_FAULT_UNIT = 0x05,
+ MON_LMD_FAULT_UNIT = 0x06,
+ MON_MON_FAULT_UNIT = 0x07,
+ MON_PSW_FAULT_UNIT = 0x08,
+ MON_HWD_FAULT_UNIT = 0x09,
+ MON_TST_FAULT_UNIT = 0x0A,
+ MON_VAL_FAULT_UNIT = 0x0B,
+ MON_SYS_FAULT_UNIT = 0x0C,
+ MON_RLP_FAULT_UNIT = 0x0D,
+ MON_HLP_FAULT_UNIT = 0x0E,
+ MON_MEDIA_FAULT_UNIT= 0x0F,
+ MON_UIM_FAULT_UNIT = 0x10,
+ MON_UI_FAULT_UNIT = 0x11,
+ MON_FSM_FAULT_UNIT = 0x12,
+ MON_CLC_FAULT_UNIT = 0x13,
+ MON_FCP_FAULT_UNIT = 0x14,
+ MON_HSC_FAULT_UNIT = 0x15,
+ MON_RMC_FAULT_UNIT = 0x16,
+ MON_RCP_FAULT_UNIT = 0x17,
+ MON_SLC_FAULT_UNIT = 0x18,
+ MON_CSS_FAULT_UNIT = 0x19,
+ MON_LEC_FAULT_UNIT = 0x1A,
+ MON_SEC_FAULT_UNIT = 0x1B,
+ MON_A2DP_FAULT_UNIT = 0x1C,
+ MON_AV_FAULT_UNIT = 0x1D,
+ MON_ETS_FAULT_UNIT = 0x1E,
+ MON_TLS_FAULT_UNIT = 0x1F,
+ MON_DM_FAULT_UNIT = 0x20,
+ MON_UNUSED_FAULT_UNIT = 0x21,
+ MON_MMC_FAULT_UNIT = 0x22,
+
+#if (defined(MTK_CBP) && (!defined(MTK_PLT_ON_PC)))
+ MON_FHC_FAULT_UNIT = 0x23,
+ MON_LOGIQ_FAULT_UNIT= 0x24,
+#endif
+
+#if (defined(MTK_PLT_AUDIO))
+ MON_VALSPH_FAULT_UNIT = 0x25,
+ MON_HWDSPH_FAULT_UNIT = 0x26,
+#endif // (defined(MTK_PLT_AUDIO))
+ MON_SBP_FAULT_UNIT = 0x27,
+ MON_NUM_FAULT_UNIT,
+
+ MON_CP_BOOT_FAULT_UNIT = 0x30, /* these 2 are only used by boot code and therefore */
+ MON_BOOT_FAULT_UNIT = 0x31 /* should not be accounted for in MON_NUM_FAULT_UNIT */
+
+} MonFaultUnitT;
+typedef enum
+{
+ MON_HWD_SLEEPOVER_FLAG = 0x00000001, /* HWD: for sleepover ISR */
+ MON_MD_DVFS_PEND = 0x00000002,
+ MON_RC_PEND_FLAG = 0x00000004, /*RC: for ongoing RC SQ*/
+ MON_META_MODE_FLAG = 0x00000008,
+ MON_CLR_EXTEND_SLOT = 0x00000010,
+ MON_CL1_TMG_CHG = 0x00000020,
+ MON_RAKE_SHDR_PROTECT = 0x00000040,
+ MON_CL1_RTBAW = 0x00000080,
+ MON_HSC_1X_MODEM_ACTIVE_FLAG = 0x00000100, /* HSC: for 1x modem activity */
+ MON_HSC_DO_MODEM_ACTIVE_FLAG = 0x00000200, /* HSC: for DO modem activity */
+ MON_GPS_SYNC_FLAG = 0x00000400, /* For GPS sync */
+ MON_FLAG_CAN_USE_6 = 0x00000800,
+ MON_1X_TIME_COPY_TO_DO_FLAG = 0x00001000,
+ MON_FLAG_CAN_USE_7 = 0x00002000,
+ MON_FLAG_CAN_USE_8 = 0x00004000,
+ MON_FLAG_CAN_USE_9 = 0x00008000,
+ MON_FLAG_CAN_USE_10 = 0x00010000,
+ MON_FLAG_CAN_USE_11 = 0x00020000,
+ MON_FLAG_CAN_USE_12 = 0x00040000,
+ MON_FLAG_CAN_USE_13 = 0x00080000,
+ MON_FLAG_CAN_USE_14 = 0x00100000,
+ MON_FLAG_CAN_USE_15 = 0x00200000,
+ MON_FLAG_CAN_USE_16 = 0x00400000,
+ MON_RMC_GM_GAP_FLAG = 0x00800000, /* RMCGM: For Idle/Conn Gap offered */
+ MON_FLAG_CAN_USE_17 = 0x01000000,
+ MON_FLAG_CAN_USE_18 = 0x02000000,
+ MON_FLAG_CAN_USE_19 = 0x04000000,
+ MON_SIB8_TIMING_RECOVER = 0x08000000,
+ MON_LEC_GPS_ACTIVITY_FLAG = 0x10000000, /* LEC: for GPS activity */
+ MON_WAKE_LOCK_TST = 0x20000000,
+ MON_HSC_EVSTANDBY_TIME_COPY = 0x40000000
+ /* don't use > 0x7FFF FFFF */
+} MonDeepSleepVetoT;
+
+typedef enum
+{
+ DEEP_SLEEP_NOT_ENABLE,
+ DEEP_SLEEP_NOT_REQ,
+ DEEP_SLEEP_SUSPENDED,
+ DEEP_SLEEP_DURATION_TOO_SMALL,
+ DEEP_SLEEP_MON_ALLOWED,
+ DEEP_SLEEP_NOT_ALL_QUE_EMPTY,
+ DEEP_SLEEP_NOT_EVT_QUE_EMPTY,
+ DEEP_SLEEP_NOT_MSG_QUE_EMPTY,
+ DEEP_SLEEP_CANCELLING,
+ DEEP_SLEEP_MARGIN_NOT_ENOUGH,
+ DEEP_SLEEP_ALLOWED,
+ DEEP_SLEEP_FH_IS_ONGOING
+}MonDeepSleepStatusT;
+
+extern kal_bool MonDeepSleepIsRequested(SysAirInterfaceT Interface);
+extern kal_bool MonDeepSleepForeverIsRequested(SysAirInterfaceT Interface);
+extern kal_bool MonDeepSleepFlightModeIsRequested(SysAirInterfaceT Interface);
+extern void MonDeepSleepCancel(SysAirInterfaceT Interface, kal_bool WakeCs);
+extern void MonShDeepSleepCancel( SysAirInterfaceT Interface);
+extern void MonDeepSleepRestoreRequest(SysAirInterfaceT Interface);
+extern void MonDeepSleepClearRequest(SysAirInterfaceT Interface);
+extern SysSFrameTimeT* MonDeepSleepGetWakeTime(SysAirInterfaceT Interface);
+extern kal_uint64 MonDeepSleepGetTillWakeTime(SysAirInterfaceT Interface);
+extern kal_bool MonDeepSleepIsPending(SysAirInterfaceT Interface);
+extern kal_uint32 MonDeepSleepGetVetoDeepSleep(SysAirInterfaceT Interface);
+extern void MonDeepSleepRequest(SysAirInterfaceT Interface, SysSFrameTimeT WakeTime);
+extern void MonShDeepSleepRequest(SysAirInterfaceT Interface, SysSFrameTimeT* WakeTime);
+extern void MonDeepSleepSuspend(SysAirInterfaceT Interface, MonDeepSleepVetoT BitMask);
+extern void MonShDeepSleepSuspend(SysAirInterfaceT Interface, MonDeepSleepVetoT BitMask);
+extern void MonDeepSleepResume(SysAirInterfaceT Interface, MonDeepSleepVetoT BitMask);
+extern void MonShDeepSleepResume(SysAirInterfaceT Interface, MonDeepSleepVetoT BitMask);
+extern kal_bool MonDeepSleepIsVetoed(SysAirInterfaceT Interface);
+extern kal_uint32 MonDeepSleepVetoMaskGet(SysAirInterfaceT Interface);
+extern MonDeepSleepStatusT MonDeepSleepEnter(SysAirInterfaceT Interface);
+extern void MonIdleSleepControl(kal_bool DeepEnable);
+extern void MonDeepSleepTakeSlpHandle(SysAirInterfaceT Interface);
+extern void MonDeepSleepGiveSlpHandle(SysAirInterfaceT Interface);
+extern void MonShDeepSleepSetStIntOffset(SysAirInterfaceT Interface);
+extern kal_uint32 MonShDeepSleepGetStIntOffset(SysAirInterfaceT Interface);
+extern kal_bool MonShDeepSleepStIntOffsetExist(SysAirInterfaceT Interface);
+#endif