[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/general/rmmi_struct.h b/mcu/interface/protocol/general/rmmi_struct.h
new file mode 100644
index 0000000..2c96de1
--- /dev/null
+++ b/mcu/interface/protocol/general/rmmi_struct.h
@@ -0,0 +1,402 @@
+/*****************************************************************************
+*  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) 2005
+*
+*  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).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ *  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) 2001
+ *
+ *******************************************************************************/
+
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ *   rmmi_strcut.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef __RMMI_STRUCT_H__
+#define __RMMI_STRUCT_H__
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+//#include "l4c_common_enum.h"
+#include "ps_public_enum.h"
+#include "kal_public_defs.h"
+
+#include "ps_public_struct.h"
+
+#ifndef __MTK_TARGET__
+#include "dcl.h" //for DCL_DEV_T
+#endif
+
+typedef struct{
+	LOCAL_PARA_HDR  
+	kal_uint8 data[256];
+} rmmi_inject_msg_req_struct;
+
+typedef struct{
+	LOCAL_PARA_HDR
+	kal_uint8 data[256];
+} rmmi_inject_msg_cnf_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+} rmmi_atcidt_force_transfer_req_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 port;   
+    kal_bool is_dt; 
+} rmmi_atcidt_force_transfer_cnf_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    rmmi_sim_uart_setting_enum sim_setting;
+} rmmi_master_sim_change_req_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool result;   
+} rmmi_master_sim_change_cnf_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 ch_num;   
+} rmmi_register_channel_req_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool result;
+    kal_uint8 begin_port_id;   
+} rmmi_register_channel_cnf_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 port_id;
+    kal_uint16 length;   
+} rmmi_exe_at_req_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool result;
+    kal_uint8 port_id;
+} rmmi_exe_at_cnf_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 port_id;
+    kal_uint16 length;   
+} rmmi_response_at_ind_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint16 length;   
+} rmmi_urc_at_ind_struct;
+
+typedef struct rmmi_report_mode_struct
+{
+    kal_uint32 einfo;         /* proprietary +ECPI: call progress information */	
+    kal_uint32 ecpi;         /* proprietary +ECPI: call progress information */
+    kal_uint32 eind;         /* proprietary +EIND: general indication */ /* Bit 0(SMS ready), Bit 1(PHB ready), Bit 7(AT ready), others reserved */
+    kal_uint8 ccm;          /* rmmi_report_mode_enum */
+    kal_uint8 acm_warning;  /* rmmi_report_mode_enum */
+    kal_uint8 call_wait;    /* rmmi_report_mode_enum */
+    kal_uint8 cdip;         /* rmmi_report_mode_enum */
+    kal_uint8 clip;         /* rmmi_report_mode_enum */
+    kal_uint8 clir;         /* rmmi_report_mode_enum */
+    kal_uint8 cnap;         /* rmmi_report_mode_enum */
+    kal_uint8 colp;         /* rmmi_report_mode_enum */
+    kal_uint8 ss_mo;        /* rmmi_report_mode_enum */
+    kal_uint8 ss_mt;        /* rmmi_report_mode_enum */
+    kal_uint8 ussd;         /* rmmi_report_mode_enum */
+    kal_uint8 compression;  /* rmmi_report_mode_enum */
+    kal_uint8 ps_reg;       /* rmmi_nw_reg_report_mode_enum */
+    kal_uint8 nr_reg;       /* rmmi_nw_reg_report_mode_enum */
+    kal_uint8 cs_reg;       /* rmmi_nw_reg_report_mode_enum */
+    kal_uint8 timezone;     /* rmmi_time_zone_report_mode_enum */
+    kal_uint8 crc;          /* rmmi_report_mode_enum, for +CRC */
+    kal_uint8 cr;           /* rmmi_report_mode_enum, for +CR */
+    kal_uint8 ecsq;
+    kal_uint8 cen; // +CEN
+    kal_uint8 ecsq_count;
+    kal_uint8 cgerep;
+    kal_uint8 cgerep_bfr;    
+    kal_uint8 cmer_mode;
+    kal_uint8 cmer_keyp;
+    kal_uint8 cmer_ind;
+    kal_uint8 cmer_bfr;
+    kal_uint8 esims;
+    kal_uint8 eusim;
+    kal_uint8 etestsim;
+#if defined(__MOD_TCM__)
+    kal_uint8 psbearer_indicate;  // for +PSBEARER
+#endif
+    kal_uint8 pacsp;
+#ifdef __CSG_SUPPORT__
+    kal_uint8 ecsg;
+#endif
+#ifdef __IMS_SUPPORT__
+    kal_uint8 cireg;
+    kal_uint8 cirep;
+    kal_uint8 cnem;
+#endif
+    kal_uint8 ecell;
+    kal_uint8 armee;
+    kal_uint8 eemcinfo;
+    kal_uint8 essac;
+    kal_uint8 emobd;
+    kal_uint8 cusats;
+    kal_uint8 ecusats;
+
+	kal_uint8 eccause;
+    kal_uint8 ecsra;
+    kal_uint8 evocd;
+    kal_uint8 erlm_mode;
+    kal_uint8 edrb;
+    kal_uint8 ecamp;
+    kal_uint8 eslband;
+    kal_uint8 cscon;
+    kal_uint8 scp_cellinfo;
+    kal_uint8 emodcfg;
+    kal_uint8 elce;
+    kal_uint8 elatency;
+    kal_uint8 ereginfo;    //to enable/disable +EREGINFO URC
+    kal_uint8 eimsps;
+    kal_uint8 eimscons;
+    kal_uint8 ecgreg;
+	kal_uint8 ecereg;
+    kal_uint8 ecmpcid;    //to enable/disable +ECMPCID URC
+	kal_uint8 ecreg;
+    kal_uint8 esimecc;
+    kal_uint8 eltebwinfo;
+    kal_uint8 eacb;
+    kal_uint8 eppi;        //to enable/disable +EPPI URC
+//#ifdef __FAST_ROAMING_SEARCH__
+    kal_uint8 efmcc;
+//#endif
+	kal_uint8 eimsess;    // to enable/disable +EIMSESS URC
+    kal_uint8 ecainfo;    //to enable/disable +ECAINFO URC
+    kal_uint8 eplwth;
+    kal_uint8 ercefc;     // to enable/disable +ERCEFC URC
+    kal_uint8 iccid;      // to enable/disable +ICCID URC
+    kal_uint8 ecbdinfo_mode; // to enable/disable +ECBDINFO
+    kal_uint8 edmfapp;      // to enable/disable +EDMFAPP
+    kal_uint8 eatnusd;    // to enable/disable +EATNUSD URC
+    kal_uint8 edsda;    // to enable/disable +EDSDA URC
+    kal_uint8 eopsu;    // to enable/disable +EOPSU URC
+    kal_uint8 ecampui;    // enable/disable +ECAMPUI URC
+    kal_uint8 epcellinfo;  // to enable/disable +EPCELLINFO URC
+    kal_uint8 egtchs;     /* to enable/disable +EGTCHS URC */
+
+#ifdef 	__EPSFB_SUPPORT__    
+    kal_uint8 cepsfb; // to enable/disable +CEPSFB     
+#endif    
+    kal_uint8 cladn;
+    kal_uint8 erejinfo;     // to enable/disable +EREJINFO URC
+
+#ifdef __SAR_SENSOR_TX_DETECTION_SUPPORT__
+    kal_uint8 etxpwrstus; /* to enable/disable +ETXPWRSTUS URC*/
+#endif
+
+    kal_uint8 euacalv;  // to enable/disable +EUACALV URC
+
+    kal_uint8 enwcfginfo; /* to enable/disable +ENWCFGINFO URC*/
+    kal_uint8 e5guw; /* to enable/disable +E5GUW URC*/
+    kal_uint8 enrcaband; /* to enable/disable +ENRCABAND URC*/
+
+    kal_uint8 epnwcause;
+
+} rmmi_report_mode_struct;
+
+typedef struct rmmi_op01_report_mode_struct
+{
+    kal_uint8 dsci;
+    kal_uint8 rfsw;
+    kal_uint8 cardmode;
+} rmmi_op01_report_mode_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool lock; //KAL_TRUE: lock, KAL_FALSE: unlock
+} rmmi_lock_at_cmd_req_struct;
+
+ typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool result; //KAL_TRUE: success, KAL_FALSE: fail
+} rmmi_lock_at_cmd_cnf_struct;
+
+#ifdef __GAS_SUPPORT__
+ /* Message Structure */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 data[1500];  /* data  */
+    kal_uint16 size;                                        /* size of the input data */
+    kal_uint16 buf_size;                                  /* avariable size of the output buffer */
+} gas_data_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 data[1500];  /* data  */
+    kal_uint16 size;                                        /* size of the input data */
+    kal_uint8 data_type;                                /* gati_output_data_type_enum */
+} gas_data_req_struct;
+
+typedef enum
+{
+    GAS_OUTPUT_NORMAL,     /* The type of output data is normal type which might be partially put to the output buffer of the ATCI */
+    GAS_OUTPUT_URC,            /* The type of output data is a URC. Note that this type of data is an integrity type implicitly. */
+} gas_output_data_type_enum;
+#endif /*__GAS_SUPPORT__*/
+
+/* for thermal_protection */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_int16 value;
+    kal_uint8 type;
+} atci_thermal_event_report_ind_struct;
+
+typedef struct
+{
+    l4c_rac_ecc_number_struct ecc_list[MAX_NW_ECC_NUM]; /* ecc number list*/
+    kal_uint8 no_ecc;                                   /* number of ecc number*/
+} rmmi_ecc_number_list_struct;
+
+#ifndef __MTK_TARGET__
+#define MAX_UT_UART_LENGTH 2048
+
+typedef enum
+{
+    ATCI_UT_UART_PORT1 = uart_port1,
+    ATCI_UT_UART_PORT2 = uart_port2,
+    ATCI_UT_UART_PORT_USB = uart_port_usb,
+    ATCI_UT_UART_PORT_USB2 = uart_port_usb2,
+    ATCI_UT_UART_PORT_CCCI = uart_port_at_ccci,
+    ATCI_UT_UART_PORT_GPS = uart_port_gps_ccci,
+#ifdef __HIF_CCISM_SCP_SUPPORT__
+    ATCI_UT_UART_CELLINFO_CCCI = uart_port_cellinfo_ccci,
+#endif
+
+    /* CMUX virtual port for SIM1 */
+    ATCI_UT_UART_VIRTUAL_PORT_START = start_of_virtual_port,
+    ATCI_UT_UART_VIRTUAL_PORT2,
+    ATCI_UT_UART_VIRTUAL_PORT3,
+    ATCI_UT_UART_VIRTUAL_PORT4,
+    ATCI_UT_UART_VIRTUAL_PORT5,
+    ATCI_UT_UART_VIRTUAL_PORT6, //CMUX extention port for TTL
+
+    /* CMUX virtual port for SIM2 */
+    ATCI_UT_UART_VIRTUAL_PORT7,
+    ATCI_UT_UART_VIRTUAL_PORT8,
+    ATCI_UT_UART_VIRTUAL_PORT9,
+    ATCI_UT_UART_VIRTUAL_PORT10,
+    ATCI_UT_UART_VIRTUAL_PORT11,
+    ATCI_UT_UART_VIRTUAL_PORT12,
+
+    /* no list all of CMUX_VP_NUM virtual ports */
+    
+    ATCI_UT_UART_VIRTUAL_PORT_END = end_of_virtual_port,
+} atci_ut_uart_port_enum;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    atci_ut_uart_port_enum port;
+    kal_uint8 string[MAX_UT_UART_LENGTH];
+    kal_uint16 str_len;
+} atci_ut_uart_input_ind_struct; // MSG_ID_ATCI_UT_UART_INPUT_IND
+#endif
+
+typedef enum{
+    RMMI_SCP_CMD_DISABLE = 0,
+    RMMI_SCP_CMD_ENABLE_CHANGE_OF_CELL_ID,      //Phase 1: enable but report only when camping cell id has changed
+    RMMI_SCP_CMD_ENABLE_CHANGE_OF_CELL_RSSI,    //Phase 2: enable but report only when camping cell's RSSI has changed
+    RMMI_SCP_CMD_END
+}rmmi_scp_cmd_enum;
+
+typedef enum{
+    RMMI_SCP_CELLINFO_GSM = 0,
+    RMMI_SCP_CELLINFO_CDMA,
+    RMMI_SCP_CELLINFO_UMTS,
+    RMMI_SCP_CELLINFO_LTE,
+    RMMI_SCP_CELLINFO_TYPE_END
+}rmmi_scp_cellinfo_type_enum;
+
+typedef struct{
+    kal_uint16  mdm_type;
+    kal_uint16  mcc;
+    kal_uint16  mnc;
+    kal_uint16  area; /* lac or tac */
+    kal_uint16  pci;
+    kal_uint16  strength; /* RSSI or RSCP or RSRP */
+    kal_uint32  cell;   /* cid or uc or ci */
+    kal_uint32  isCamping; /* 0: neighbor cell; 1: camping cell */
+}rmmi_scp_cellinfo_struct;
+
+#define SCP_NBR_CELLINFO_MAX  9
+#define SCP_CELLINFO_MAX (SCP_NBR_CELLINFO_MAX+1)
+
+typedef struct{
+    kal_uint32 length;
+    rmmi_scp_cellinfo_struct info[SCP_CELLINFO_MAX];
+}rmmi_scp_cellinfo_data_struct;
+
+
+typedef struct {
+    kal_uint8 date_string[20];
+    kal_uint8 tz[4];
+    kal_uint8 dst;
+} rmmi_nitz_time_struct;  // CCLK
+
+#endif