[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/common/interface/modem/public/lte_rf_public.h b/common/interface/modem/public/lte_rf_public.h
new file mode 100644
index 0000000..4969d98
--- /dev/null
+++ b/common/interface/modem/public/lte_rf_public.h
@@ -0,0 +1,661 @@
+/******************************************************************************
+*  Modification Notice:
+*  --------------------------
+*  This software is modified by MediaTek Inc. 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).
+*
+*******************************************************************************/
+
+/*==============================================================================
+ *             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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================*/
+/* Doxygen Group Header ****************************************************//**
+ * @addtogroup LTE_RF_PUBLIC
+ * @{
+ ******************************************************************************/
+/***************************************************************************//**
+ * @file       lte_rf_public.h
+ * @author     Chester-WY Chen (MTK09580)
+ * @date       2016.09.29
+ * @brief      LTE RF common define for DSP and MCU
+ * @details    provide public/common information in
+ ******************************************************************************/
+
+#ifndef __LTE_RF_PUBLIC_H__
+#define __LTE_RF_PUBLIC_H__
+
+/*******************************************************************************
+ * #include
+ ******************************************************************************/
+
+
+/*******************************************************************************
+ * #define
+ ******************************************************************************/
+
+#define EL1D_RF_ID_MT6176                         0x00000001
+#define EL1D_RF_ID_MT6179                         0x00000002
+#define EL1D_RF_ID_MT6177L                        0x00000004
+#define EL1D_RF_ID_MT6177M                        0x00000008
+#define EL1D_RF_ID_TRINITYE1                      0x00000010
+#define EL1D_RF_ID_TRINITYL                       0x00000020
+#define EL1D_RF_ID_TRINITYE2                      0x00000040
+#define EL1D_RF_ID_TRINITYLE2                     0x00000080
+#define EL1D_RF_ID_TRINITY2L                      0x00000100
+#define EL1D_RF_ID_COLUMBUSE1                     0x00000200
+
+#if (defined __MD93__) 
+/** LTE Common definition */
+//need to find a proper place to put this macro under external folder(ask MMRF)
+#define RF_MAX(m,n)                                       (((m)>(n))?(m):(n))
+//wilson: to-do, need to review this setting based on the global SKU design
+#define LTE_BIT_MASK_BUFFER_SIZE                       (64/32) // support 64 band at max
+//#define LTE_SPEC_SUPPORT_BAND_NUM                      (25)
+#define LTE_TARGET_MAX_SUPPORT_BAND_NUM                (25)
+#define LTE_TARGET_MAX_HPUE_SUPPORT_BAND_NUM           (1)
+#define LTE_TARGET_CCA_SUPPORT_COMB_NUM                (LTE_TARGET_MAX_SUPPORT_BAND_NUM*2)   //1 band can have RX_xC_TX_xC, RX_xC_TX_xA(No class D case, RX_xD_TX_xC, RX_xD_TX_xA, )
+#define LTE_MAX_SUPPORT_BAND_NUM                       (58 + 1) // LTEBandNone
+//wilson:to-do fix it after modifying MIPI freq assert check
+//#define LTE_MAX_SUPPORT_BAND_NUM                       (LTE_TARGET_MAX_SUPPORT_BAND_NUM + 1) // LTEBandNone
+
+// Filter Mode Feature
+#define LTE_FILTER_MAX_SUPPORT_BAND_NUM                 5
+
+/** RF FE Feature related definition */
+// Spilt band Feature
+#define LTE_ERF_SPLIT_BAND                              5 //How many bands need to split? Band28/Band41/Reserved
+#define LTE_ERF_MAX_SPLIT_PART                          3 //Split to at most 3 parts
+
+
+//for Zion(6177M)
+#if defined(MT6177M_LTE_RF) || defined(__FEC_MT6177M_RF__)
+#define LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM             (LTE_TARGET_MAX_SUPPORT_BAND_NUM)
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM                (LTE_TARGET_MAX_SUPPORT_BAND_NUM + (LTE_ERF_MAX_SPLIT_PART-1) * ( LTE_ERF_SPLIT_BAND - 1))
+#define LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM                (LTE_TARGET_MAX_SUPPORT_BAND_NUM + LTE_FILTER_MAX_SUPPORT_BAND_NUM + (LTE_ERF_MAX_SPLIT_PART-1) * ( LTE_ERF_SPLIT_BAND - 1))
+#define LTE_MAX_RX_TX_LINKAGE_NUM                      (LTE_TARGET_MAX_SUPPORT_BAND_NUM + LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM)
+
+#define LTE_ROUTE_TBL_SIZE_MAX                         ( LTE_TARGET_MAX_SUPPORT_BAND_NUM + 1 ) // single band + B44 alternative route
+#define LTE_ROUTE2_TBL_SIZE_MAX                        ( 1 )                                   // no CA support in MT6177M
+#define LTE_ROUTE_TX_TBL_SIZE_MAX                      ( LTE_TARGET_MAX_SUPPORT_BAND_NUM + 1 ) // single band + B44 alternative route
+#define LTE_USAGE_TBL_SIZE_MAX                         LTE_MAX_RX_TX_LINKAGE_NUM
+
+// Enable DL/UL RF CA support only for Merlot with 6177M
+#if (defined(__MT6177M_RFCCA_SUPPORT__) || defined(__FEC_MT6177M_RF__)) && defined(MT6761)
+#define IS_LTE_RF_DL_CA_SUPPORT                       1
+#define IS_LTE_RF_UL_CA_SUPPORT                       1
+#else
+#define IS_LTE_RF_DL_CA_SUPPORT                       0
+#define IS_LTE_RF_UL_CA_SUPPORT                       0
+#endif
+
+//for Bianco(6177L)
+#else
+#define LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM             (160) //80*2
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM                (88)
+#define LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM                (LTE_TARGET_MAX_SUPPORT_BAND_NUM * 2)
+#define LTE_MAX_RX_TX_LINKAGE_NUM                      (LTE_TARGET_MAX_SUPPORT_BAND_NUM + LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM)
+
+#define LTE_ROUTE_TBL_SIZE_MAX                         ( 88 )                    // number of single-band*4(88)
+#define LTE_ROUTE2_TBL_SIZE_MAX                        ( 22 )                    // number of single-band*1(22), (Only 11 band support NCCA in 3GPP spec, and NCCA may have TWO RF route.)
+#define LTE_ROUTE_TX_TBL_SIZE_MAX                      (LTE_TARGET_MAX_SUPPORT_BAND_NUM * 2) // number of single-band*3(66)
+#define LTE_USAGE_TBL_SIZE_MAX                         LTE_MAX_RX_TX_LINKAGE_NUM
+
+#define IS_LTE_RF_DL_CA_SUPPORT                       1
+#define IS_LTE_RF_UL_CA_SUPPORT                       1
+
+#endif
+#define LTE_MAX_SUPPORT_FE_ROUTE_NUM                   RF_MAX((LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM), (LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM))
+
+#elif (defined __MD95__)
+/********************************************************************************************************************
+ *  !!!! [KH] the following defines come from 95DEV, need to refine and co-exsited with the above defines !!!!     **
+*********************************************************************************************************************/
+#define LTE_BIT_MASK_BUFFER_SIZE                       (64/32) // support 64 band at max
+
+#define LTE_TARGET_SUPPORT_BAND_NUM_MAX   (25)
+#define LTE_ROUTE_TX_TBL_SIZE_MAX         (LTE_TARGET_SUPPORT_BAND_NUM_MAX * 2) // number of single-band*2(50) 
+
+/** LTE Common definition */
+//need to find a proper place to put this macro under external folder(ask MMRF)
+#define RF_MAX(m,n)                                       (((m)>(n))?(m):(n))
+//#define LTE_SPEC_SUPPORT_BAND_NUM                      (25)
+#define LTE_TARGET_MAX_SUPPORT_BAND_NUM                LTE_TARGET_SUPPORT_BAND_NUM_MAX
+#define LTE_TARGET_MAX_HPUE_SUPPORT_BAND_NUM           (1)
+#define LTE_TARGET_CCA_SUPPORT_COMB_NUM                (LTE_TARGET_MAX_SUPPORT_BAND_NUM*2)   //1 band can have RX_xC_TX_xC, RX_xC_TX_xA(No class D case, RX_xD_TX_xC, RX_xD_TX_xA, )
+#define LTE_MAX_SUPPORT_BAND_NUM                       (58 + 1) // LTEBandNone
+
+/** RF FE Feature related definition */
+// Spilt band Feature
+#define LTE_ERF_SPLIT_BAND                              5 //How many bands need to split? Band28/Band41/Reserved
+#define LTE_ERF_MAX_SPLIT_PART                          3 //Split to at most 3 parts
+
+//for Trinity E1 &L
+//todo: If DSP needs to use the define as below, they need to add their compile option (like __FEC_MT6177M_RF__ in 93).
+   #if defined(TRINITYE1_LTE_RF) || defined(MT6190_LTE_RF) || defined(MT6190T_LTE_RF) || defined(MT6190M_LTE_RF) || defined(MT6195_LTE_RF)
+
+#define IS_LTE_RF_DL_CA_SUPPORT                       1
+#define IS_LTE_RF_UL_CA_SUPPORT                       1
+#define IS_LTE_RF_DL_MIMO_SUPPORT                    (1)
+
+/**********************************************************************************************************
+ * Route/Usage table size Define                                                                          *
+ *                                                                                                        *
+ * Formula of table size calculation: (XXX_Band_Num * YYY_Route_Per_Band + YYY_Route_Extra)               *
+ *                                                                                                        * 
+ * LTE_TARGET_MAX_SUPPORT_BAND_NUM        (25)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_RX_4X4_BAND_NUM (10)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_NCCA_BAND_NUM   (11)                                                            *
+ *                                                                                                        *
+ * LTE_RX_FE_ROUTE_PER_BAND               (3)            LTE_RX_FE_ROUTE_EXTRA                  (13)      *
+ * LTE_RX_FE_4X4_ROUTE_PER_BAND           (2)            LTE_RX_FE_4X4_ROUTE_EXTRA              (0)       *
+ * LTE_TX_FE_ROUTE_PER_BAND               (2)            LTE_TX_FE_ROUTE_EXTRA                  (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_COMP_ROUTE_PER_BAND       (3)            LTE_RX_TYPE1_COMP_ROUTE_EXTRA          (13)      *
+ * LTE_RX_TYPE2_COMP_ROUTE_PER_BAND       (2)            LTE_RX_TYPE2_COMP_ROUTE_EXTRA          (0)       *
+ * LTE_TX_COMP_ROUTE_PER_BAND             (2)            LTE_TX_COMP_ROUTE_EXTRA                (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_TOTAL_ROUTE_PER_BAND      (3)            LTE_RX_TYPE1_TOTAL_ROUTE_EXTRA         (13)      *
+ * LTE_RX_TYPE2_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE2_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE3_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE3_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE4_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE4_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_TX_TOTAL_ROUTE_PER_BAND            (2)            LTE_TX_TOTAL_ROUTE_EXTRA               (0)       *
+ **********************************************************************************************************/
+
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_4X4_NUM    (20)
+#define LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM        (LTE_TARGET_MAX_SUPPORT_BAND_NUM * 2)
+
+#define LTE_MAX_RX_TYPE1_COMP_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_RX_TYPE2_COMP_ROUTE_NUM        (22)   
+#define LTE_MAX_TX_COMP_ROUTE_NUM              (50)
+
+#define EL1D_ROUTE_TBL_SIZE_MAX                (88)                                                        
+#define EL1D_ROUTE2_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE3_TBL_SIZE_MAX               (50)
+#define EL1D_ROUTE4_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE_TX_TBL_SIZE_MAX             LTE_ROUTE_TX_TBL_SIZE_MAX
+
+/* MAX_SUPPORT_CA_BAND_NUM = TOTAL_HW_COMBINATION(1SRX_MIMO_CFG, 2SRX_ALL_CFG, 3SRX_ALL_CFG, 4SRX_ALL_CFG) */ 
+#define LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM     (300)
+#define LTE_MAX_RX_TX_LINKAGE_NUM              (LTE_TARGET_MAX_SUPPORT_BAND_NUM + LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM)
+                                               /* where the last element is for end pattern for linkage parsing flow.*/
+#define EL1D_USAGE_TBL_SIZE_MAX                (LTE_MAX_RX_TX_LINKAGE_NUM)
+
+#define LTE_MAX_SUPPORT_FE_ROUTE_NUM           RF_MAX((LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM), (LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM))
+
+//CCA Capability API use
+#define LTE_TX_FE_ROUTE_PER_BAND_MAX                   (10)
+#define LTE_TX_COMP_ROUTE_PER_BAND_MAX                 (10)
+
+#elif defined(MT6185M_LTE_RF) || defined(MT6186_LTE_RF)|| defined(MT6186M_LTE_RF)
+#define IS_LTE_RF_DL_CA_SUPPORT                       1
+#define IS_LTE_RF_UL_CA_SUPPORT                       1
+#define IS_LTE_RF_DL_MIMO_SUPPORT                    (1)
+
+/**********************************************************************************************************
+ * Route/Usage table size Define                                                                          *
+ *                                                                                                        *
+ * Formula of table size calculation: (XXX_Band_Num * YYY_Route_Per_Band + YYY_Route_Extra)               *
+ *                                                                                                        * 
+ * LTE_TARGET_MAX_SUPPORT_BAND_NUM        (25)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_RX_4X4_BAND_NUM (10)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_NCCA_BAND_NUM   (11)                                                            *
+ *                                                                                                        *
+ * LTE_RX_FE_ROUTE_PER_BAND               (3)            LTE_RX_FE_ROUTE_EXTRA                  (13)      *
+ * LTE_RX_FE_4X4_ROUTE_PER_BAND           (2)            LTE_RX_FE_4X4_ROUTE_EXTRA              (0)       *
+ * LTE_TX_FE_ROUTE_PER_BAND               (2)            LTE_TX_FE_ROUTE_EXTRA                  (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_COMP_ROUTE_PER_BAND       (3)            LTE_RX_TYPE1_COMP_ROUTE_EXTRA          (13)      *
+ * LTE_RX_TYPE2_COMP_ROUTE_PER_BAND       (2)            LTE_RX_TYPE2_COMP_ROUTE_EXTRA          (0)       *
+ * LTE_TX_COMP_ROUTE_PER_BAND             (2)            LTE_TX_COMP_ROUTE_EXTRA                (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_TOTAL_ROUTE_PER_BAND      (3)            LTE_RX_TYPE1_TOTAL_ROUTE_EXTRA         (13)      *
+ * LTE_RX_TYPE2_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE2_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE3_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE3_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE4_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE4_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_TX_TOTAL_ROUTE_PER_BAND            (2)            LTE_TX_TOTAL_ROUTE_EXTRA               (0)       *
+ **********************************************************************************************************/
+
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_4X4_NUM    (20)
+#define LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM        (LTE_TARGET_MAX_SUPPORT_BAND_NUM * 2)
+
+#define LTE_MAX_RX_TYPE1_COMP_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_RX_TYPE2_COMP_ROUTE_NUM        (22)   
+#define LTE_MAX_TX_COMP_ROUTE_NUM              (50)
+
+#define EL1D_ROUTE_TBL_SIZE_MAX                (88)                                                        
+#define EL1D_ROUTE2_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE3_TBL_SIZE_MAX               (50)
+#define EL1D_ROUTE4_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE_TX_TBL_SIZE_MAX             LTE_ROUTE_TX_TBL_SIZE_MAX
+
+/* MAX_SUPPORT_CA_BAND_NUM = TOTAL_HW_COMBINATION(1SRX_MIMO_CFG, 2SRX_ALL_CFG, 3SRX_ALL_CFG, 4SRX_ALL_CFG) */ 
+#define LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM     (300)
+#define LTE_MAX_RX_TX_LINKAGE_NUM              (LTE_TARGET_MAX_SUPPORT_BAND_NUM + LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM)
+                                               /* where the last element is for end pattern for linkage parsing flow.*/
+#define EL1D_USAGE_TBL_SIZE_MAX                (LTE_MAX_RX_TX_LINKAGE_NUM)
+
+#define LTE_MAX_SUPPORT_FE_ROUTE_NUM           RF_MAX((LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM), (LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM))
+
+//CCA Capability API use
+#define LTE_TX_FE_ROUTE_PER_BAND_MAX                   (10)
+#define LTE_TX_COMP_ROUTE_PER_BAND_MAX                 (10)
+#else
+#define IS_LTE_RF_DL_CA_SUPPORT                       1
+#define IS_LTE_RF_UL_CA_SUPPORT                       1
+#define IS_LTE_RF_DL_MIMO_SUPPORT                    (1)
+
+/**********************************************************************************************************
+ * Route/Usage table size Define                                                                          *
+ *                                                                                                        *
+ * Formula of table size calculation: (XXX_Band_Num * YYY_Route_Per_Band + YYY_Route_Extra)               *
+ *                                                                                                        * 
+ * LTE_TARGET_MAX_SUPPORT_BAND_NUM        (25)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_RX_4X4_BAND_NUM (10)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_NCCA_BAND_NUM   (11)                                                            *
+ *                                                                                                        *
+ * LTE_RX_FE_ROUTE_PER_BAND               (3)            LTE_RX_FE_ROUTE_EXTRA                  (13)      *
+ * LTE_RX_FE_4X4_ROUTE_PER_BAND           (2)            LTE_RX_FE_4X4_ROUTE_EXTRA              (0)       *
+ * LTE_TX_FE_ROUTE_PER_BAND               (2)            LTE_TX_FE_ROUTE_EXTRA                  (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_COMP_ROUTE_PER_BAND       (3)            LTE_RX_TYPE1_COMP_ROUTE_EXTRA          (13)      *
+ * LTE_RX_TYPE2_COMP_ROUTE_PER_BAND       (2)            LTE_RX_TYPE2_COMP_ROUTE_EXTRA          (0)       *
+ * LTE_TX_COMP_ROUTE_PER_BAND             (2)            LTE_TX_COMP_ROUTE_EXTRA                (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_TOTAL_ROUTE_PER_BAND      (3)            LTE_RX_TYPE1_TOTAL_ROUTE_EXTRA         (13)      *
+ * LTE_RX_TYPE2_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE2_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE3_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE3_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE4_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE4_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_TX_TOTAL_ROUTE_PER_BAND            (2)            LTE_TX_TOTAL_ROUTE_EXTRA               (0)       *
+ **********************************************************************************************************/
+
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_4X4_NUM    (20)
+#define LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM        (LTE_TARGET_MAX_SUPPORT_BAND_NUM * 2)
+
+#define LTE_MAX_RX_TYPE1_COMP_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_RX_TYPE2_COMP_ROUTE_NUM        (22)   
+#define LTE_MAX_TX_COMP_ROUTE_NUM              (50)
+
+#define EL1D_ROUTE_TBL_SIZE_MAX                (88)                                                        
+#define EL1D_ROUTE2_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE3_TBL_SIZE_MAX               (50)
+#define EL1D_ROUTE4_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE_TX_TBL_SIZE_MAX             LTE_ROUTE_TX_TBL_SIZE_MAX
+
+/* MAX_SUPPORT_CA_BAND_NUM = TOTAL_HW_COMBINATION(1SRX_MIMO_CFG, 2SRX_ALL_CFG, 3SRX_ALL_CFG, 4SRX_ALL_CFG) */ 
+#define LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM     (300)
+#define LTE_MAX_RX_TX_LINKAGE_NUM              (LTE_TARGET_MAX_SUPPORT_BAND_NUM + LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM)
+                                               /* where the last element is for end pattern for linkage parsing flow.*/
+#define EL1D_USAGE_TBL_SIZE_MAX                (LTE_MAX_RX_TX_LINKAGE_NUM)
+
+#define LTE_MAX_SUPPORT_FE_ROUTE_NUM           RF_MAX((LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM), (LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM))
+
+//CCA Capability API use
+#define LTE_TX_FE_ROUTE_PER_BAND_MAX                   (10)
+#define LTE_TX_COMP_ROUTE_PER_BAND_MAX                 (10)
+#endif
+
+#elif (defined __MD97__)||(defined __MD97P__)
+/********************************************************************************************************************
+ *  !!!! [KH] the following defines come from 95DEV, need to refine and co-exsited with the above defines !!!!     **
+*********************************************************************************************************************/
+#define LTE_BIT_MASK_BUFFER_SIZE                       (96/32) // support 96 band at max
+#if defined(__SINGLE_BAND_NUM_EXTENDED__)
+#define LTE_TARGET_SUPPORT_BAND_NUM_MAX   (35)
+#else
+#define LTE_TARGET_SUPPORT_BAND_NUM_MAX   (25)
+#endif
+#define LTE_ROUTE_TX_TBL_SIZE_MAX         (LTE_TARGET_SUPPORT_BAND_NUM_MAX * 2) // number of single-band*2(50) 
+
+/** LTE Common definition */
+//need to find a proper place to put this macro under external folder(ask MMRF)
+#define RF_MAX(m,n)                                       (((m)>(n))?(m):(n))
+//#define LTE_SPEC_SUPPORT_BAND_NUM                      (25)
+#define LTE_TARGET_MAX_SUPPORT_BAND_NUM                LTE_TARGET_SUPPORT_BAND_NUM_MAX
+#define LTE_TARGET_MAX_HPUE_SUPPORT_BAND_NUM           (1)
+#define LTE_TARGET_CCA_SUPPORT_COMB_NUM                (LTE_TARGET_MAX_SUPPORT_BAND_NUM*2)   //1 band can have RX_xC_TX_xC, RX_xC_TX_xA(No class D case, RX_xD_TX_xC, RX_xD_TX_xA, )
+#define LTE_MAX_SUPPORT_BAND_NUM                       (58 + 1) // LTEBandNone
+
+/** RF FE Feature related definition */
+// Spilt band Feature
+#define LTE_ERF_SPLIT_BAND                              5 //How many bands need to split? Band28/Band41/Reserved
+#define LTE_ERF_MAX_SPLIT_PART                          3 //Split to at most 3 parts
+
+//for Trinity E1 &L
+//todo: If DSP needs to use the define as below, they need to add their compile option (like __FEC_MT6177M_RF__ in 93).
+   #if defined(TRINITYE1_LTE_RF) || defined(MT6190_LTE_RF) || defined(MT6190T_LTE_RF) || defined(MT6190M_LTE_RF) || defined(MT6195_LTE_RF)
+
+#define IS_LTE_RF_DL_CA_SUPPORT                       1
+#define IS_LTE_RF_UL_CA_SUPPORT                       1
+#define IS_LTE_RF_DL_MIMO_SUPPORT                    (1)
+
+/**********************************************************************************************************
+ * Route/Usage table size Define                                                                          *
+ *                                                                                                        *
+ * Formula of table size calculation: (XXX_Band_Num * YYY_Route_Per_Band + YYY_Route_Extra)               *
+ *                                                                                                        * 
+ * LTE_TARGET_MAX_SUPPORT_BAND_NUM        (25)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_RX_4X4_BAND_NUM (10)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_NCCA_BAND_NUM   (11)                                                            *
+ *                                                                                                        *
+ * LTE_RX_FE_ROUTE_PER_BAND               (3)            LTE_RX_FE_ROUTE_EXTRA                  (13)      *
+ * LTE_RX_FE_4X4_ROUTE_PER_BAND           (2)            LTE_RX_FE_4X4_ROUTE_EXTRA              (0)       *
+ * LTE_TX_FE_ROUTE_PER_BAND               (2)            LTE_TX_FE_ROUTE_EXTRA                  (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_COMP_ROUTE_PER_BAND       (3)            LTE_RX_TYPE1_COMP_ROUTE_EXTRA          (13)      *
+ * LTE_RX_TYPE2_COMP_ROUTE_PER_BAND       (2)            LTE_RX_TYPE2_COMP_ROUTE_EXTRA          (0)       *
+ * LTE_TX_COMP_ROUTE_PER_BAND             (2)            LTE_TX_COMP_ROUTE_EXTRA                (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_TOTAL_ROUTE_PER_BAND      (3)            LTE_RX_TYPE1_TOTAL_ROUTE_EXTRA         (13)      *
+ * LTE_RX_TYPE2_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE2_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE3_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE3_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE4_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE4_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_TX_TOTAL_ROUTE_PER_BAND            (2)            LTE_TX_TOTAL_ROUTE_EXTRA               (0)       *
+ **********************************************************************************************************/
+
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_4X4_NUM    (20)
+#define LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM        (LTE_TARGET_MAX_SUPPORT_BAND_NUM * 2)
+
+#define LTE_MAX_RX_TYPE1_COMP_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_RX_TYPE2_COMP_ROUTE_NUM        (22)   
+#define LTE_MAX_TX_COMP_ROUTE_NUM              (50)
+
+#define EL1D_ROUTE_TBL_SIZE_MAX                (88)                                                        
+#define EL1D_ROUTE2_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE3_TBL_SIZE_MAX               (50)
+#define EL1D_ROUTE4_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE_TX_TBL_SIZE_MAX             LTE_ROUTE_TX_TBL_SIZE_MAX
+
+/* MAX_SUPPORT_CA_BAND_NUM = TOTAL_HW_COMBINATION(1SRX_MIMO_CFG, 2SRX_ALL_CFG, 3SRX_ALL_CFG, 4SRX_ALL_CFG) */ 
+#define LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM     (300)
+#define LTE_MAX_RX_TX_LINKAGE_NUM              (LTE_TARGET_MAX_SUPPORT_BAND_NUM + LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM)
+#define EL1D_USAGE_TBL_SIZE_MAX                (LTE_MAX_RX_TX_LINKAGE_NUM)
+
+#define LTE_MAX_SUPPORT_FE_ROUTE_NUM           RF_MAX((LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM), (LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM))
+
+//CCA Capability API use
+#define LTE_TX_FE_ROUTE_PER_BAND_MAX                   (10)
+#define LTE_TX_COMP_ROUTE_PER_BAND_MAX                 (10)
+
+   #elif defined(MT6185M_LTE_RF)
+#define IS_LTE_RF_DL_CA_SUPPORT                       1
+#define IS_LTE_RF_UL_CA_SUPPORT                       1
+#define IS_LTE_RF_DL_MIMO_SUPPORT                    (1)
+
+/**********************************************************************************************************
+ * Route/Usage table size Define                                                                          *
+ *                                                                                                        *
+ * Formula of table size calculation: (XXX_Band_Num * YYY_Route_Per_Band + YYY_Route_Extra)               *
+ *                                                                                                        * 
+ * LTE_TARGET_MAX_SUPPORT_BAND_NUM        (25)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_RX_4X4_BAND_NUM (10)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_NCCA_BAND_NUM   (11)                                                            *
+ *                                                                                                        *
+ * LTE_RX_FE_ROUTE_PER_BAND               (3)            LTE_RX_FE_ROUTE_EXTRA                  (13)      *
+ * LTE_RX_FE_4X4_ROUTE_PER_BAND           (2)            LTE_RX_FE_4X4_ROUTE_EXTRA              (0)       *
+ * LTE_TX_FE_ROUTE_PER_BAND               (2)            LTE_TX_FE_ROUTE_EXTRA                  (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_COMP_ROUTE_PER_BAND       (3)            LTE_RX_TYPE1_COMP_ROUTE_EXTRA          (13)      *
+ * LTE_RX_TYPE2_COMP_ROUTE_PER_BAND       (2)            LTE_RX_TYPE2_COMP_ROUTE_EXTRA          (0)       *
+ * LTE_TX_COMP_ROUTE_PER_BAND             (2)            LTE_TX_COMP_ROUTE_EXTRA                (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_TOTAL_ROUTE_PER_BAND      (3)            LTE_RX_TYPE1_TOTAL_ROUTE_EXTRA         (13)      *
+ * LTE_RX_TYPE2_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE2_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE3_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE3_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE4_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE4_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_TX_TOTAL_ROUTE_PER_BAND            (2)            LTE_TX_TOTAL_ROUTE_EXTRA               (0)       *
+ **********************************************************************************************************/
+
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_4X4_NUM    (20)
+#define LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM        (LTE_TARGET_MAX_SUPPORT_BAND_NUM * 2)
+
+#define LTE_MAX_RX_TYPE1_COMP_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_RX_TYPE2_COMP_ROUTE_NUM        (22)   
+#define LTE_MAX_TX_COMP_ROUTE_NUM              (50)
+
+#define EL1D_ROUTE_TBL_SIZE_MAX                (88)                                                        
+#define EL1D_ROUTE2_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE3_TBL_SIZE_MAX               (50)
+#define EL1D_ROUTE4_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE_TX_TBL_SIZE_MAX             LTE_ROUTE_TX_TBL_SIZE_MAX
+
+/* MAX_SUPPORT_CA_BAND_NUM = TOTAL_HW_COMBINATION(1SRX_MIMO_CFG, 2SRX_ALL_CFG, 3SRX_ALL_CFG, 4SRX_ALL_CFG) */ 
+#define LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM     (300)
+#define LTE_MAX_RX_TX_LINKAGE_NUM              (LTE_TARGET_MAX_SUPPORT_BAND_NUM + LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM)
+#define EL1D_USAGE_TBL_SIZE_MAX                (LTE_MAX_RX_TX_LINKAGE_NUM)
+
+#define LTE_MAX_SUPPORT_FE_ROUTE_NUM           RF_MAX((LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM), (LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM))
+
+//CCA Capability API use
+#define LTE_TX_FE_ROUTE_PER_BAND_MAX                   (10)
+#define LTE_TX_COMP_ROUTE_PER_BAND_MAX                 (10)
+   #else
+#define IS_LTE_RF_DL_CA_SUPPORT                       1
+#define IS_LTE_RF_UL_CA_SUPPORT                       1
+#define IS_LTE_RF_DL_MIMO_SUPPORT                    (1)
+
+/**********************************************************************************************************
+ * Route/Usage table size Define                                                                          *
+ *                                                                                                        *
+ * Formula of table size calculation: (XXX_Band_Num * YYY_Route_Per_Band + YYY_Route_Extra)               *
+ *                                                                                                        * 
+ * LTE_TARGET_MAX_SUPPORT_BAND_NUM        (25)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_RX_4X4_BAND_NUM (10)                                                            *
+ * LTE_TARGET_MAX_SUPPORT_NCCA_BAND_NUM   (11)                                                            *
+ *                                                                                                        *
+ * LTE_RX_FE_ROUTE_PER_BAND               (3)            LTE_RX_FE_ROUTE_EXTRA                  (13)      *
+ * LTE_RX_FE_4X4_ROUTE_PER_BAND           (2)            LTE_RX_FE_4X4_ROUTE_EXTRA              (0)       *
+ * LTE_TX_FE_ROUTE_PER_BAND               (2)            LTE_TX_FE_ROUTE_EXTRA                  (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_COMP_ROUTE_PER_BAND       (3)            LTE_RX_TYPE1_COMP_ROUTE_EXTRA          (13)      *
+ * LTE_RX_TYPE2_COMP_ROUTE_PER_BAND       (2)            LTE_RX_TYPE2_COMP_ROUTE_EXTRA          (0)       *
+ * LTE_TX_COMP_ROUTE_PER_BAND             (2)            LTE_TX_COMP_ROUTE_EXTRA                (0)       *
+ *                                                                                                        *
+ * LTE_RX_TYPE1_TOTAL_ROUTE_PER_BAND      (3)            LTE_RX_TYPE1_TOTAL_ROUTE_EXTRA         (13)      *
+ * LTE_RX_TYPE2_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE2_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE3_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE3_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_RX_TYPE4_TOTAL_ROUTE_PER_BAND      (2)            LTE_RX_TYPE4_TOTAL_ROUTE_EXTRA         (0)       *
+ * LTE_TX_TOTAL_ROUTE_PER_BAND            (2)            LTE_TX_TOTAL_ROUTE_EXTRA               (0)       *
+ **********************************************************************************************************/
+
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_SUPPORT_RX_FE_ROUTE_4X4_NUM    (20)
+#define LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM        (LTE_TARGET_MAX_SUPPORT_BAND_NUM * 2)
+
+#define LTE_MAX_RX_TYPE1_COMP_ROUTE_NUM        (88)                                                        
+#define LTE_MAX_RX_TYPE2_COMP_ROUTE_NUM        (22)   
+#define LTE_MAX_TX_COMP_ROUTE_NUM              (50)
+
+#define EL1D_ROUTE_TBL_SIZE_MAX                (88)                                                        
+#define EL1D_ROUTE2_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE3_TBL_SIZE_MAX               (50)
+#define EL1D_ROUTE4_TBL_SIZE_MAX               (22)
+#define EL1D_ROUTE_TX_TBL_SIZE_MAX             LTE_ROUTE_TX_TBL_SIZE_MAX
+
+/* MAX_SUPPORT_CA_BAND_NUM = TOTAL_HW_COMBINATION(1SRX_MIMO_CFG, 2SRX_ALL_CFG, 3SRX_ALL_CFG, 4SRX_ALL_CFG) */ 
+#define LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM     (300)
+#define LTE_MAX_RX_TX_LINKAGE_NUM              (LTE_TARGET_MAX_SUPPORT_BAND_NUM + LTE_TARGET_MAX_SUPPORT_CA_BAND_NUM)
+#define EL1D_USAGE_TBL_SIZE_MAX                (LTE_MAX_RX_TX_LINKAGE_NUM)
+
+#define LTE_MAX_SUPPORT_FE_ROUTE_NUM           RF_MAX((LTE_MAX_SUPPORT_RX_FE_ROUTE_NUM), (LTE_MAX_SUPPORT_TX_FE_ROUTE_NUM))
+
+//CCA Capability API use
+#define LTE_TX_FE_ROUTE_PER_BAND_MAX                   (10)
+#define LTE_TX_COMP_ROUTE_PER_BAND_MAX                 (10)
+   #endif
+
+#else
+#error "Should define at least a kind of BB being used."
+#endif
+
+/*******************************************************************************
+ * Typedef
+ ******************************************************************************/
+
+/*******************************************************************************
+ * Constant
+ ******************************************************************************/
+
+/*******************************************************************************
+ * Global variables (Extern)
+ ******************************************************************************/
+
+/*******************************************************************************
+ * Global Functions Prototype (Interface)
+ ******************************************************************************/
+
+#endif /*__LTE_RF_PUBLIC_H__*/
+
+/* Doxygen Group End ***************************************************//**@}*/