[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/iopapi.h b/mcu/interface/protocol/l4_c2k/iopapi.h
new file mode 100644
index 0000000..7be725b
--- /dev/null
+++ b/mcu/interface/protocol/l4_c2k/iopapi.h
@@ -0,0 +1,631 @@
+/*****************************************************************************
+*  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) 1998-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*****************************************************************************
+
+  FILE NAME:  iopapi.h
+
+  DESCRIPTION:
+
+    This file contains all the constants, mail message definition and
+    function prototypes exported by the IOP unit.
+
+*****************************************************************************/
+
+#ifndef IOPAPI_H
+#define IOPAPI_H
+
+#include "cpbuf.h"
+
+
+/*------------------------------------------------------------------------
+ *	Message IDs for _CMD mailbox
+ *-----------------------------------------------------------------------*/
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#ifdef SYS_OPTION_LTEDO_UART
+/* under construction !*/
+#endif
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum
+{
+   IOP_ACK      = 0,
+   IOP_SET_BAUD
+} IopBaudCmdT;
+
+typedef PACKED_PREFIX struct
+{
+   ExeRspMsgT   RspInfo;
+   IopBaudCmdT  Cmd;
+   kal_uint8        Delay;
+} PACKED_POSTFIX  IopSetBaudMsgT;
+
+
+	/* IOP_SETBAUD_DATA_MSG */
+typedef PACKED_PREFIX struct
+{
+   ExeRspMsgT   RspInfo;
+   kal_uint8        UartNum;
+} PACKED_POSTFIX  IopSetDataBaudMsgT;
+
+	/* IOP_USB_ETS_CTRL_MSG */
+typedef PACKED_PREFIX struct
+{
+   kal_bool Open;
+} PACKED_POSTFIX  IopUsbEtsCtrlMsgT;
+
+	/* IOP_CNG_UART_MSG */
+typedef enum {
+	NO_UART,
+	ETS_UART,
+	GPS_UART,
+	GPS_UART_VASCO
+#if ((defined BLUETOOTH_CSR) || (defined BLUETOOTH_BCM2046))
+    ,
+    BT_UART
+#endif
+
+#ifdef SYS_OPTION_IOPHAL_UART
+    ,
+    AT_UART,
+    DATA_UART,
+    IOPHAL_UART
+#endif
+#ifdef SYS_OPTION_LTEDO_UART
+  ,
+  LTEDO_UART
+#endif
+}UartTypeT;
+
+
+
+typedef enum
+{
+    IOP_HAL_SER_DEV,
+    IOP_HAL_USB_DEV,
+    IOP_HAL_DPRAM_DEV,
+    IOP_HAL_SDIO_SLAVE_DEV,
+    IOP_HAL_SDIO_MASTER_DEV,
+    IOP_HAL_ESPI_DEV,
+	IOP_HAL_MUX_DEV,
+    IOP_HAL_CCIF_DEV,
+    IOP_HAL_DEV_NUM,        /* Always last in this list */
+    IOP_HAL_INVALID_DEV=0xff
+}IOP_HAL_DEVICE;
+
+typedef IOP_HAL_DEVICE IopDeviceHalT;
+typedef	IOP_HAL_DEVICE IopDeviceInfoT;
+typedef	IOP_HAL_DEVICE IopDeviceDataT;
+
+typedef IOP_HAL_DEVICE CPTranDevT;
+
+typedef PACKED_PREFIX struct {
+	CPTranDevT	InfoDev;
+} PACKED_POSTFIX  IopCpTxDevMsgT;
+
+typedef PACKED_PREFIX struct {
+	IopDeviceInfoT	InfoDev;
+	IopDeviceDataT	DataDev;
+} PACKED_POSTFIX  IopSetDevMsgT;
+
+typedef PACKED_PREFIX struct {
+    ExeRspMsgT   RspInfo;
+	kal_uint8  Channel;
+	kal_uint8  Device;
+} PACKED_POSTFIX  IopChanSwitchMsgT;
+#define SIZEOF_CH_SWITCH_RSP_MSG 2
+
+typedef PACKED_PREFIX struct {
+    ExeRspMsgT   RspInfo;
+	kal_uint8  Channel;
+} PACKED_POSTFIX  IopChanQueryMsgT;
+#define SIZEOF_CH_QUERY_RSP_MSG 3
+
+typedef PACKED_PREFIX struct {
+    ExeRspMsgT   RspInfo;
+	kal_uint8  Channel;
+	kal_bool   state;
+} PACKED_POSTFIX  IopChanOnOffMsgT;
+#define SIZEOF_CH_ONOFF_RSP_MSG 2
+
+	/* IOP_AIW_C109_IND_MSG */
+typedef PACKED_PREFIX struct {
+	kal_bool	C109On;	/* status of C109, active high */
+	kal_uint8 chan;
+} PACKED_POSTFIX  IopValC109IndMsgT;
+
+   /* IOP_USB_C108_IND_MSG */
+typedef PACKED_PREFIX struct {
+	kal_bool	C108On;	/* status of C108 as reported by USB windriver, active high */
+    kal_bool    CableUnplugged;    /* KAL_TRUE if this IND sent because cable unplugged */
+} PACKED_POSTFIX  IopUsbC108IndMsgT;
+
+	/* IOP_AIW_MODEM_ALIVE_MSG */
+typedef PACKED_PREFIX struct {
+	kal_bool	IsAlive;	/* KAL_TRUE == modem task is ready to accept AT cmds */
+} PACKED_POSTFIX  IopValModemAliveMsgT;
+
+	/* IOP_SET_DATA_THR */
+typedef PACKED_PREFIX struct {
+	kal_uint16	HighThr;	/* high threshold for data cache */
+} PACKED_POSTFIX  IopSetDataThrMsgT;
+
+#ifdef MTK_DEV_LOG_FILTER_NVRAM
+typedef PACKED_PREFIX struct {
+	kal_bool  NvramStartupLogFlag;
+	kal_bool  NvramFilterUpdateFlag;
+} PACKED_POSTFIX  IopNvramCtlMsgT;
+#endif
+
+typedef struct
+{
+    kal_uint8   mode;
+    kal_uint8   frameType;
+    kal_uint8   portSpeed;
+    kal_uint16  N1;
+    kal_uint8   T1;
+    kal_uint8   N2;
+    kal_uint8   T2;
+    kal_uint8   T3;
+    kal_uint8   K;
+}IopMuxSysParaT;
+
+/*------------------------------------------------------------------------
+ *	Message IDs for _DATA mailbox
+ *-----------------------------------------------------------------------*/
+
+/*#ifdef BLUETOOTH_BC4*/
+typedef struct
+{
+   kal_uint8       *Data;
+   kal_uint16       DataLen;
+}IopBTRxMsgT;
+
+/*#endif*/
+
+//don't modify following Enum, brew has referred to it
+typedef enum {
+  IOP_FWD_TX_REQ_MSG,        /* This command is used to send data to IOP */
+  IOP_DATA_TX_ACK_MSG,       /* This command is used to acknowledge the receipt of data from IOP */
+   IOP_BT_RX_REQ_MSG, /*BT Protocol stack send data to BC4*/
+   IOP_BT_TX_ACK_MSG  /*BT Protocol stack  send ACK to CBP when it receive data*/
+} IopDataMsgIdT;
+
+
+/* Iop channels are now fixed regardless of build options for better maintainance.
+   0-15 is reserved for CBP7 internal usage only and should not be used by third party */
+typedef enum {
+    IopControlChannel      = 0,
+    IopEtsChannel          = 1,
+    IopDataChannelPPP      = 2,
+    IopDataChannelLBS      = 3,
+    IopDataChannelVoice    = 4,
+    IopDataChannelATCmds_1 = 5,
+    IopDataChannelATCmds_2 = 6,
+    IopEtsChannel_1        = 7,
+#ifdef SYS_OPTION_ATCMD_CH_3
+    IopDataChannelATCmds_3 = 8,
+#ifdef SYS_OPTION_ATCMD_CH_4
+    IopDataChannelATCmds_4 = 11,
+#ifdef SYS_OPTION_MORE_AT_CHANNEL
+    IopDataChannelATCmds_5 = 12,
+    IopDataChannelATCmds_6 = 13,
+    IopDataChannelATCmds_7 = 14,
+    IopDataChannelATCmds_8 = 15,    
+#endif /* SYS_OPTION_MORE_AT_CHANNEL */
+#endif /* SYS_OPTION_ATCMD_CH_4 */
+#endif /* SYS_OPTION_ATCMD_CH_3 */
+#ifdef IOP_DEBUG_OPTION_DATA_LOOPBACK
+    IopDataChannelLoopBack = 15,
+#endif
+
+    /* user extended channel should start from 16 */
+    IopUserExtChannel      = 16,
+#ifdef SYS_FLASH_LESS_SUPPORT
+    IopDataChannelRfs      = 17,
+#endif
+    
+    IopSysChannelNum,
+    IopAllChanNum=IopSysChannelNum
+} IopDataChannel;
+
+//don't modify following Struct, brew has referred to it
+typedef PACKED_PREFIX struct {
+   ExeRspMsgT   RspInfo;
+   kal_uint8       *Data;
+   kal_uint16       DataLen;
+   kal_uint8        chan;
+} PACKED_POSTFIX  IopValFwdTxMsgT;
+
+typedef PACKED_PREFIX struct {
+   ExeRspMsgT  RevDestInfo;
+   IopDataChannel Channel;
+} PACKED_POSTFIX  IopSetRevDataPathMsgT;
+
+/*------------------------------------------------------------------------
+ *	Message IDs for _GPS mailbox
+ *-----------------------------------------------------------------------*/
+typedef enum {
+  IOP_GPS7560_TX_DATA_MSG       /* Data from external GPS */
+} IopGpsMsgIdT;
+
+typedef struct
+{
+	kal_uint16  DataLen;
+	kal_uint8   Data[2];  /* This is just place holder.  We make it 2 bytes for alignment */
+} IopGps7560TxDataMsgT;
+
+/*------------------------------------------------------------------------
+ *	Definitions and exported functions for handling data with CpBuffers
+ *-----------------------------------------------------------------------*/
+#define PPP_CHANNEL_FWD_QDEPTH   450
+#define PPP_CHANNEL_REV_QDEPTH   300
+
+typedef enum {
+    IopDataChRetOK,
+    IopDataChRetNA,    /*Channel not available */
+    IopDataChRetFull,    /* Buffer Q full */
+    IopDataChRetOK_Empty,    /* Buffer Q empty after read successfully */
+    IopDataChRetErr    /* Error occurred. */
+} IopDataChRetStatus;
+
+typedef  struct {
+   CpBufferT   *bufPtr;
+   kal_uint16      offset;
+   kal_uint16      dataLen;
+   kal_uint8       nRLPFlow;
+   kal_uint8       streamType;
+
+   kal_uint16 tcpTag;
+   kal_uint32 tcpPort;
+   kal_uint32 srcIpAddr;
+   kal_uint32 dstIpAddr;
+
+#ifdef CBP7_EHRPD
+   kal_uint16 FrameType;   /* distinguish Ipv4/Ipv6 and PDN-ID */
+#endif
+
+   kal_uint8  BearerId;
+} IopDataCpBuffDescT;
+
+#define IOP_DEBUG_RX_INFO_IDX     (30)
+#define IOP_DEBUG_TX_INFO_IDX     (60)
+
+/* store the 4-line information */
+typedef struct
+{
+    kal_uint32 header;
+
+	/*Rx device type and the Rxstatus of this device*/
+	kal_uint8 RxDevStatus;
+	kal_uint8 RxLastDevStatus;
+
+	/*Tx device type and the Txstatus of this device*/
+	kal_uint8 TxDevStatus;
+	kal_uint8 TxLastDevStatus;
+
+	/* the GPIO value for 4-line */
+	kal_uint8  CpWkApGpio;
+	kal_uint8  CpRdyGpio;
+	kal_uint8  ApWkCpGpio;
+	kal_uint8  ApRdyGpio;
+
+    /* store the log information */
+    kal_uint16              TxLogBuffIdx;
+	kal_uint16              RxLogBuffIdx;
+	kal_uint16              TxLogBuff[IOP_DEBUG_TX_INFO_IDX];
+	kal_uint16              RxLogBuff[IOP_DEBUG_RX_INFO_IDX];
+
+	kal_uint32 footer;
+}IopStatusInfoT;
+
+
+/* Frame type in IopDataCpBuffDescT structure, the lower 8 bit is PDN-ID */
+#define IOP_DATA_EIPV4_TYPE	0xA000  /* EHRPD IPv4 with PDN-ID (0xA0xx) */
+#define IOP_DATA_EIPV6_TYPE	0xA100  /* EHRPD IPv6 with PDN-ID (0xA1xx) */
+#define IOP_DATA_IPV4_TYPE	IOP_DATA_EIPV4_TYPE  /* IPv4 for 1x/DO is fixed to 0xA000 */
+#define IOP_DATA_IPV6_TYPE	IOP_DATA_EIPV6_TYPE  /* IPv6 for 1x/DO is fixed to 0xA100 */
+#define IOP_DATA_NULL_TYPE  0       /* No info in IPC Data frame */
+#ifdef  SYS_OPTION_IOP_CCIF
+#define IOP_DATA_PDNID_MASK 0x007F  /* mask for PDN ID */
+#define CCMNI_CHANNEL_HEADER_FALG    (1U << 7)
+#define CCMNI_CHANNEL_NUM            8
+#else
+#define IOP_DATA_PDNID_MASK 0x00FF  /* mask for PDN ID */
+#endif
+/*  Flags for IopWrite/IopRead functions
+  */
+#define IOP_WRITE_FLAG_SND_ACK  (1<<0)
+#ifdef IOP_DEV_CH_LOOP_TEST
+typedef enum {
+    OPT_LOOPBACK_NON   = 0,
+	OPT_LOOPBACK_OPEN  = 1,
+	OPT_LOOPBACK_CLOSE = 2,
+	OPT_LOOPBACK_QUERY = 3,
+	OPT_LOOPBACK_NUM
+}IOP_OPT_LOOPBACK;
+
+typedef enum {
+	RSLT_LOOPBACK_SUCCESS  = 0,
+	RSLT_LOOPBACK_WORK = 1,
+	RSLT_LOOPBACK_CLOSED = 2,
+	RSLT_LOOPBACK_INVALID = 3,
+	RSLT_LOOPBACK_FAIL = 4,
+	RSLT_LOOPBACK_NUM
+}IOP_RSLT_LOOPBACK;
+
+typedef struct {
+	IopDeviceInfoT Dev;
+	IOP_OPT_LOOPBACK  Operation;
+	kal_uint8         Lchan;
+	kal_uint8         Reserv;
+}IopCtrlLoopbackMsg;
+
+typedef struct {
+	IopDeviceInfoT Dev;
+	IOP_OPT_LOOPBACK  Operation;
+	kal_uint8         Lchan;
+	IOP_RSLT_LOOPBACK Result;
+}IopAckLoopbackMsg;
+#endif
+
+/* CCIF dev  */
+#ifdef SYS_OPTION_IOP_CCIF
+/* IOP channel */
+typedef enum
+{
+#ifndef SYS_OPTION_CCIF_LOOPTEST
+    IOP_CCIF_CTRL_CHANNEL,
+    IOP_CCIF_VOICE_CHANNEL,  /* voice with high priority */
+    IOP_CCIF_PPP_CHANNEL,
+    IOP_CCIF_ETS_CTRL_CHANNEL,
+#if (SYS_OPTION_IPC_DEV == SYS_IPC_DEV_CCIF)
+    IOP_CCIF_RFS_CHANNEL,
+#endif
+    IOP_CCIF_AT_1_CHANNEL,
+    IOP_CCIF_LBS_CHANNEL,
+#ifdef SYS_OPTION_ATCMD_CH_2
+    IOP_CCIF_AT_2_CHANNEL,
+#endif
+#ifdef SYS_OPTION_ATCMD_CH_3
+    IOP_CCIF_AT_3_CHANNEL,
+#endif
+    IOP_CCIF_ETS_CHANNEL,
+#ifdef SYS_OPTION_ATCMD_CH_4
+    IOP_CCIF_AT_4_CHANNEL,
+#endif
+    IOP_CCIF_CCMNI_0_CHANNEL = 12,
+    IOP_CCIF_CCMNI_1_CHANNEL = 13,
+    IOP_CCIF_CCMNI_2_CHANNEL = 14,
+    IOP_CCIF_CCMNI_3_CHANNEL = 15,
+    IOP_CCIF_CCMNI_4_CHANNEL = 16,
+    IOP_CCIF_CCMNI_5_CHANNEL = 17,
+    IOP_CCIF_CCMNI_6_CHANNEL = 18,
+    IOP_CCIF_CCMNI_7_CHANNEL = 19,
+#ifdef SYS_OPTION_MORE_AT_CHANNEL
+    IOP_CCIF_AT_5_CHANNEL    = 20,
+    IOP_CCIF_AT_6_CHANNEL    = 21,
+    IOP_CCIF_AT_7_CHANNEL    = 22,
+    IOP_CCIF_AT_8_CHANNEL    = 23,
+#endif /* SYS_OPTION_NEW_ADD_AT_CHANNEL */
+
+
+#else
+    IOP_CCIF_TEST0_CHANNEL,
+    IOP_CCIF_TEST1_CHANNEL,
+    IOP_CCIF_TEST2_CHANNEL,
+#endif
+    IOP_CCIF_NUM_CHANNELS
+
+}IopCcifChannelT;
+
+
+/* CCIF ringbuffer software header */
+typedef struct
+{
+    kal_uint32           Data[2];
+    kal_uint32           Channel;
+    kal_uint32           Reserved;
+} IopBuffT;
+
+
+typedef enum
+{
+    IOP_CCIF_PQ_0,   /* priority queue 0 , the most high  priority */
+    IOP_CCIF_PQ_1,
+    IOP_CCIF_PQ_2,
+    IOP_CCIF_PQ_3,
+    IOP_CCIF_PQ_4,
+    IOP_CCIF_PQ_5,
+    IOP_CCIF_PQ_6,
+    IOP_CCIF_PQ_7,
+    IOP_CCIF_PQ_MAX
+}IopCcifPriQueT;
+
+/*!
+ *  @brief  CONTROL_CHANNEL_MSG
+ *             CCCI Message ID Passing Through CONTROL_CHANNEL and SYSTEM_CHANNEL
+ *             NOTICE: Negotiations With AP Owner Before Modification
+ */
+typedef enum
+{
+    CCMSG_ID_START_BOOT        = 0x00000000,
+    CCMSG_ID_NORMAL_BOOT_READY = 0x00000001,
+    CCMSG_ID_META_BOOT_READY   = 0x00000002,
+    CCMSG_ID_RESET             = 0x00000003,
+    CCMSG_ID_EXCEPTION_CHECK   = 0x00000004,
+    CCMSG_ID_DRV_VERSION_ERR   = 0x00000005,
+    CCMSG_ID_EXCEPTION_REC_OK  = 0x00000006,
+    CCMSG_ID_EXCEPTION_PASS    = 0x00000008,
+    /* System Channel */
+    CCMSG_ID_MD_L4_MOD         = 0x0000000E,//add for RIL (AP task) and L4C (MD task) communication message
+    CCMSG_ID_MD_L4_MAX_TX_PWR_RED_REQ = 0x0000000F,
+
+    CCMSG_ID_MD_LEGACY_END     = 0x000000FF,
+    CCMSG_ID_SYSMSGSVC_MASK    = 0x00000100,
+    CCMSG_ID_SYSMSGSVC_START   = 0x00000100,
+    CCMSG_ID_SYSMSGSVC_DUMMY   = 0x000000FF,
+    //- section 0x100 ~ 0x1FF : reserved for system message service used
+
+    CCMSG_ID_SYSMSGSVC_END,
+
+    CCMSG_ID_MD_WDT_FLAG       = 0x00001000, //- for MT6577/MT6589, AP cannot receive MD WDT interrupt issue. k2 md2 6589, for resolving wdt build error
+
+}CONTROL_CHANNEL_MSG;
+#endif
+
+#ifdef SYS_OPTION_CCISM_2SCP
+
+typedef struct
+{
+    kal_uint8*  Buffp;
+    kal_uint32  Len;
+}IopCcismBufDescT;
+
+typedef enum
+{
+    IOP_CCISM_AUDIO_CHANNEL,
+    IOP_CCISM_GEOFENCE_CHANNEL,
+    IOP_CCISM_MAX_CHANNEL
+}IopCcismChT;
+
+typedef enum
+{
+    IOP_CCISM_PQ_0,   /* priority queue 0 , the most high  priority */
+    IOP_CCISM_PQ_1,
+    IOP_CCISM_PQ_MAX
+}IopCcismPriQueT;
+
+#endif
+/*------------------------------------------------------------------------
+ *	The following IOP functions shared by USB, DPRAM. SDIO etc.
+ *-----------------------------------------------------------------------*/
+extern IopDataChRetStatus IopWrite(IopDataCpBuffDescT * Buff, IopDataChannel channel, kal_uint32 flags);
+extern IopDataChRetStatus IopRead(IopDataCpBuffDescT* Buff, IopDataChannel channel, kal_uint32 flags);
+extern kal_uint16 IopCheckRxReadyStatus(IopDataChannel channel);
+extern kal_uint16 IopCheckTxReadyStatus(IopDataChannel channel);
+extern void IopCleanUpRevQue (void);
+extern void IopDisableRevFlowCtl(void);
+extern void IopSetRevPathAtPPPChannel(IopSetRevDataPathMsgT*);
+extern void IopGetRevPathAtPPPChannel(IopSetRevDataPathMsgT*);
+extern kal_uint8 IopGetC108Status(void);
+
+/*------------------------------------------------------------------------
+ *	Exported IOP functions
+ *-----------------------------------------------------------------------*/
+
+//extern void IopSetBaudRate(IopBaudT BaudRate, kal_uint8 UartNum);
+extern void IopUpdateDataUartSettings(void);
+extern kal_uint8 IopUartNumGet(UartTypeT UartType);
+#if (SYS_OPTION_USB != SYS_USB_NONE)
+extern void IopUsbSetDevice(void);
+#endif
+extern void IopSerSetDevice(void);
+#ifdef IOP_DEV_CH_LOOP_TEST
+extern IOP_RSLT_LOOPBACK RfsLoopTstCmdHandler(IopDeviceInfoT Dev, IOP_OPT_LOOPBACK Operation);
+extern IOP_RSLT_LOOPBACK IopEtsLoopTstCmdHandler(IopDeviceInfoT Dev, IOP_OPT_LOOPBACK Operation);
+#endif
+#endif	/* IOPAPI_H */
+
+/*****************************************************************************
+  End of File
+******************************************************************************/
+
+/**Log information: \main\Trophy_0.3.X\1 2013-03-29 09:00:13 GMT fwu
+** HREF#008278, Support uart to be the AT communication channel between AP and CP.**/
+/**Log information: \main\Trophy\Trophy_fwu_href22082\1 2013-04-03 02:26:29 GMT fwu
+** HREF#22082, Modified to support UART1 to be the AT channel between AP and CP.**/
+/**Log information: \main\Trophy\1 2013-04-03 02:57:01 GMT hzhang
+** HREF#22082 to merge code.**/
+/**Log information: \main\Trophy\Trophy_xding_href22331\1 2013-12-10 07:17:49 GMT xding
+** HREF#22331, ºÏ²¢MMCÏà¹Ø¹¦Äܵ½Trophy baselineÉÏ**/
+/**Log information: \main\Trophy\2 2013-12-10 08:33:18 GMT jzwang
+** href#22331:Merge MMC latest implementation from Qilian branch.**/
+/**Log information: \main\Trophy\Trophy_fwu_href22333\1 2013-12-17 04:59:22 GMT fwu
+** HREF#22333. Trophy cbp82c_flashless_sdio_mmc version will crash when LTEDO_UART is enabled.**/
+/**Log information: \main\Trophy\3 2013-12-17 05:29:19 GMT hzhang
+** HREF#22333 to modify IOP_LTEDOUART_RX_SIGNAL definition **/
+/**Log information: \main\Trophy\Trophy_fwu_href22348\1 2014-01-08 06:17:22 GMT fwu
+** HREF#22348. Merge ESPI related source code.**/
+/**Log information: \main\Trophy\4 2014-01-09 06:34:40 GMT zlin
+** HREF#22348, merge code.**/
+