[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 ***************************************************//**@}*/