[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/l1/interface/mml1/ul1d_mmrf_interface.h b/mcu/l1/interface/mml1/ul1d_mmrf_interface.h
new file mode 100644
index 0000000..242fabd
--- /dev/null
+++ b/mcu/l1/interface/mml1/ul1d_mmrf_interface.h
@@ -0,0 +1,1519 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   ul1d_mmrf_interface.h
+ *
+ * Project:
+ * --------
+ *   TK6291
+ *
+ * Description:
+ * ------------
+ *   UL1D interface to Multi-Mode Multi-RAT RF Central Control
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *----------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *----------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef  _UL1D_MMRF_INTERFACE_H_
+#define  _UL1D_MMRF_INTERFACE_H_
+
+/*===============================================================================*/
+
+#include "kal_general_types.h"
+#include "mml1_rf_cal_def.h"
+#include "ul1d_rf_public.h"
+#include "mml1_rf_cal_interface.h"
+#include "mml1_rf_interface.h"
+#include "mml1_rf_calpocif.h"
+#if IS_3G_UTAS_SUPPORT
+#include "mml1_rf_ant_interface.h"
+#endif
+#if IS_3G_GEN97_RXDFE_RFC_API_SUPPORT
+#include "mml1_rxdfe_api.h"
+#endif
+//#include "ul1d_rf_internal.h"
+//#include "el1d_mmrf_interface.h"
+
+/**********************************************************************************
+* define
+**********************************************************************************/
+/* TX MIPI PA */
+#define UMTS_MAX_MIPI_PAON_CW_NUMBER_PER_BAND (48) //amount of 14 is used for ASM(2)/TPC(4+1) as default
+#define UMTS_MAX_MIPI_PAOFF_CW_NUMBER_PER_BAND (20) // amount of 8 is used for TPC(4) as default
+
+/* RXPOC */
+#define UL1D_RX_IRR_DC_ROUTE_NUM_MAX      4
+#define UL1D_RX_IIP2_ROUTE_NUM_MAX        (UL1D_RF_RX_IIP2_COMP_ROUTE_MAX)
+
+#if 1/*POC Re-Org Phase 1*/
+/** TXDFE filter coefficient and compensation data dimension*/
+#define UL1D_TX_DC_COMP_FC_MODE_NUM            2
+#define UL1D_TX_DC_COMP_PGA_SLICE_SET_NUM      8
+
+#define UL1D_TX_IQ_COMP_FC_MODE_NUM            2
+#define UL1D_TX_IQ_COMP_PGA_SLICE_SET_NUM      8
+
+#define UL1D_FREQ_DEP_COMP_FC_MODE_NUM         2
+#define UL1D_FREQ_DEP_COMP_PGA_SLICE_SET_NUM   8
+#define UL1D_FREQ_DEP_COMP_COEFF_NUM           MMRFC_FILT_TAPS_NUM
+
+#define UL1D_ASYMM_COMP_FC_MODE_NUM            4
+#define UL1D_ASYMM_COMP_PGA_SLICE_SET_NUM      3
+#define UL1D_ASYMM_COMP_COEFF_NUM              7
+#endif
+
+#if UMTS_POC_RECAL_ENABLE
+#define UMTS_RECAL_ITER           (2)
+#else
+#define UMTS_RECAL_ITER           (1)
+#endif
+
+#define UL1D_POC_RX_DCOC_RECAL_ENABLE (0)
+
+#if UL1D_POC_RX_DCOC_RECAL_ENABLE
+#define UMTS_RX_DCOC_RECAL_ITER   (2)
+#else
+#define UMTS_RX_DCOC_RECAL_ITER   (1)
+#endif
+
+
+/************************************************************************************
+* enum
+************************************************************************************/
+
+typedef enum
+{
+   BB_NO_ADJ,
+   BB_NEG_3,
+   BB_ADJ_VALUE,
+}  TX_BB_GAIN_ADJ_TYPE_T;
+
+typedef enum
+{
+   FREQ_DEP_3TAPS,
+   FREQ_DEP_5TAPS,
+   FREQ_DEP_7TAPS,
+   FREQ_DEP_NA,
+}  TX_FREQ_DEP_TAPS_T;
+
+typedef enum
+{
+   ASYMM_3TAPS,
+   ASYMM_5TAPS,
+   ASYMM_7TAPS,
+   ASYMM_9TAPS,
+   ASYMM_11TAPS,
+   ASYMM_NA,
+}  TX_ASYMM_TAPS_T;
+
+typedef enum
+{
+   DAC_RAT_104M,
+   DAC_RAT_208M,
+   DAC_RAT_416M,
+}  TX_DAC_RATE_T;
+
+typedef enum
+{
+   COS,
+   JSIN,
+   COS_PLUS_JSIN,
+   COS_MINUS_JSIN,
+}  TX_TTG_TONE_PHASE_T;
+
+typedef enum
+{
+   PATH0,
+   PATH1,
+}  RX_PATH_T;
+
+typedef enum
+{
+   FEC,
+   CR4,
+}  RX_SRC_SEL_T;
+
+typedef enum
+{
+   ANT0,
+   ANT1,
+}  RX_ANT_T;
+
+typedef enum
+{
+   FREQ_COMPLEX_BYPASS,
+   RFEQ_COMPLEX_3TAPS,
+   RFEQ_COMPLEX_5TAPS,
+   RFEQ_COMPLEX_8TAPS,
+}  RX_RFEQ_COMPLEX_TAPS_T;
+
+typedef enum
+{
+   FDPM_0TAPS,
+   FDPM_2TAPS,
+   FDPM_3TAPS,
+   FDPM_4TAPS,
+   FDPM_5TAPS,
+   FDPM_6TAPS,
+   FDPM_7TAPS,
+   FDPM_8TAPS,
+   FDPM_DELAY_1TAPS,
+   FDPM_DELAY_2TAPS,
+   FDPM_DELAY_3TAPS,
+}  RX_FDPM_TAPS_T;
+
+typedef enum
+{
+   RX_PATH_NONE,
+   RX_PATH_MAIN,
+   RX_PATH_DIVERSITY,
+   RX_PATH_BOTH,
+} RF_RX_PATH_T;
+
+typedef enum
+{
+   C0,
+   C1,
+   C2,
+}  RX_CARRIER_T;
+
+typedef enum
+{
+   DCK,
+   IQK,
+   IIP2K,
+   IIP2K_NM,
+}  RX_CAL_MODE_T;
+
+typedef enum
+{
+   BWT_SC,
+   BWT_DC,
+   BWT_3C,
+}  RX_PATH_BANDWIDTH_T;
+
+typedef struct
+{
+   kal_uint16 mipi_data_start;
+   kal_uint16 mipi_data_number;
+}UL1D_RF_CAL_MIPI_DATA_T;
+/*===============================================================================*/
+/*===============================================================================*/
+/*                     RF Calibration Result Structure                           */
+/*     The structure is grouped from post-processing result. Some redundent      */
+/*     items may need to be removed and excluded in shared memory or NVRAM.      */
+/*===============================================================================*/
+typedef struct
+{
+   RF_CW_T stxCw511;   //STX MAIN
+   RF_CW_T stxCw529;   //DCO1
+   RF_CW_T stxCw549;   //MMD2
+   RF_CW_T stxCw582;
+}UMTS_STX_CONFIG_BUFFER_T;
+
+#if defined(__MD97__) || (defined __MD97P__)
+#else
+typedef struct
+{
+   kal_uint8             route_num;
+   kal_bool              is_rx_tdd_band;
+   MMRFC_RX_CAL_CFG_T    cfg[MMRFC_RX_IRR_COMP_ROUTE_MAX];
+}UL1D_RX_CAL_IRR_DC_CFG_T;
+#endif
+
+typedef struct
+{
+  MMRFC_RX_DC_RESULT_T rx_dc[MMRFC_RXDC_TIA_GAIN_STEPS][MMRFC_RXDC_PGA_GAIN_WCDMA_STEPS];
+} UMTS_RX_DC_HPM_RESULT_T;
+
+typedef struct
+{
+  MMRFC_RX_DC_RESULT_T rx_dc[MMRFC_RXDC_TIA_GAIN_LPM_STEPS][MMRFC_RXDC_PGA_GAIN_LPM_STEPS];
+} UMTS_RX_DC_LPM_RESULT_T;
+
+
+#if IS_URF_TRINITYE1_RFC||IS_URF_TRINITY_L||IS_URF_TRINITY_2L||IS_URF_COLUMBUS_TO_DO
+//Trinity do not define MMRFC_UMTS_RESULT_PER_BAND_T
+#else
+
+
+typedef struct
+{
+   /* RX IRR */
+   MMRFC_RX_IRR_RESULT_T       rx_irr_hpm[UL1D_RF_RX_IRR_COMP_ROUTE_MAX][UL1D_RX_CBW_NUM][UL1D_ANT_NUM]; //4 route, 9CBW, 2ANT
+   MMRFC_RX_IRR_RESULT_T       rx_irr_lpm[UL1D_RF_RX_IRR_COMP_ROUTE_MAX][UL1D_RX_CBW_NUM][UL1D_ANT_NUM]; //4 route, 9CBW, 2ANT
+
+   /* RX DC */
+   UMTS_RX_DC_HPM_RESULT_T     rx_dc_hpm[UL1D_RF_RX_DC_COMP_ROUTE_MAX][UL1D_ANT_NUM]; //4 route, 2ANT
+   UMTS_RX_DC_HPM_RESULT_T     rx_dig_dc_hpm[UL1D_RF_RX_DC_COMP_ROUTE_MAX][UL1D_ANT_NUM]; //4 route, 2ANT   Digital DC
+   UMTS_RX_DC_LPM_RESULT_T     rx_dc_lpm[UL1D_RF_RX_DC_COMP_ROUTE_MAX][UL1D_ANT_NUM]; //4 route, 2ANT
+   UMTS_RX_DC_LPM_RESULT_T     rx_dig_dc_lpm[UL1D_RF_RX_DC_COMP_ROUTE_MAX][UL1D_ANT_NUM]; //4 route, 2ANT   Digital DC
+
+   /* RX IIP2 */
+#if IS_URF_MT6179||IS_URF_MT6177L_RX
+   MMRFC_IIP2_RESULT_T         rx_iip2[2][UL1D_RF_RX_IIP2_COMP_ROUTE_MAX]; //[0] for RXP, [1] for RXD
+#else
+   MMRFC_IIP2_RESULT_T         rx_iip2[UL1D_RF_RX_IIP2_COMP_ROUTE_MAX]; //TODO: Need to check inter-band CA case
+#endif
+
+   /* DET */
+   /* Only FDIQ is dependent with sample rates, other redundent items need to be removed in NVRAM/share memory structure */
+   kal_uint32                  det_coarse_dcoc_cw807; //CW807, V_TXCDCOC1[19:0]
+   kal_uint32                  det_coarse_dcoc_cw808; //CW808, V_TXCDCOC2[19:0]
+   MMRFC_DET_IQDNL_RESULT_T    det_iqdnl_fwd[UL1D_DET_FE_GAIN_STEPS][UL1D_TX_CBW_NUM];
+   MMRFC_DET_DC_RESULT_T       det_dc_fwd[MMRFC_DET_GAIN_STEPS_DET_CAL]; //17 DET gain step
+
+   MMRFC_DET_IQDNL_RESULT_T    det_iqdnl_rev[UL1D_DET_FE_GAIN_STEPS][UL1D_TX_CBW_NUM];
+   MMRFC_DET_DC_RESULT_T       det_dc_rev[MMRFC_DET_GAIN_STEPS_DET_CAL]; //17 DET gain step
+
+   /* TX LO Cal */
+   kal_uint32                  tx_lo;            //CW714, {2'b00,V_TXLOCAP[6:0],V_TXLOIND,V_TXLOINBIAS[4:0],V_TXLOINBIAS[4:0]}
+   kal_uint8                   tx_lo_ind;
+   kal_uint8                   tx_lo_capcal_peak_cap; //CW714
+   kal_uint8                   tx_lo_in_bias_hpm;     //CW714
+   kal_uint8                   tx_lo_in_bias_lpm;     //CW714
+   kal_uint32                  stx_dcc_delta_nc; //CW568, V_DCC_DELTA_NC[10:0]
+
+   /* TX RC */
+   kal_int16                   tx_rc_lpf[UL1D_TX_CBW_NUM];
+   kal_int16                   tx_rc_rcf;
+
+   /* TX IQDC */
+   /* TXIQ: G0, G9, G10, G12a, G14a, G12b, G14b, G21  */
+   /* TXDC: G0, G9, G10, G12a, G14a, G12b, G14b, G21  */
+   /* freq_dep_phase_tx is temp output for FDIQ cal   */
+   MMRFC_TX_IQDC_RESULT_T      tx_iqdc_lin[UL1D_TX_PGA_SLICE_NUM+1];
+   MMRFC_TX_IQDC_RESULT_T      tx_iqdc_dpd[UL1D_TX_PGA_SLICE_NUM+1];
+   MMRFC_TX_FD_FILT_RESULT_T   tx_fdiq[UL1D_TX_CBW_NUM][UL1D_TX_PGA_SLICE_NUM+1];
+
+   /* TX DNL */
+   kal_int16                   tx_dnl_lin_pga_a[UL1D_TX_DNL_PGA_A_SEQ_NUM]; //20 gain diff
+   kal_int16                   tx_dnl_lin_pga_b[UL1D_TX_DNL_PGA_B_SEQ_NUM]; //15 gain diff
+   kal_int16                   tx_dnl_dpd_pga_a[UL1D_TX_DNL_PGA_A_SEQ_NUM]; //20 gain diff
+   kal_int16                   tx_dnl_dpd_pga_b[UL1D_TX_DNL_PGA_B_SEQ_NUM]; //15 gain diff
+
+   /* TX GA */
+   MMRFC_TX_GA_RESULT_T        tx_ga_w_ET[UL1D_TX_PGA_TYPE_NUM][UL1D_TX_CBW_NUM];  //3 PGA type, 6CBW
+   MMRFC_TX_GA_RESULT_T        tx_ga_wo_ET[UL1D_TX_PGA_TYPE_NUM][UL1D_TX_CBW_NUM]; //3 PGA type, 6CBW
+
+   /* TX PGA Phase Step */
+   kal_int16                   pga_phase_step;
+
+   /* TX PGA Gain Step */
+   kal_int16                   pga_gain_step[UL1D_TX_PGA_GAIN_STEP_SUBBAND_NUM][UL1D_TX_PGA_GAIN_STEP_NUM];
+
+   /* TX PGA Cap Tuning */
+   kal_int16                   cap_tuning_pga_a;
+   kal_int16                   cap_tuning_pga_b;
+
+
+} MMRFC_UMTS_RESULT_PER_BAND_T;
+
+typedef struct
+{
+   MMRFC_UMTS_RESULT_PER_BAND_T umts_result[MAX_SUPPORTED_BAND_INDEX];
+} MMRFC_UMTS_RESULT_T;
+#endif /*IS_URF_TRINITYE1_RFC*/
+
+
+/* RX POC index and CFG table */
+typedef struct
+{
+   UMTSBand   band;
+   kal_uint8  route_num;
+   UMTS_Route route_idx[UL1D_RX_IRR_DC_ROUTE_NUM_MAX];
+}UL1D_RX_IRR_DC_CFG_INDEX_TBL_T;
+
+typedef struct
+{
+   UMTSBand   band;
+   kal_uint8  route_num;
+   UMTS_Route rx_route_idx[UL1D_RX_IIP2_ROUTE_NUM_MAX];
+   UMTS_Route tx_route_idx[UL1D_RX_IIP2_ROUTE_NUM_MAX];
+}UL1D_RX_IIP2_CFG_INDEX_TBL_T;
+
+#if 1/*POC Re-Org Phase 1*/
+typedef struct
+{
+   kal_int16 i_part;
+   kal_int16 q_part;
+
+} UL1D_TXDFE_TX_DC_COMP_T;
+
+typedef struct
+{
+   UL1D_TXDFE_TX_DC_COMP_T comp_tab[UL1D_TX_DC_COMP_FC_MODE_NUM][UL1D_TX_DC_COMP_PGA_SLICE_SET_NUM];
+
+} UL1D_TXDFE_TX_DC_COMP_TAB_T;
+
+typedef struct
+{
+   kal_int16 gain;
+   kal_int16 phase;
+
+} UL1D_TXDFE_TX_IQ_COMP_T;
+
+typedef struct
+{
+   UL1D_TXDFE_TX_IQ_COMP_T comp_tab[UL1D_TX_IQ_COMP_FC_MODE_NUM][UL1D_TX_IQ_COMP_PGA_SLICE_SET_NUM];
+
+} UL1D_TXDFE_TX_IQ_COMP_TAB_T;
+#endif
+
+#if defined(__MD97__) || (defined __MD97P__)
+#else
+typedef struct
+{
+   kal_uint8          route_num;
+   kal_uint16         rx_iip2_usage_comp_idx[UL1D_RX_IIP2_ROUTE_NUM_MAX];
+   kal_bool           is_rx_tdd_band;
+   MMRFC_RX_CAL_CFG_T rx_cfg[UL1D_RX_IIP2_ROUTE_NUM_MAX];
+   MMRFC_TX_CAL_CFG_T tx_cfg[UL1D_RX_IIP2_ROUTE_NUM_MAX];
+}UL1D_RX_CAL_IIP2_CFG_T;
+#endif
+
+typedef struct
+{
+UMTS_RF_POC_RX_DC_COMP_T dc_ant0;
+UMTS_RF_POC_RX_DC_COMP_T dc_ant1;
+}UL1D_RX_DCOC_COMP_DATA_T;
+
+#if IS_URF_MT6177L_RFC || IS_URF_MT6173_RFC
+typedef struct
+{
+   kal_uint32 bsiDada[SEQ_3G_FDD_RFC_STX_CONFIG_BUFFER_COUNT];
+}URFC_STX_CONFIG_BUFFER_T;
+
+typedef struct
+{
+   kal_uint32 bsiDada[SEQ_3G_FDD_RFC_TX_CONFIG_BUFFER_COUNT];
+}URFC_TX_CONFIG_BUFFER_T;
+
+typedef struct
+{
+   kal_uint32 bsiDada[SEQ_3G_FDD_RFC_LIN_CONFIG_BUFFER_COUNT];
+
+}URFC_TX_DRV_BIAS_LIN_CONFIG_BUFFER_T;
+
+typedef struct
+{
+   kal_uint32 bsiDada[SEQ_3G_FDD_RFC_DPD_CONFIG_BUFFER_COUNT];
+}URFC_TX_DRV_BIAS_DPD_CONFIG_BUFFER_T;
+#endif
+
+#if IS_3G_GEN97_RXDFE_RFC_API_SUPPORT
+typedef struct
+{
+   MMRF_COMMON_BAND_IDX_E   band; 
+   kal_uint8   ant_mask; 
+   kal_uint8   srx_path; 
+   kal_uint8   carrier_mask;
+   kal_uint8   carrier_cnt; 
+   kal_int32   *NCO;      /*10kHz, [0] for primary carrier, [1] for secondary carrier*/
+   kal_uint32  on_ucnt;   /*312MHz ucnt*/
+   kal_bool    is_lpm;
+}UL1D_RXDFE_RFC_Window_On_Param_T;
+
+typedef struct
+{
+   kal_uint8   ant_mask; 
+   kal_uint8   srx_path; 
+   kal_uint32  off_ucnt;   /*312MHz ucnt*/
+}UL1D_RXDFE_RFC_Window_Off_Param_T;
+
+typedef struct
+{
+   MML1_RXDFE_SW_DC_T  sw_dc[MMRFC_RX_PHYSICAL_ANT_NUM];
+}UL1D_RXDFE_RFC_Comp_Update_DC_Param_T;
+
+typedef struct
+{
+   MMRFC_RX_IRR_COMP_T   rx_irr_ant[MMRFC_RX_PHYSICAL_ANT_NUM];
+} UL1D_RXDFE_RFC_Comp_Update_IRR_Param_T;
+
+typedef struct
+{
+   MMRF_COMMON_BAND_IDX_E   band; 
+   kal_uint8   ant_mask; 
+   kal_uint8   srx_path; 
+   kal_uint8   carrier_cnt; 
+   kal_bool    is_lpm;
+   kal_uint32  update_ucnt;   /*312MHz ucnt*/
+   UL1D_RXDFE_RFC_Comp_Update_DC_Param_T   *p_rfc_sw_dc;
+   UL1D_RXDFE_RFC_Comp_Update_IRR_Param_T  *p_rfc_irr;
+}UL1D_RXDFE_RFC_Comp_Update_Param_T;
+#endif
+
+void UL1D_MMRF_PowerOnCalibration(void);
+void UL1D_MMRF_L1CoreSHMDataInit(void);
+void UL1D_MMRF_L1coreSHMUpdate2Local(void);
+void UL1D_MMRF_PCoreSHMDataCacheFlush(void);
+
+/** Update Run-Time APIs */
+kal_uint32 UL1D_MMRF_UpdateRuntimeHandler( kal_uint32 nvram_lid, kal_uint32 record_idx, kal_uint8 *data, kal_uint16 nvram_size );
+
+kal_uint16 UL1D_RF_Cal_Poc_NVRAM_Lid_Total_Num_InUse(void );
+kal_uint16 UL1D_RF_Get_Rf_Self_Cal_Result_Size(kal_uint16 lid_index);
+kal_uint16 UL1D_RF_Get_Rf_Self_Cal_Result(kal_uint16 lid_index, kal_uint16 lid_size, kal_uint8 *dst);
+kal_uint16 UL1D_RF_Set_Rf_Self_Cal_Result(kal_uint16 lid_index, kal_uint16 lid_size, kal_uint8 *src);
+kal_uint16 UL1D_RF_Get_Rf_Self_Cal_String( kal_uint16 lid_index, kal_char *string_dst );
+
+
+//For POC TX API
+//xxx_en_bit :: bit0:DPD, bit1:line mode1 without ET, bit2:line mode1 with ET,bit3:line mode2 without ET, bit4:line mode2 with ET
+#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 !*/
+#endif
+
+/** RF Route Table */
+void UL1D_RF_ConstructRxConfigTable(void);
+void UL1D_RF_ConstructRxIrrConfigTable(void);
+void UL1D_RF_ConstructRxDcConfigTable(void);
+void UL1D_RF_ConstructRxIip2ConfigTable(void);
+#if defined(__MD97__) || (defined __MD97P__)
+#else
+void UL1D_RF_GetRxIrrDcConfigTable( UMTSBand band, UL1D_RX_CAL_IRR_DC_CFG_T* irr_dc_cfg, kal_uint8 is_irr_cal );
+void UL1D_RF_GetRxIip2ConfigTable( UMTSBand band, UL1D_RX_CAL_IIP2_CFG_T* iip2_cfg );
+#endif
+#if IS_URF_MT6179||IS_URF_MT6177L_RX||IS_URF_MT6173_RX
+void UL1D_RF_CAL_Set_TX_CW_Rx_IIP2_CAL(MMRFC_TX_CAL_CFG_T *tx_cfg, MML1_RF_BSIMM_PORT_T port_sel);
+void UL1D_RF_CAL_Set_TX_PGA_Gain_CW_Rx_IIP2_CAL(MMRFC_TX_CAL_CFG_T *iip2_tx_cfg_p, MML1_RF_BSIMM_PORT_T port_sel);
+#endif
+
+/** API to get TX DET ANT*/
+void UL1D_RF_GET_TX_DET_ANT(MMRFC_XL1_BAND_NUM_E band, kal_bool is_fwd_path);
+#if defined(__MD97__) || (defined __MD97P__)
+#else
+kal_bool UL1D_RF_DET_Path_Query(MMRFC_XL1_BAND_NUM_E band, MMRF_DET_IO_E tx_det_io);
+#endif
+
+/** API for TAS*/
+kal_bool UL1D_RF_TAS_Support(void);
+#if IS_3G_TAS_UL1_CUSTOM_SUPPORT
+   #if IS_3G_GEN97_TAS_SUPPORT
+   void UL1D_RF_Force_TAS(kal_bool force_tas_enable, MMRFD_CUSTOM_TAS_STATE_E tx_state, MMRFD_CUSTOM_TAS_STATE_E rx_state);
+   #else
+   void UL1D_RF_Force_TAS(UMTS_CUSTOM_TAS_SWITCH_E force_tas_enable, UMTS_CUSTOM_TAS_STATE_E tas_state);
+   #endif
+#else
+   void UL1D_RF_Force_TAS(kal_bool force_tas_enable, kal_uint8 tas_idx);
+#endif
+
+#if (defined __MD95__)
+kal_uint8 UL1TST_Supported_Band_Query(kal_uint8* band_info);
+#endif
+
+#if IS_3G_DAT_RFD_CTRL_EN
+void UL1D_RF_Force_DAT(kal_bool dat_feature_enable, kal_int16 scenario);
+kal_bool URFD_AP_Sensor_Relative_Feature_IS_Need_L1C_GAP(MMRF_AP_SENSOR_RELATIVE_OP_CODE_E OP_code, kal_int16 new_scenario);
+#endif
+
+#if IS_3G_GEN97_DAT_SUPPORT
+kal_bool UL1D_RF_DAT_Support(void);
+#endif
+
+/** API for BSI_W Init for MML1 normal power on flow */
+void UL1D_RF_INIT_BSI_POWER_ON(void);
+
+#if 1/*POC Re-Org Phase 1*/
+/** API for MMPOC Re-Org Phase 1*/
+#if IS_MML1_UMTS_FDD_RAT_SUPPORT
+void UL1D_RFC_TXDFE_MTCMOS_CONTROL(kal_bool is_on);
+#if (defined __MD97__) || (defined __MD97P__)
+#else
+void UL1D_RF_TX_PARAM_COMP(RF_COMP_INDEX_E comp_idx, MMRFC_TX_RAT_CBW_CFG_E cbw_cfg, MMRFC_XL1_BAND_NUM_E band, kal_uint32 reCalIdx);
+void UL1D_RFC_DET_FIIQ_COMP(kal_uint32 route_idx, MMRFC_DETDFE_TIA_GAIN_IDX_E fe_gain, MMRFC_TX_RAT_CBW_CFG_E cbw_case_idx, MMRFC_DET_FIIQ_COMP_T* p);
+void UL1D_RFC_DET_DC_COMP(kal_uint32 route_idx, kal_uint32 det_gain_step, MMRFC_DET_DC_COMP_T* p);
+void UL1D_RFC_DET_FDPCB_COMP(kal_uint32 route_idx, MMRFC_DETDFE_TIA_GAIN_IDX_E fe_gain, MMRFC_TX_RAT_CBW_CFG_E cbw_case_idx, MMRFC_DET_EQLPF_CFG_T* p);
+void UL1D_RF_GetDetBwConfig(MMRFC_DET_CAL_ITEM_CFG_E detk_item, MMRFC_TX_RAT_CBW_CFG_E* start_cbw, MMRFC_TX_RAT_CBW_CFG_E* end_cbw, kal_uint8* tone_num);
+void UL1D_RF_GetTxBwConfig(MMRFC_TX_CAL_ITEM_CFG_E txk_item, MMRFC_TX_RAT_CBW_CFG_E* start_cbw, MMRFC_TX_RAT_CBW_CFG_E* end_cbw);
+kal_uint32 UL1D_RF_DATA_BUFFER_LENGTH_RETURN(MMPOC_BUFFER_IDX_E  buf_type);
+kal_uint32* UL1D_RF_DATA_BUFFER_PTR_RETURN(MMPOC_BUFFER_IDX_E  buf_type);
+kal_uint32 UL1D_RF_DATA_BUFFER_MIPI_LENGTH_RETURN(kal_bool is_mipi_on, kal_uint8 curr_band_idx);
+MML1_RF_BSIMM_PORT_T UL1D_RF_BUF_DATA_PORT_TABLE_RETURN(MMPOC_BUFFER_IDX_E bufId);
+#endif
+#endif
+
+#endif/*POC Re-Org Phase 1*/
+
+#if 1/*POC Re-Org Phase 2*/
+
+/*TX*/
+#if (defined __MD97__) || (defined __MD97P__)
+#else
+void UL1D_RF_MMPOC_GetTxCfg(MMRFC_XL1_BAND_NUM_E band, MMRFC_TX_ROUTE_CFG_T* tx_cfg);
+void UL1D_RFC_GetCalibrationResults_RX_DC(MMRFC_POWER_MODE_E mode,kal_uint16 dc_comp_route_idx,RX_TIA_GAIN_E tia_gain_idx,RXIF_GAIN_E if_gain_idx,UMTS_RF_POC_RX_DC_COMP_T* rf_dc,MMRFC_XL1_BAND_NUM_E band);
+void UL1D_RFC_GetCalibrationResults_RX_Dig_DC(MMRFC_POWER_MODE_E mode,kal_uint16 dc_comp_route_idx,RX_TIA_GAIN_E tia_gain_idx,RXIF_GAIN_E if_gain_idx,UMTS_RF_POC_RX_DC_COMP_T* rf_dig_dc, MMRFC_XL1_BAND_NUM_E band);
+void UL1D_RFC_Get_Rx_IRR_Comp_Data( kal_uint16 rx_irr_comp_idx, MMRFC_RXIRR_CAL_MODE_E power_mode,kal_uint8 rx_bw_idx,UMTS_RF_POC_RX_IRR_COMP_T* rf_rx_irr_comp_p,MMRFC_XL1_BAND_NUM_E band);
+void UL1D_RFC_RF_RXDFE_Comp_Imm(RF_COMP_INDEX_E comp_idx, MMRFC_PATH_BITMAP_E path_sel,MML1_RF_BSIMM_PORT_T rfic,MMRFC_RX_GAIN_T rx_gain_info,kal_uint32 rx_rf_route_idx,MMRFC_XL1_BAND_NUM_E band,MMRFC_RX_CAL_TYPE_E  rx_cal_item,kal_uint8 re_cal_indx);
+void UL1D_RFC_RXIRR_Gain_Config(MMRFC_RXIRR_CAL_MODE_E irr_mode_idx, kal_uint32 rx_gain_idx, RXIF_GAIN_E* pga_gain_p, RX_LNA_GAIN_E* lna_gain_p, RX_TIA_GAIN_E* tia_gain_p);
+/*RX*/
+void UL1D_RF_CAL_Set_Tunnel_Path_Ctrl_CW(MMRFC_RX_CW_PARAM_T* rx_cw_param, MMRFC_RXT_PATH_CTRL_BUFFER_T* buffer);
+void UL1D_RFC_Get_Rx_IRR_Recal_Comp_Data( kal_uint16 rx_irr_comp_idx, MMRFC_RXIRR_CAL_MODE_E power_mode,kal_uint8 rx_bw_idx,UMTS_RF_POC_RX_IRR_COMP_T* rf_rx_irr_comp_p,MMRFC_XL1_BAND_NUM_E band,kal_uint8 re_cal_indx);
+void UL1D_RFC_GetCalibrationResults_RX_DC_Recal(MMRFC_POWER_MODE_E mode,kal_uint16 dc_comp_route_idx,RX_TIA_GAIN_E tia_gain_idx,RXIF_GAIN_E if_gain_idx,UMTS_RF_POC_RX_DC_COMP_T* rf_dc,MMRFC_XL1_BAND_NUM_E band,kal_uint8 re_cal_indx);
+void UL1D_RF_CAL_Set_Rx_Path_Ctrl_CW(MMRFC_RX_CW_PARAM_T* rx_cw_param, MMRFC_RX_CAL_CFG_T* rx_cfg);
+void UL1D_RF_CAL_Set_Rx_Mixer_Gate_Bias_CW(MMRFC_RX_CW_PARAM_T* rx_cw_param, MMRFC_RX_CAL_CFG_T* rx_cfg);
+void UL1D_RF_CAL_Set_Rx_LO_Ctrl_CW(MMRFC_RX_CW_PARAM_T* rx_cw_param, MMRFC_RX_CAL_CFG_T* rx_cfg);
+void UL1D_RF_CAL_Set_Srx_Config_CW(MMRFC_RX_CW_PARAM_T* rx_cw_param, MMRFC_RX_CAL_CFG_T* rx_cfg);
+
+
+#if IS_URF_MT6177L_RFC||IS_URF_MT6173_RFC
+void UL1D_RFC_STX_CONFIG_BUFFER(MMRFC_XL1_BAND_SUPPORT_CAPABILITY_T* band_cap_p,
+                                               kal_uint8* length,
+                                               URFC_STX_CONFIG_BUFFER_T* buffer);
+void UL1D_RFC_TX_CONFIG_BUFFER(MMRFC_XL1_BAND_SUPPORT_CAPABILITY_T* band_cap_p,
+                                             kal_uint8* length,
+                                             URFC_TX_CONFIG_BUFFER_T* buffer);
+void UL1D_RFC_LIN_CONFIG_BUFFER(MMRFC_XL1_BAND_SUPPORT_CAPABILITY_T* band_cap_p,
+                                              kal_uint8* length,
+                                              URFC_TX_DRV_BIAS_LIN_CONFIG_BUFFER_T* buffer);
+void UL1D_RFC_DPD_CONFIG_BUFFER(MMRFC_XL1_BAND_SUPPORT_CAPABILITY_T* band_cap_p,
+                                               kal_uint8* length,
+                                               URFC_TX_DRV_BIAS_DPD_CONFIG_BUFFER_T* buffer);
+#else
+void UL1D_RFC_STX_CONFIG_BUFFER(MMRFC_XL1_BAND_SUPPORT_CAPABILITY_T* band_cap_p,
+                                               kal_uint8* length,
+                                               MMRFC_STX_CONFIG_BUFFER_T* buffer);
+void UL1D_RFC_TX_CONFIG_BUFFER(MMRFC_XL1_BAND_SUPPORT_CAPABILITY_T* band_cap_p,
+                                             kal_uint8* length,
+                                             MMRFC_TX_CONFIG_BUFFER_T* buffer);
+void UL1D_RFC_LIN_CONFIG_BUFFER(MMRFC_XL1_BAND_SUPPORT_CAPABILITY_T* band_cap_p,
+                                              kal_uint8* length,
+                                              MMRFC_TX_DRV_BIAS_LIN_CONFIG_BUFFER_T* buffer);
+void UL1D_RFC_DPD_CONFIG_BUFFER(MMRFC_XL1_BAND_SUPPORT_CAPABILITY_T* band_cap_p,
+                                               kal_uint8* length,
+                                               MMRFC_TX_DRV_BIAS_DPD_CONFIG_BUFFER_T* buffer);
+#endif
+void UL1D_MMRF_RFCAL_TX_PA_ON_LOWGAIN_CONFIG_BUFFER_2(MMRFC_XL1_BAND_SUPPORT_CAPABILITY_T* band_cap_p,
+                                                      kal_uint8* length,
+                                                      MMRFC_TXPA_ON_LOWGAIN_BUFFER_T* buffer,
+                                                      MML1_RF_BSIMM_PORT_T* port_sel);
+
+void UL1D_MMRF_RFCAL_TX_PA_OFF_CONFIG_BUFFER_2(MMRFC_XL1_BAND_SUPPORT_CAPABILITY_T* band_cap_p,
+                                               kal_uint8* length,
+                                               MMRFC_TXPA_OFF_BUFFER_T* buffer,
+                                               MML1_RF_BSIMM_PORT_T* port_sel);
+
+void UL1D_MMRF_RFCAL_TX_PA_ETM_CONFIG_BUFFER(MMRFC_XL1_BAND_SUPPORT_CAPABILITY_T* band_cap_p, 
+                                                                            kal_uint32 pa_lvl,
+                                                                            kal_uint16 ul_freq,
+                                                                            kal_bool etm_on,
+                                                                            kal_uint8* length,
+                                                                            MMRFC_TXPA_ETM_CONFIG_BUFFER_T* buffer);
+
+void UL1D_RFC_RXIRR_RESULT_WRITE_BACK(MMRFC_RXIRR_CAL_MODE_E irr_mode_idx,
+                                  kal_uint8 irr_route_idx ,
+                                  MMRFC_XL1_BAND_NUM_E band,
+                                  kal_uint8 cbw_idx,
+                                  kal_uint8 ant_idx,
+                                  MMRFC_RX_IRR_RESULT_T* rx_irr_data,
+                                  kal_bool internal_ms_elapsed_time_check_flag);
+
+void UL1D_RF_CAL_TXCAP_RESULT_WRITE_BACK(
+                                         MMRFC_XL1_BAND_NUM_E band,
+                                         kal_uint32 subband_idx,
+                                         kal_uint8  pga_ab,
+                                         kal_bool   is_pre_cap_tuning,
+                                         kal_uint8  CAP_OPT_A,
+                                         kal_uint8  CAP_OPT_B,
+                                         kal_bool   internal_ms_elapsed_time_check_flag);
+
+void UL1D_RF_TX_PGA_PHASE_STEP_RESULT_WRITE_BACK(MMRFC_XL1_BAND_NUM_E band, kal_int16 result);
+void UL1D_RF_CAL_TXDC_RESULT_WRITE_BACK(MMRFC_XL1_BAND_NUM_E band,
+                                        kal_uint32 pwr_mode,
+                                        kal_uint32 tx_pga_slice,
+                                        MMRFC_TX_IQDC_RESULT_T* tx_iqdc_calgo_result,
+                                        kal_uint32 recal,
+                                        kal_bool internal_ms_elapsed_time_check_flag);
+void UL1D_RF_CAL_TXFIIQ_RESULT_WRITE_BACK(MMRFC_XL1_BAND_NUM_E band,
+                                          kal_uint32 pwr_mode,
+                                          kal_uint32 tx_pga_slice,
+                                          MMRFC_TX_IQDC_RESULT_T* tx_iqdc_calgo_result,
+                                          kal_uint32 recal,
+                                          kal_bool internal_ms_elapsed_time_check_flag);
+void UL1D_RF_CAL_TXRC_RESULT_WRITE_BACK(MMRFC_XL1_BAND_NUM_E band,
+                                        MMRFC_LPF_RCF_CAL_TYPE_E lpf_rcf_select,
+                                        kal_int16 tx_rc_calgo_result,
+                                        kal_bool internal_ms_elapsed_time_check_flag);
+#endif
+#endif/*POC ReOrg Phase 2*/
+
+#if (defined __MD97__) || (defined __MD97P__)
+#else
+kal_uint8 UL1D_RF_CAL_RSEL_RCF(MMRFC_XL1_BAND_NUM_E band);
+kal_uint8 UL1D_RF_CAL_RSEL_LPF(MMRFC_XL1_BAND_NUM_E band);
+
+void UL1D_RF_RXIRR_Gain_Config(MMRFC_RXIRR_CAL_MODE_E irr_mode_idx, kal_uint32 rx_bw_idx, RXIF_GAIN_E* pga_gain_p, RX_LNA_GAIN_E* lna_gain_p, RX_TIA_GAIN_E* tia_gain_p);
+void UL1D_RF_POC_RxGainCW(MMRFC_RX_CW_PARAM_T* rx_cw_param, MMRFC_RXIRR_CAL_MODE_E power_mode_idx, kal_uint32 rx_gain_idx,
+                                    MMRFC_PATH_BITMAP_E path_sel, MMRFC_RX_GAIN_CW_BUFFER_T* buffer);
+void UL1D_RF_RXDC_Setting_Config(kal_uint32** rx_hpm_gain_idx_by_rat, kal_uint32** rx_lpm_gain_idx_by_rat, MMRFC_POWER_MODE_E** dc_mode_idx_cal_end);
+
+void UL1D_RF_DETCDCOC_RESULT_WRITE_BACK(MMRFC_XL1_BAND_NUM_E band,
+                                        kal_uint32 det_coarse_dcoc_cw807,
+                                        kal_uint32 det_coarse_dcoc_cw808);
+
+void UL1D_RF_TXLO_RESULT_WRITE_BACK(MMRFC_XL1_BAND_NUM_E band,
+                                    kal_uint8  ind_sw,
+                                    kal_uint8  capcal_peak_cap,
+                                    kal_uint8  in_bias_lpm,
+                                    kal_uint8  in_bias_hpm);
+
+void UL1D_RF_DETDC_RESULT_WRITE_BACK(MMRFC_XL1_BAND_NUM_E band,
+                                     kal_uint8  gain_idx,
+                                     kal_uint32 recal,
+                                     MMRFC_DET_DC_RESULT_T* tx_det_dc_calgo_result,
+                                     kal_bool internal_ms_elapsed_time_check_flag);
+
+void UL1D_RF_DETFDPCB_RESULT_WRITE_BACK(MMRFC_XL1_BAND_NUM_E band,
+                                         MMRFC_DET_TIA_COMP_INDEX_E fe_gain_idx,
+                                         MMRFC_TX_RAT_CBW_CFG_E cbw_case_idx,
+                                         kal_uint32 recal,
+                                         MMRFC_DET_EQLPF_CFG_T* tx_det_pcb_calgo_result,
+                                         kal_bool internal_ms_elapsed_time_check_flag);
+
+void UL1D_RF_DETIQDNL_RESULT_WRITE_BACK(MMRFC_XL1_BAND_NUM_E band,
+                                         MMRFC_DET_TIA_COMP_INDEX_E fe_gain_idx,
+                                         MMRFC_DET_G_IDX gain_idx,
+                                         MMRFC_TX_RAT_CBW_CFG_E cbw_case_idx,
+                                         kal_uint32 recal,
+                                         MMRFC_DET_IQDNL_RESULT_T* tx_det_iqdnl_calgo_result,
+                                         kal_bool internal_ms_elapsed_time_check_flag);
+
+void UL1D_RF_TXDNL_RESULT_WRITE_BACK(MMRFC_XL1_BAND_NUM_E band,
+                                      kal_uint32 tx_gain_idx,
+                                      kal_int32  tx_dnl_calgo_result0,
+                                      kal_int32  tx_dnl_calgo_result1,
+                                      kal_bool   internal_ms_elapsed_time_check_flag);
+
+void UL1D_RFC_RXDC_RESULT_WRITE_BACK(MMRFC_POWER_MODE_E dc_mode_idx,
+                                     MMRFC_XL1_BAND_NUM_E band,
+                                     kal_uint8 tia_gain_idx,
+                                     kal_uint8 if_gain_idx,
+                                     kal_uint8 route_idx,
+                                     kal_uint8 ant_idx,
+                                     MMRFC_RX_DC_RESULT_T* rf_dc,
+                                     MMRFC_RX_DC_RESULT_T* dig_dc,
+                                     kal_bool internal_ms_elapsed_time_check_flag);
+
+void UL1D_RFC_RXIIP2_RESULT_WRITE_BACK(MMRFC_XL1_BAND_NUM_E band,
+                                       kal_uint16 iip2_route_idx,
+                                       MMRFC_IIP2_RESULT_T* rxp_iip2,
+                                       MMRFC_IIP2_RESULT_T* rxd_iip2,
+                                       kal_bool internal_ms_elapsed_time_check_flag);
+
+void UL1D_RFC_TX_DNL_SET_DEFAULT(MMRFC_XL1_BAND_NUM_E band);
+#endif
+//Gen97
+#if IS_3G_GEN97_RXDFE_RFC_API_SUPPORT
+void UL1D_RXDFE_RFC_Window_On(UL1D_RXDFE_RFC_Window_On_Param_T *p_win_on_param);
+void UL1D_RXDFE_RFC_Window_Off(UL1D_RXDFE_RFC_Window_Off_Param_T *p_win_off_param);
+void UL1D_RXDFE_RFC_Comp_Update(UL1D_RXDFE_RFC_Comp_Update_Param_T *p_comp_update_param);
+extern kal_uint8 UL1D_RXDFE_SRX_IDX_TO_DFE_PATH(kal_uint8 srx_idx);
+#endif
+//Gen93/95
+void UL1D_RFC_RXDFE_Win_On_Ctrl(MMRFC_RX_CAL_TYPE_E rx_cal_type, MMRFC_XL1_BAND_NUM_E band, MMRFC_PATH_BITMAP_E path_sel);
+void UL1D_RFC_RXDFE_Meas_Trigger(MMRFC_RX_CAL_TYPE_E rx_cal_type, kal_uint32 meas_atime, MMRFC_PATH_BITMAP_E path_sel);
+void UL1D_RFC_RXDFE_Win_Off_Ctrl(MMRFC_RX_CAL_TYPE_E rx_cal_type, MMRFC_PATH_BITMAP_E path_sel);
+void UL1D_RXDFE_Comp_ActBuff_Rxk(MMRFC_RX_CAL_TYPE_E calType, kal_bool is_hpm, kal_uint32 rx_bw_idx, UMTS_RF_POC_RX_IRR_COMP_T* irr_comp, UMTS_RF_POC_RX_DC_COMP_T* dc_comp);
+
+void ul1d_rf_cal_calculate_det_gain(UMTS_RF_POC_DET_COMP_DATA_T* p_det_shm);
+
+#if IS_URF_TRINITYE1_RFC||IS_URF_TRINITY_2L
+void UL1D_RFC_Get_RxrouteConfigTable_PerBand(MMRFC_XL1_BAND_NUM_E band, MMRFC_RX_CAL_ROUTE_PER_BAND_FROM_RXROUTE_CFG_T* irr_dc_cfg);
+
+void UL1D_RFC_Get_RxT2RConfigTable_PerBand( MMRFC_XL1_BAND_NUM_E band, MMRFC_RX_CAL_ROUTE_PER_BAND_FROM_T2R_CFG_T* iip2_cfg );
+
+void UL1D_RFC_Get_TxConfigTable_PerBand( MMRFC_XL1_BAND_NUM_E mmrfc_band,  MMRFC_TX_CAL_ROUTE_PER_BAND_CFG_T *tx_route_cfg);
+
+void UL1D_RFC_RX_DC_RESULT_HANDLING(MMRFC_POWER_MODE_E dc_mode_idx,
+                                    RX_TIA_GAIN_E tia_gain_idx,
+                                    RXIF_GAIN_E if_gain_idx,
+                                    kal_uint16 dc_route_idx,
+                                    kal_uint8 ant_idx,
+                                    MMRFC_RX_DC_RESULT_T* rf_dc,
+                                    MMRFC_RX_DC_RESULT_T* dig_dc,
+                                    kal_uint8 re_cal_index,
+                                    kal_bool is_write_back);
+
+void UL1D_RFC_RX_IRR_RESULT_HANDLING(MMRFC_RXIRR_CAL_MODE_E irr_mode_idx,
+                                     kal_uint16 irr_route_idx,
+                                     MMRFC_RX_RAT_CBW_CFG_E rx_cbw,
+                                     kal_uint8 ant_idx,
+                                     MMRFC_RX_IRR_RESULT_T* rx_irr_data,
+                                     kal_uint8 re_cal_index,
+                                     kal_bool is_write_back);
+
+void UL1D_RFC_RX_IIP2_RESULT_HANDLING(kal_uint16 iip2_route_idx,
+                                      MMRFC_IIP2_RESULT_T* rxp_iip2,
+                                      MMRFC_IIP2_RESULT_T* rxd_iip2,
+                                      kal_bool is_write_back);
+
+void UL1D_RFC_TX_CAP_RESULT_HANDLING(kal_uint32           route_idx,
+                                     MMRFC_XL1_BAND_NUM_E band,
+                                     kal_bool             is_pre_cap_tuning,
+                                     kal_uint32           *CAP_OPT_A,
+                                     kal_bool             is_write_back);
+
+
+
+void UL1D_RFC_TX_DNL_RESULT_HANDLING(kal_bool      is_tx_dnl_valid,
+                                     kal_uint32    route_idx,
+                                     kal_int16     *tx_dnl_calgo_result,
+                                     kal_bool      is_write_back);
+
+
+
+void UL1D_RFC_TX_FDIQ_RESULT_HANDLING(kal_uint32                 route_idx,
+                                      MMRFC_TX_RAT_CBW_CFG_E     cbw_case_idx,
+                                      MMRFC_TX_ABB_SLICE_E       tx_pga_slice,
+                                      kal_uint32                 recal,
+                                      MMRFC_TX_FD_FILT_RESULT_T *tx_fdiq_calgo_result,
+                                      kal_bool                   is_write_back);
+
+
+void UL1D_RFC_TX_FIIQDC_RESULT_HANDLING(kal_uint32              route_idx,
+                                        MMRFC_TX_RAT_CBW_CFG_E  cbw_case_idx,
+                                        MMRFC_TX_ABB_SLICE_E    tx_pga_slice,
+                                        kal_uint32              recal,
+                                        MMRFC_TX_IQDC_RESULT_T *tx_iqdc_calgo_result,
+                                        kal_bool                is_write_back);
+
+void UL1D_RFC_TX_RCF_RESULT_HANDLING(kal_uint32 route_idx,
+                                     kal_int16 *rsel_val,
+                                     kal_int16 *csel_4a_val,
+                                     kal_int16 *csel_1b_val,
+                                     kal_int16 *csel_2a_val,
+                                     kal_bool is_write_back);
+
+
+void UL1D_RFC_TX_LPF_RESULT_HANDLING(kal_uint32 route_idx,
+                                     kal_int16 *rsel_val,
+                                     kal_int16 *csel_val1,
+                                     kal_int16 *csel_val2,
+                                     kal_bool is_write_back);
+
+void UL1D_RFC_TX_CDCOC_RESULT_HANDLING(kal_uint32 route_idx,
+                                          MMRFC_TX_ABB_SLICE_E tx_pga_slice,
+                                          kal_int32 *tx_coarsedc_i,
+                                          kal_int32 *tx_coarsedc_q,
+                                          kal_uint32 recal,
+                                          kal_bool is_write_back);
+
+
+void UL1D_RFC_TX_MOD_RESULT_HANDLING(kal_uint32 route_idx,
+                                     kal_uint32 rfc_rt_idx,
+                                     MMRFC_XL1_BAND_NUM_E band,
+                                     kal_uint32 subband_idx,
+                                     kal_uint32 *tx_drv_ctunemod,
+                                     kal_bool   is_write_back);
+
+#if IS_URF_TRINITY_L||IS_URF_TRINITY_2L
+void UL1D_RFC_TX_PGA_BIAS_RESULT_HANDLING(kal_uint32               route_idx,
+                                          MMRFC_POC_PGA_BIAS_T     *tx_pga_bias_data,
+                                          kal_bool                 is_write_back);
+#endif
+
+void UL1D_RFC_MRX_CDCOC_RESULT_HANDLING(kal_uint32                 route_idx,
+                                        MMRFC_DET_G_IDX            det_gain_idx,
+                                        kal_uint32                 recal,
+                                        MMRFC_POC_MRX_COARSE_DC_T *det_coarse_dc_data,
+                                        kal_bool                   is_write_back
+                                        #if IS_MRX_DC_LOOP_ID_SUPPORT
+                                        ,MMRFC_MRX_LOOP_ID_E       loop_id
+                                        #endif
+                                        );
+
+
+void UL1D_RFC_MRX_DC_RESULT_HANDLING(kal_uint32             route_idx,
+                                     MMRFC_DET_G_IDX        gain_idx,
+                                     kal_uint32             recal,
+                                     MMRFC_DET_DC_RESULT_T* tx_det_dc_calgo_result,
+                                     kal_bool               is_write_back
+                                     #if IS_MRX_DC_LOOP_ID_SUPPORT
+                                     ,MMRFC_MRX_LOOP_ID_E   loop_id
+                                     #endif
+                                     );
+
+
+void UL1D_RFC_MRX_FIIQ_RESULT_HANDLING(kal_uint32                route_idx,
+                                       MMRFC_DET_G_IDX           gain_idx,
+                                       kal_uint32                recal,
+                                       MMRFC_DET_IQAD_RESULT_T*  tx_det_iqdnl_calgo_result,
+                                       kal_bool                  is_write_back);
+
+
+void UL1D_RFC_MRX_FDPCB_RESULT_HANDLING(kal_uint32             route_idx,
+                                        MMRFC_TX_RAT_CBW_CFG_E cbw_case_idx,
+                                        kal_uint32             recal,
+                                        MMRFC_DET_EQLPF_CFG_T* tx_det_pcb_calgo_result,
+                                        kal_bool               is_write_back);
+
+void UL1D_RFC_MRX_FDPCB_RESULT_HANDLING(kal_uint32             route_idx,
+                                        MMRFC_TX_RAT_CBW_CFG_E cbw_case_idx,
+                                        kal_uint32             recal,
+                                        MMRFC_DET_EQLPF_CFG_T* tx_det_pcb_calgo_result,
+                                        kal_bool               is_write_back);
+
+void UL1D_RFC_MRX_PGA_TZA_RESULT_HANDLING(kal_uint32             route_idx,
+                                          MMRFC_MRX_PGA_TZA_BW_E bw_idx,
+                                          kal_int16              *mrx_ctune_pga,
+                                          kal_int16              *mrx_ctune_tza,
+                                          kal_bool               is_write_back);
+
+kal_bool UL1D_RFC_Query_RXDFE_RXIQ_Swap(MMRFC_PATH_BITMAP_E path_sel, MMRFC_RF_RXPD_SEL_E ant_sel);
+
+#if MMRFC_DEBUG_TRACE_RESULT_HANDLE
+
+void UL1D_RFC_VERIFICATION_CRITERION_TX_DNL(kal_uint32  route_idx,
+                                            kal_uint32  i,
+                                            kal_int32   check_criterion,
+                                            kal_int16   dnl_cal,
+                                            kal_int16*  dnl_default,
+                                            kal_bool*   is_pass);
+
+void UL1D_RFC_VERIFICATION_CRITERION_TX_RCF(kal_int16   csel_4a_val,
+                                            kal_uint32  route_idx,
+                                            kal_uint32* criterion_upper,
+                                            kal_uint32* criterion_lower,
+                                            kal_int16*  nominal_value,
+                                            kal_bool*   is_pass);
+
+void UL1D_RFC_VERIFICATION_CRITERION_TX_LPF(kal_uint32  route_idx,
+                                            kal_int16*  csel_val2,
+                                            kal_int16*  nominal_value,
+                                            kal_uint32* criterion_upper,
+                                            kal_uint32* criterion_lower,
+                                            kal_bool*   is_pass);
+
+
+void UL1D_RFC_GET_DEFAULT_TX_RCF(kal_uint32  route_idx,
+                                 kal_int16*  nominal_value);
+
+void UL1D_RFC_GET_DEFAULT_TX_LPF(kal_uint32  route_idx,
+                                 kal_int16*  nominal_value);
+
+#if IS_URF_TRINITY_L||IS_URF_TRINITY_2L
+void UL1D_RFC_GET_DEFAULT_TX_PGA_BIAS(kal_uint32 route_idx, 
+                                      MMRFC_POC_PGA_BIAS_T* p_nominal_val);
+#endif
+
+#endif//MMRFC_DEBUG_TRACE_RESULT_HANDLE
+
+#endif//IS_URF_TRINITYE1_RFC
+
+//WTPC part for NVRAM run time update
+extern void UL1D_HWTPC_NVRAM_init(void);
+
+extern void UL1D_RFC_RxDcocCW(MMRFC_PATH_BITMAP_E path_sel , UMTS_RF_POC_RX_DC_COMP_T* dcoc_comp, MML1_RF_BSIMM_PORT_T port_sel);
+
+extern void UL1D_RF_ContructRxConfigTable();
+
+/************************************************************************************
+*  Global Variables extern (Interface)
+************************************************************************************/
+extern kal_uint32*          wrfcalPocBufferTable              [/*MMPOC_BUFFER_TYPE_NUM_OF*/];
+extern kal_uint32           wrfcalPocBufferSizeTable          [/*MMPOC_BUFFER_TYPE_NUM_OF*/];
+extern MML1_RF_BSIMM_PORT_T wrfcalPocBufferDataPortSelTable   [/*MMPOC_BUFFER_TYPE_NUM_OF*/];
+extern MML1_MIPI_REG_RW_T   wrfcalPocBufferDataMipiCwTypeTable[/*MMPOC_BUFFER_TYPE_NUM_OF*/];
+extern UL1D_RF_CAL_MIPI_DATA_T UMTS_MIPI_PA_ON_DATA           [/*MMPOC_BUFFER_TYPE_NUM_OF*/];
+extern UL1D_RF_CAL_MIPI_DATA_T UMTS_MIPI_PA_OFF_DATA          [/*MMPOC_BUFFER_TYPE_NUM_OF*/];
+
+#if UMTS_POC_RECAL_ENABLE
+extern UMTS_RECAL_DEBUG_T umts_result_rek[UMTS_RECAL_ITER];
+extern UMTS_RECAL_TXDET_INFO_T txdetRecalInfo;
+#endif
+
+
+#if IS_3G_TAS_TST_SUPPORT
+kal_uint16 UL1D_IsQueryingTasStateInfoSupported( void );
+#if IS_3G_UTAS_SUPPORT
+kal_uint16 UL1D_GetTasStateConfigBandList( kal_uint16* band_list );
+void UL1D_GetTasStateConfigByBand(kal_uint16 band, kal_uint16* cal_default_state, kal_uint16* toggled_state_num, kal_uint16* toggled_state_list );
+#else
+kal_uint16 UL1D_QueryTasVersion( void );
+kal_uint16 UL1D_GetTasStateConfigBandNum( void );
+void UL1D_GetTasStateConfig(kal_uint16 buf_length, kal_uint16* band_list, kal_uint16* state_limit, kal_uint16* tas_state );
+#endif
+#endif
+
+#if IS_3G_UTAS_SUPPORT
+   #if IS_3G_GEN97_TAS_SUPPORT
+   void UL1D_Get_META_Default_TAS_State(MMRF_COMMON_BAND_IDX_E band, MML1_COMMON_CAL_ANT_STATE_INFO_T* cal_default_state_pair);
+   kal_uint16 UL1D_Supported_Band_Query(MMRF_COMMON_BAND_IDX_E* band_list);
+   #else
+   kal_uint16 UL1D_Get_Ant_FE_Layout_Group(kal_uint16 band);
+   MMRFD_CUSTOM_TAS_STATE_E UL1D_Get_META_Default_TAS_State(kal_uint16 band);
+   #endif
+#endif
+
+#if ((defined __MD93__) || (defined __MD95__))
+#else
+void UL1D_TXDFE_Serdes_Assert(void);
+#endif
+
+#endif /* End of #ifndef _UL1D_MMRF_INTERFACE_H_ */
+