[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/cl1fr.h b/mcu/interface/l1/cl1/common/cl1fr.h
new file mode 100644
index 0000000..d36c278
--- /dev/null
+++ b/mcu/interface/l1/cl1/common/cl1fr.h
@@ -0,0 +1,152 @@
+/*****************************************************************************
+* 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).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+*
+* FILE NAME : cl1fr.h
+*
+* DESCRIPTION :
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+
+#ifndef _CL1FR_H_
+#define _CL1FR_H_
+
+#include "cl1frevtid.h"
+#include "kal_public_api.h"
+#include "kal_hrt_api.h"
+#include "intrCtrl.h"
+#include "c2k_defs.h"
+#ifndef MTK_PLT_ON_PC
+#ifdef __MD93__
+#define IRQ_C2K_FR_FH_SWI_CODE IRQ_SW_LISR15_CODE
+#elif defined (__MD95__)
+#define IRQ_C2K_FR_FH_SWI_CODE IRQ_SW_LISR8_CODE
+#else
+#define IRQ_C2K_FR_FH_SWI_CODE IRQ_SW_LISR8_CODE
+#endif
+
+#endif
+
+/* Frame tick related */
+typedef enum
+{
+ NORMAL_DOMAIN,
+ FRAMETICK_REGULAR,
+ FRAMETICK_HSC = FRAMETICK_REGULAR,
+ FRAMETICK_L1D,
+ FRAMETICK_RMC,
+ FRAMEHANDLER_IN_SWI,
+ FRAMEHANDLER_IN_PCGSLOT,
+ PCG_IRQ,
+ SLOT_IRQ,
+ RCPRI_IRQ,
+ OTHER_IRQ,
+
+ FR_MOD_MAX_NUM
+} FrModuleT;
+
+#if (CUR_GEN>=MD_GEN95)
+/*Running IRQ LISR location*/
+typedef enum
+{
+ LOC_HWD_WAKE_DO_LISR,
+ LOC_SYS_DO_SLOT_LISR,
+ LOC_SYS_DO_HALF_SLOT_LISR,
+ LOC_SYS_DO_HALF_SLOT_LISR_2,
+ LOC_FRAME_HANDLER_SWI_LISR,
+ LOC_SYS_FTIMER_DO_LISR,
+ LOC_LISR_RUN_MAX_NUM
+} IrqLisrRunT;
+#endif
+
+
+typedef struct
+{
+ kal_bool UseDm;
+ kal_bool Processed;
+ kal_uint16 EvtId;
+ kal_uint16 EvtLength; /* In byte */
+ kal_uint32 TimeStamp; /* In FRC */
+ kal_uint8* DataPtr;
+} EvtDataT;
+
+#define M_Fr2ByteAlign(x) ((((x) + 1) >> 1) << 1)
+#define M_Fr4ByteAlign(x) ((((x) + 3) >> 2) << 2)
+
+
+#define M_SetShOngoingFlag(Interface) {gShOngoing[Interface] = KAL_TRUE;}
+#define M_ClrShOngoingFlag(Interface) {gShOngoing[Interface] = KAL_FALSE;}
+#define M_IsShOngoing(Interface) (gShOngoing[Interface] == KAL_TRUE)
+
+
+extern kal_uint32 gSwiBitmap;
+extern kal_bool gShOngoing[SYS_MODE_MAX];
+extern kal_uint32 gFhSwiOwnerBitmap;
+
+extern void FrSendEvent(FrModuleT Src, FrModuleT Dest, FrEvtIdT EvtId, kal_bool UseDm, kal_uint8* DataPtr, kal_uint16 Length);
+extern void __FrIrqSendMsg(FrModuleT Src, module_type DestMod, msg_type MsgId, kal_bool UseDm, kal_uint8* DataPtr, kal_uint16 Length);
+extern void FrEventExecutor(FrModuleT Execution);
+extern void FrFhSwiEventExecutor(void);
+extern void FrFhSwiTrigger(SysAirInterfaceT Mode);
+extern void FrSwiTriggerHisr(void);
+extern void FrFhMsgDeliverHisr(void);
+extern void FrShMsgDeliverHisr(void);
+extern void FrRrMsgDeliverHisr(void);
+extern kal_bool FrEvtQueueEmpty(FrModuleT Module);
+extern kal_bool FrMsgQueueEmpty(FrModuleT Module);
+extern kal_bool FrAllQueueEmpty(void);
+
+#if (CUR_GEN>=MD_GEN95)
+extern void FrSamePrioIRQProcess(kal_bool mask,IrqLisrRunT IrqLisrRunLoc);
+#endif
+
+/* 2Bytes alignment is to make sure sizeof(XXX_msg_struct)=sizeof(LOCAL_PARA_HDR)+sizeof(msg),
+ because LOCAL_PARA_HDR has a uint16 item, sizeof(XXX_msg_struct) must be even number.
+ if the sizeof(msg) is odd, the equation is not fullfilled.
+*/
+#define FrIrqSendMsg(Src, DestMod, MsgId, UseDm, DataPtr, Length) \
+ __FrIrqSendMsg(Src, DestMod, MsgId, UseDm, DataPtr, M_Fr2ByteAlign(Length))
+
+#endif
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+