[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/l1/gl1/external/l1_option.h b/mcu/interface/l1/gl1/external/l1_option.h
new file mode 100644
index 0000000..2d3c8bd
--- /dev/null
+++ b/mcu/interface/l1/gl1/external/l1_option.h
@@ -0,0 +1,888 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   l1_option.h
+ *
+ * Project:
+ * --------
+ *   MT6280
+ *
+ * Description:
+ * ------------
+ *   The global compile option definition of L1
+ *
+ * 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!
+ *******************************************************************************/
+
+#ifndef __L1_OPTION_H__
+#define __L1_OPTION_H__
+
+/***************************************************************************************************************************
+ * Chip ID & compile option definition for other modules                                                                   *
+ ***************************************************************************************************************************/
+
+#if L1D_WT_COBIN_ARCHITECTURE_SUPPORT && L1D_WT_COBIN_UT_BEBUG && !L1D_WT_COBIN_UT_W_ONLY_BUILD && !L1D_WT_CBBIN_UT_T_ONLY_BUILD
+  #if !defined(__UMTS_FDD_MODE__)
+#define __UMTS_FDD_MODE__ 1
+  #endif
+  #if !defined(__MTK_UL1_FDD__)
+#define __MTK_UL1_FDD__ 1
+  #endif
+  #if !defined(__AST_TL1_TDD__)
+#define __AST_TL1_TDD__ 1
+  #endif
+  #if !defined(__UMTS_TDD128_MODE__)
+#define __UMTS_TDD128_MODE__ 1
+  #endif
+#endif
+
+/* Chip ID */
+#if defined(L1_SIM) || defined(ESIM_BUILD_CONFIG) || defined(__UE_SIMULATOR__)/*  L1_SIM, ESIM-MOLY and UESIM-MOLY */
+   #ifdef L1D_TEST
+#define MD_DRV_IS_CHIP_MT6293                            ((defined MT6293) || (defined MT6763) || (defined MT6739) || (defined MT6771) || (defined MT6765))
+#define MD_DRV_IS_CHIP_MT6763                            (defined MT6763)
+#define MD_DRV_IS_CHIP_MT6739                            (defined MT6739)
+#define MD_DRV_IS_CHIP_MT6771                            (defined MT6771)
+#define MD_DRV_IS_CHIP_MT6765                            (defined MT6765)
+#define MD_DRV_IS_CHIP_MT6295                            ((defined MT6295M) || (defined MT3967) || (defined MT6779))
+#define MD_DRV_IS_CHIP_MT3967                            (defined MT3967)
+#define MD_DRV_IS_CHIP_MT6779                            (defined MT6779)
+#define MD_DRV_IS_CHIP_MT6297                            ((defined MT6297) || (defined MT6885) || (defined MERCURY) || (defined MT6873) || (defined MT6853) || (defined MT6833) || (defined MT6880) || (defined MT6890) || (defined MT2735) || (defined MT6893) || (defined MT6877) || (defined MT6855))
+#define MD_DRV_IS_CHIP_MT6885                            ((defined MT6885) || (defined MERCURY) || (defined MT6873) || (defined MT6853) || (defined MT6833) || (defined MT6880) || (defined MT6890) || (defined MT2735) || (defined MT6893) || (defined MT6877) || (defined MT6855)) 
+#define MD_DRV_IS_CHIP_MERCURY                           (defined MERCURY)
+#define MD_DRV_IS_CHIP_MT6873                            (defined MT6873)
+#define MD_DRV_IS_CHIP_MT6853                            (defined MT6853)
+#define MD_DRV_IS_CHIP_MT6833                            (defined MT6833)
+#define MD_DRV_IS_CHIP_MT6880                            (defined MT6880)
+#define MD_DRV_IS_CHIP_MT6890                            (defined MT6890)
+#define MD_DRV_IS_CHIP_MT2735                            (defined MT2735)
+#define MD_DRV_IS_CHIP_MT6893                            (defined MT6893)
+#define MD_DRV_IS_CHIP_MT6877                            (defined MT6877)
+#define MD_DRV_IS_CHIP_MT6855                            (defined MT6855)
+#define MD_DRV_IS_CHIP_MT6292                            (defined ELBRUS) || (defined MT6799)
+#define MD_DRV_IS_CHIP_MT6755                            (defined MT6755)
+#define MD_DRV_IS_CHIP_TK6291                            (defined TK6291) || (defined MT6291)
+   #else
+#define MD_DRV_IS_CHIP_TK6291                            (defined TK6291) || (defined MT6291)
+#define MD_DRV_IS_CHIP_MT6755                            (defined MT6755)
+#define MD_DRV_IS_CHIP_MT6292                            ((defined ELBRUS) || (defined MT6799))
+#define MD_DRV_IS_CHIP_MT6293                            ((defined MT6293) || (defined MT6763) || (defined MT6739) || (defined MT6771) || (defined MT6765))
+#define MD_DRV_IS_CHIP_MT6763                            (defined MT6763)
+#define MD_DRV_IS_CHIP_MT6739                            (defined MT6739)
+#define MD_DRV_IS_CHIP_MT6771                            (defined MT6771)
+#define MD_DRV_IS_CHIP_MT6765                            (defined MT6765)
+#define MD_DRV_IS_CHIP_MT6295                            ((defined MT6295M) || (defined MT3967) || (defined MT6779))
+#define MD_DRV_IS_CHIP_MT3967                            (defined MT3967)
+#define MD_DRV_IS_CHIP_MT6779                            (defined MT6779)
+#define MD_DRV_IS_CHIP_MT6297                            ((defined MT6297) || (defined MT6885) || (defined MERCURY) || (defined MT6873) || (defined MT6853) || (defined MT6833) || (defined MT6880) || (defined MT6890) || (defined MT2735) || (defined MT6893) || (defined MT6877) || (defined MT6855))
+#define MD_DRV_IS_CHIP_MT6885                            ((defined MT6885)  || (defined MERCURY) || (defined MT6873) || (defined MT6853) || (defined MT6833) || (defined MT6880) || (defined MT6890) || (defined MT2735) || (defined MT6893) || (defined MT6877) || (defined MT6855))
+#define MD_DRV_IS_CHIP_MERCURY                           (defined MERCURY)
+#define MD_DRV_IS_CHIP_MT6873                            (defined MT6873)
+#define MD_DRV_IS_CHIP_MT6853                            (defined MT6853)
+#define MD_DRV_IS_CHIP_MT6833                            (defined MT6833)
+#define MD_DRV_IS_CHIP_MT6880                            (defined MT6880)
+#define MD_DRV_IS_CHIP_MT6890                            (defined MT6890)
+#define MD_DRV_IS_CHIP_MT2735                            (defined MT2735)
+#define MD_DRV_IS_CHIP_MT6893                            (defined MT6893)
+#define MD_DRV_IS_CHIP_MT6877                            (defined MT6877)
+#define MD_DRV_IS_CHIP_MT6855                            (defined MT6855)
+   #endif                                                
+#else
+#define MD_DRV_IS_CHIP_MT6276                            (defined MT6276)
+#define MD_DRV_IS_CHIP_MT6573                            (defined MT6573)
+#define MD_DRV_IS_CHIP_MT6575                           ((defined MT6575) || (defined MT6577))
+#define MD_DRV_IS_CHIP_MT6250                            (defined MT6250)
+#define MD_DRV_IS_CHIP_MT6280                            (defined MT6280)
+#define MD_DRV_IS_CHIP_MT6583_MD1                       ((((defined MT6583)||(defined MT6589)) && (defined __MD1__)))
+#define MD_DRV_IS_CHIP_MT6583_MD2                       ((((defined MT6583)||(defined MT6589)) && (defined __MD2__)))
+#define MD_DRV_IS_CHIP_MT6572                           ((defined MT6572) || (defined MT6582))
+#define MD_DRV_IS_CHIP_MT6582                            (defined MT6582)
+#define MD_DRV_IS_CHIP_MT6290                            (defined MT6290)
+#define MD_DRV_IS_CHIP_MT6595                            ((defined MT6595))
+#define MD_DRV_IS_CHIP_MT6752_MD1                       ((defined MT6752) && (defined __MD1__))
+#define MD_DRV_IS_CHIP_MT6752_MD2                       ((defined MT6752) && (defined __MD2__))
+#define MD_DRV_IS_CHIP_TK6291                            (defined TK6291)
+#define MD_DRV_IS_CHIP_MT6755                            (defined MT6755)
+#define MD_DRV_IS_CHIP_MT6292                           ((defined ELBRUS) || (defined MT6799))
+#define MD_DRV_IS_CHIP_MT6799                            (defined MT6799)
+#define MD_DRV_IS_CHIP_MT6293                           ((defined MT6293) || (defined MT6763) || (defined MT6739) || (defined MT6771) || (defined MT6765))
+#define MD_DRV_IS_CHIP_MT6763                            (defined MT6763)
+#define MD_DRV_IS_CHIP_MT6739                            (defined MT6739)
+#define MD_DRV_IS_CHIP_MT6771                            (defined MT6771)
+#define MD_DRV_IS_CHIP_MT6765                            (defined MT6765)
+#define MD_DRV_IS_CHIP_MT6295                            ((defined MT6295M) || (defined MT3967) || (defined MT6779))
+#define MD_DRV_IS_CHIP_MT3967                            (defined MT3967)
+#define MD_DRV_IS_CHIP_MT6779                            (defined MT6779)
+#define MD_DRV_IS_CHIP_MT6297                            ((defined MT6297) || (defined MT6885) || (defined MERCURY) || (defined MT6873) || (defined MT6853) || (defined MT6833) || (defined MT6880) || (defined MT6890) || (defined MT2735) || (defined MT6893) || (defined MT6877) || (defined MT6855))
+#define MD_DRV_IS_CHIP_MT6885                            ((defined MT6885)  || (defined MERCURY) || (defined MT6873) || (defined MT6853) || (defined MT6833) || (defined MT6880) || (defined MT6890) || (defined MT2735) || (defined MT6893) || (defined MT6877) || (defined MT6855))
+#define MD_DRV_IS_CHIP_MERCURY                           (defined MERCURY)
+#define MD_DRV_IS_CHIP_MT6873                            (defined MT6873)
+#define MD_DRV_IS_CHIP_MT6853                            (defined MT6853)
+#define MD_DRV_IS_CHIP_MT6833                            (defined MT6833)
+#define MD_DRV_IS_CHIP_MT6880                            (defined MT6880)
+#define MD_DRV_IS_CHIP_MT6890                            (defined MT6890)
+#define MD_DRV_IS_CHIP_MT2735                            (defined MT2735)
+#define MD_DRV_IS_CHIP_MT6893                            (defined MT6893)
+#define MD_DRV_IS_CHIP_MT6877                            (defined MT6877)
+#define MD_DRV_IS_CHIP_MT6855                            (defined MT6855)
+#endif
+
+// follow l1d_cid.h for build pass
+// Should be deleted when running MT6293
+#if ( defined(L1_SIM) || (defined(ESIM_BUILD_CONFIG) && (ESIM_BUILD_CONFIG == ESIM_MULTI_MODE_ON_FIBERS)) )&& ( MD_DRV_IS_CHIP_MT6293 || MD_DRV_IS_CHIP_MT6295 || MD_DRV_IS_CHIP_MT6297 )
+   #ifdef L1D_TEST
+      #if (defined __MD93__)
+#undef   MD_DRV_IS_CHIP_MT6293
+#define  MD_DRV_IS_CHIP_MT6293     (1)
+#undef   MD_DRV_IS_CHIP_MT6292
+#define  MD_DRV_IS_CHIP_MT6292     (0)
+      #endif
+   #else
+      #if (defined __MD93__)
+#undef   MD_DRV_IS_CHIP_MT6293
+#define  MD_DRV_IS_CHIP_MT6293     (0)
+#undef   MD_DRV_IS_CHIP_MT6295
+#define  MD_DRV_IS_CHIP_MT6295     (0)
+#undef   MD_DRV_IS_CHIP_MT6297
+#define  MD_DRV_IS_CHIP_MT6297     (0)
+#undef   MD_DRV_IS_CHIP_MT6292
+#define  MD_DRV_IS_CHIP_MT6292     (1)
+      #endif
+      #if (defined __MD95__)
+#undef   MD_DRV_IS_CHIP_MT6293
+#define  MD_DRV_IS_CHIP_MT6293     (0)
+#undef   MD_DRV_IS_CHIP_MT6295
+#define  MD_DRV_IS_CHIP_MT6295     (1)
+#undef   MD_DRV_IS_CHIP_MT6297
+#define  MD_DRV_IS_CHIP_MT6297     (0)
+#undef   MD_DRV_IS_CHIP_MT6292
+#define  MD_DRV_IS_CHIP_MT6292     (0)
+      #endif
+   #endif
+#endif
+
+#if MD_DRV_IS_CHIP_MT6293 || MD_DRV_IS_CHIP_MT6295 || MD_DRV_IS_CHIP_MT6297
+#define MD_DRV_IS_MD_DSP_DM_4BYTE_ALIGN_CHIP   (1)
+#else
+#define MD_DRV_IS_MD_DSP_DM_4BYTE_ALIGN_CHIP   (0)
+#endif
+
+/* Chip ID consistency check */
+#if MD_DRV_IS_CHIP_MT6276 || MD_DRV_IS_CHIP_MT6573 || MD_DRV_IS_CHIP_MT6575 || MD_DRV_IS_CHIP_MT6250 || MD_DRV_IS_CHIP_MT6280 || MD_DRV_IS_CHIP_MT6583_MD1 || MD_DRV_IS_CHIP_MT6583_MD2 || MD_DRV_IS_CHIP_MT6572 || MD_DRV_IS_CHIP_MT6290 || MD_DRV_IS_CHIP_MT6595 || MD_DRV_IS_CHIP_MT6752_MD1 || MD_DRV_IS_CHIP_MT6752_MD2 || MD_DRV_IS_CHIP_TK6291 || MD_DRV_IS_CHIP_MT6755 || MD_DRV_IS_CHIP_MT6292 || MD_DRV_IS_CHIP_MT6293 || MD_DRV_IS_CHIP_MT6295 || MD_DRV_IS_CHIP_MT6297
+#else
+#error "Please check the chip ID defined in l1d_cid.h"
+#endif
+
+/* RF ID */
+#define MD_DRV_IS_RF_MT6280RF                            (defined MT6280RF_2G_RF)
+#define MD_DRV_IS_RF_MT6169                              (defined MT6169_2G_RF)
+#define MD_DRV_IS_RF_MT6166                              (defined MT6166_2G_RF)
+#define MD_DRV_IS_RF_MT6165                              (defined MT6165_2G_RF)
+#define MD_DRV_IS_RF_MT6176                              (defined MT6176_2G_RF)
+#define MD_DRV_IS_RF_MT6179                              (defined MT6179_2G_RF)
+#define MD_DRV_IS_RF_MT6177L                             (defined MT6177L_2G_RF)
+#define MD_DRV_IS_RF_MT6177M                             (defined MT6177M_2G_RF)
+#define MD_DRV_IS_RF_TRINITYE1                           (defined TRINITYE1_2G_RF)
+#define MD_DRV_IS_RF_TRINITYL                            ((defined TRINITYL_2G_RF)||(defined MT6185M_2G_RF))
+#define MD_DRV_IS_RF_MT6186                              (defined MT6186_2G_RF)
+#define MD_DRV_IS_RF_MT6186M                             (defined MT6186M_2G_RF)
+#define MD_DRV_IS_RF_MT6190T                             ((defined MT6190T_2G_RF)||(defined MT6190_2G_RF)||(defined MT6190M_2G_RF)||(defined MT6195_2G_RF))
+#define MD_DRV_IS_RF_MT6190                              ((defined MT6190_2G_RF)||(defined MT6190M_2G_RF))
+#define MD_DRV_IS_RF_MT6190M                             (defined MT6190M_2G_RF)
+
+
+/* ======================================================================================================================= */
+
+// Definition of GSM/GPRS/EGPRS support
+#if (defined MODE_EGPRS) || (defined MTK_EGPRS_ENABLE) || (defined __EGPRS_MODE__)
+#define MD_DRV_IS_GSM                                     0
+#define MD_DRV_IS_GPRS                                    1
+#define MD_DRV_IS_EGPRS                                   1
+#elif ((defined MODE_GPRS) || (defined __PS_SERVICE__) || (defined MTK_GPRS_ENABLE) || (GPRS==1))
+#define MD_DRV_IS_GSM                                     0
+#define MD_DRV_IS_GPRS                                    1
+#define MD_DRV_IS_EGPRS                                   0
+#else
+#define MD_DRV_IS_GSM                                     1
+#define MD_DRV_IS_GPRS                                    0
+#define MD_DRV_IS_EGPRS                                   0
+#endif
+
+// EPSK TX Support
+#if (defined __EPSK_TX__)
+#define MD_DRV_IS_EPSK_TX_SUPPORT                         1
+#else
+#define MD_DRV_IS_EPSK_TX_SUPPORT                         0
+#endif
+
+// Centralized sleep mode
+#define MD_DRV_IS_CENTRALIZED_SMM_CHIP                    1
+
+// TDD Dual Mode Feature Option
+#if ((defined __UMTS_TDD128_MODE__) && MD_DRV_IS_CHIP_MT6250)
+#define MD_DRV_IS_AST_B2S_SUPPORT                         1
+#else
+#define MD_DRV_IS_AST_B2S_SUPPORT                         0
+#endif
+
+// For feature of split binary: MAUI/FACTORY bin
+#if (defined __FACTORY_BIN__) || !(defined __SPLIT_BINARY__)
+#define MD_DRV_IS_FOR_FACTORY_MODE_ONLY                   1
+#else
+#define MD_DRV_IS_FOR_FACTORY_MODE_ONLY                   0
+#endif
+
+// Factory mode compile option: FHC & NSFT
+#if MD_DRV_IS_FOR_FACTORY_MODE_ONLY
+#define MD_DRV_IS_FHC_SUPPORT                             1
+#define MD_DRV_IS_NSFT_SUPPORT                            1
+#define MD_DRV_IS_SINGLE_END_BER_SUPPORT                  1
+#define MD_DRV_IS_NSFT_SACCH_TEST_ITEM_SUPPORT            1
+#else
+#define MD_DRV_IS_FHC_SUPPORT                             0
+#define MD_DRV_IS_NSFT_SUPPORT                            0
+#define MD_DRV_IS_SINGLE_END_BER_SUPPORT                  0
+#define MD_DRV_IS_NSFT_SACCH_TEST_ITEM_SUPPORT            0
+#endif
+
+#if MD_DRV_IS_NSFT_SUPPORT && MD_DRV_IS_EPSK_TX_SUPPORT
+#define MD_DRV_IS_NSFT_LIST_MODE_SUPPORT                  1
+#else
+#define MD_DRV_IS_NSFT_LIST_MODE_SUPPORT                  0
+#endif
+
+// Multi-slot TX Support in GSM only
+#if MD_DRV_IS_FHC_SUPPORT && MD_DRV_IS_GSM
+#define MD_DRV_IS_MULTISLOT_TX_SUPPORT                    0
+#else
+#define MD_DRV_IS_MULTISLOT_TX_SUPPORT                    0
+#endif
+
+// AFC 33-section Calibration
+#if defined MT6253T || defined MT6253L
+#define MD_DRV_IS_VCXO_LC_SUPPORT                         1
+#else
+#define MD_DRV_IS_VCXO_LC_SUPPORT                         0
+#endif
+
+// TX Power Compensation
+#if defined (__2G_TX_POWER_CONTROL_SUPPORT__)
+#define MD_DRV_IS_TX_POWER_CONTROL_SUPPORT                1
+   #if MD_DRV_IS_CHIP_MT6276 || MD_DRV_IS_CHIP_MT6573
+#define MD_DRV_IS_TXPC_CL_AUXADC_SUPPORT                  1  // Closed-loop TX Power Compensation (Vdet from AUXADC)
+   #else
+#define MD_DRV_IS_TXPC_CL_AUXADC_SUPPORT                  0
+   #endif
+#else
+#define MD_DRV_IS_TX_POWER_CONTROL_SUPPORT                0
+#define MD_DRV_IS_TXPC_CL_AUXADC_SUPPORT                  0
+#endif
+
+// W cancellation
+#if (defined L1D_TEST) || (defined L1_SIM)
+#define MD_DRV_IS_W_CANCELLATION_SUPPORT                  0
+#elif MD_DRV_IS_CHIP_MT6250 || MD_DRV_IS_CHIP_MT6280 || MD_DRV_IS_CHIP_MT6583_MD1 || MD_DRV_IS_CHIP_MT6572 || MD_DRV_IS_CHIP_MT6290 || MD_DRV_IS_CHIP_MT6595 || MD_DRV_IS_CHIP_MT6752_MD1 || MD_DRV_IS_CHIP_MT6752_MD2 || MD_DRV_IS_CHIP_TK6291 || MD_DRV_IS_CHIP_MT6755 || MD_DRV_IS_CHIP_MT6292 || MD_DRV_IS_CHIP_MT6293 || MD_DRV_IS_CHIP_MT6295 || MD_DRV_IS_CHIP_MT6297
+#define MD_DRV_IS_W_CANCELLATION_SUPPORT                  1
+#else
+#define MD_DRV_IS_W_CANCELLATION_SUPPORT                  0
+#endif
+
+// 2G RF Custom Tool
+#if defined(__2G_RF_CUSTOM_TOOL_SUPPORT__)
+#define MD_DRV_IS_RF_TOOL_CUSTOMIZATION_SUPPORT_V2        1
+#else
+#define MD_DRV_IS_RF_TOOL_CUSTOMIZATION_SUPPORT_V2        0
+#endif
+
+// UDVT Frequency Hopping
+#if ((defined __UDVT__) && (MD_DRV_IS_CHIP_MT6250 || MD_DRV_IS_CHIP_MT6280))
+#define MD_DRV_IS_UDVT_FH_SUPPORT                         1
+#else
+#define MD_DRV_IS_UDVT_FH_SUPPORT                         0
+#endif
+
+// Feature of 32k crystal removal
+#if defined(__F32_XOSC_REMOVAL_SUPPORT__)
+#define MD_DRV_IS_32K_CRYSTAL_REMOVAL_SUPPORT             1
+#else
+#define MD_DRV_IS_32K_CRYSTAL_REMOVAL_SUPPORT             0
+#endif
+
+// Feature of TX gain RF calibration
+#if defined(__2G_TX_GAIN_RF_CALIBRATION__)
+#define MD_DRV_IS_TX_GAIN_RF_CALIBRATION_SUPPORT          1
+#else
+#define MD_DRV_IS_TX_GAIN_RF_CALIBRATION_SUPPORT          0
+#endif
+
+// For chip with 48-bit of BPI_DATA
+#if MD_DRV_IS_CHIP_TK6291 || MD_DRV_IS_CHIP_MT6755 || MD_DRV_IS_CHIP_MT6292 
+#define MD_DRV_IS_BPI_DATA_48_BIT_CHIP                    1
+#else
+#define MD_DRV_IS_BPI_DATA_48_BIT_CHIP                    0
+#endif
+
+// For chip with 32-bit of BPI_DATA
+#if MD_DRV_IS_CHIP_MT6583_MD1 || MD_DRV_IS_CHIP_MT6583_MD2 || MD_DRV_IS_CHIP_MT6572 || MD_DRV_IS_CHIP_MT6290 || MD_DRV_IS_CHIP_MT6595 || MD_DRV_IS_CHIP_MT6752_MD1 || MD_DRV_IS_CHIP_MT6752_MD2 || MD_DRV_IS_CHIP_MT6293 || MD_DRV_IS_CHIP_MT6295 || MD_DRV_IS_CHIP_MT6297
+#define MD_DRV_IS_BPI_DATA_32_BIT_CHIP                    1
+#else
+#define MD_DRV_IS_BPI_DATA_32_BIT_CHIP                    0
+#endif
+
+// For MD2G SW mode
+#if MD_DRV_IS_CHIP_MT6276 || MD_DRV_IS_CHIP_MT6573 || MD_DRV_IS_CHIP_MT6575 || MD_DRV_IS_CHIP_MT6280 || MD_DRV_IS_CHIP_MT6583_MD1 || MD_DRV_IS_CHIP_MT6583_MD2 || MD_DRV_IS_CHIP_MT6572 || MD_DRV_IS_CHIP_MT6290 || MD_DRV_IS_CHIP_MT6595 || MD_DRV_IS_CHIP_MT6752_MD1 || MD_DRV_IS_CHIP_MT6752_MD2 || MD_DRV_IS_CHIP_TK6291 || MD_DRV_IS_CHIP_MT6755 || MD_DRV_IS_CHIP_MT6292 || MD_DRV_IS_CHIP_MT6293 || MD_DRV_IS_CHIP_MT6295 || MD_DRV_IS_CHIP_MT6297
+#define MD_DRV_IS_MD2G_PWD_DEFAULT_SW_MODE                0
+#else
+#define MD_DRV_IS_MD2G_PWD_DEFAULT_SW_MODE                1
+#endif
+
+// Feature of Fix AFC
+#define MD_DRV_IS_DUAL_LOOP_AFC_CONTROL_SUPPORT           1
+
+// Feature of MIPI Control
+#if defined(__2G_MIPI_SUPPORT__)
+#define MD_DRV_IS_2G_MIPI_SUPPORT           1
+#else
+#define MD_DRV_IS_2G_MIPI_SUPPORT           0
+#endif
+
+#if MD_DRV_IS_2G_MIPI_SUPPORT && defined(__2G_MIPI_INTERSLOT_RAMPING_OPTIMIZE_SUPPORT__)
+/* Macro MD_DRV_IS_MIPI_INTERSLOT_RAMPING_OPTIMIZE_SUPPORT has been removed from GL1 code after TK6291 */
+#define MD_DRV_IS_MIPI_INTERSLOT_RAMPING_OPTIMIZE_SUPPORT  1
+#else
+#define MD_DRV_IS_MIPI_INTERSLOT_RAMPING_OPTIMIZE_SUPPORT  0
+#endif
+
+#if defined (__TX_POWER_OFFSET_SUPPORT__)
+#define MD_DRV_IS_TX_POWER_OFFSET_SUPPORT                 1  /* Enable Tx power offset */
+#else
+#define MD_DRV_IS_TX_POWER_OFFSET_SUPPORT                 0  /* Disable Tx power offset */
+#endif /*__TX_POWER_OFFSET_SUPPORT__*/      
+
+#if defined (__NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT__)
+#define MD_DRV_IS_NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT                 1  /* Enable Tx power offset */
+#else
+#define MD_DRV_IS_NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT                 0  /* Disable Tx power offset */
+#endif//__NSFT_ADJUST_TX_POWER_OFFSET_SUPPORT__
+
+#if defined(__TAS_SUPPORT__)
+   #if defined(__MD93__)
+#define MD_DRV_IS_2G_TAS_SUPPORT                            1
+#define MD_DRV_IS_2G_Gen95_UTAS_SUPPORT                     0
+#define MD_DRV_IS_2G_Gen97_UTAS_SUPPORT                     0
+#define MD_DRV_IS_2G_TAS_INHERIT_4G_ANT                     1
+   #elif defined(__MD95__)           /*GL1D is not involved from Gen95 onwards since GL1C is taking care of it*/
+#define MD_DRV_IS_2G_TAS_SUPPORT                            0
+#define MD_DRV_IS_2G_Gen95_UTAS_SUPPORT                     1
+#define MD_DRV_IS_2G_Gen97_UTAS_SUPPORT                     0
+#define MD_DRV_IS_2G_TAS_INHERIT_4G_ANT                     0
+   #elif (defined(__MD97__) || defined(__MD97P__))
+#define MD_DRV_IS_2G_TAS_SUPPORT                            0
+#define MD_DRV_IS_2G_Gen95_UTAS_SUPPORT                     0
+#define MD_DRV_IS_2G_Gen97_UTAS_SUPPORT                     1
+#define MD_DRV_IS_2G_TAS_INHERIT_4G_ANT                     0
+   #else
+   #error "[ERROR] Invalid MD generation"   
+   #endif
+#define MD_DRV_IS_2G_TAS_ANT_IDX_FOR_PM_WINDOW_SUPPORT      1
+#else
+#define MD_DRV_IS_2G_TAS_SUPPORT                            0
+#define MD_DRV_IS_2G_TAS_ANT_IDX_FOR_PM_WINDOW_SUPPORT      0
+#define MD_DRV_IS_2G_TAS_INHERIT_4G_ANT                     0
+#define MD_DRV_IS_2G_Gen95_UTAS_SUPPORT                     0
+#define MD_DRV_IS_2G_Gen97_UTAS_SUPPORT                     0
+#endif
+
+#if defined(__DYNAMIC_ANTENNA_TUNING__)
+   #if defined(__MD93__)
+   #define MD_DRV_IS_2G_DAT_SUPPORT                             1
+   #define MD_DRV_IS_2G_Gen95_UDAT_SUPPORT                      0
+   #elif defined(__MD95__)
+   #define MD_DRV_IS_2G_DAT_SUPPORT                             0
+   #define MD_DRV_IS_2G_Gen95_UDAT_SUPPORT                      1
+   #else
+   #error "[ERROR] Invalid MD generation"
+   #endif
+#else
+#define MD_DRV_IS_2G_DAT_SUPPORT                                0
+#define MD_DRV_IS_2G_Gen95_UDAT_SUPPORT                         0
+#endif
+
+/* Support using external LNA and adjust RX gain table in L1 code flow */
+#if MD_DRV_IS_RF_MT6179 || MD_DRV_IS_RF_MT6177L || MD_DRV_IS_RF_TRINITYE1 || MD_DRV_IS_RF_TRINITYL || MD_DRV_IS_RF_MT6186 || MD_DRV_IS_RF_MT6186M || MD_DRV_IS_RF_MT6190T || MD_DRV_IS_RF_MT6177M
+#define MD_DRV_IS_2G_EXTERNAL_LNA_SUPPORT            1
+#else
+#define MD_DRV_IS_2G_EXTERNAL_LNA_SUPPORT            0
+#endif
+
+/* Support using BYPASS and adjust RX gain table in L1 code flow */
+#if MD_DRV_IS_2G_EXTERNAL_LNA_SUPPORT
+   #if MD_DRV_IS_RF_MT6177L || MD_DRV_IS_RF_TRINITYE1 || MD_DRV_IS_RF_TRINITYL || MD_DRV_IS_RF_MT6186 || MD_DRV_IS_RF_MT6186M || MD_DRV_IS_RF_MT6190T || MD_DRV_IS_RF_MT6177M
+#define MD_DRV_IS_2G_EXTERNAL_LNA_BYPASS_SUPPORT     1
+   #else
+#define MD_DRV_IS_2G_EXTERNAL_LNA_BYPASS_SUPPORT     0
+   #endif
+#else
+#define MD_DRV_IS_2G_EXTERNAL_LNA_BYPASS_SUPPORT     0
+#endif
+
+#if MD_DRV_IS_CHIP_MT6293 || MD_DRV_IS_CHIP_MT6295
+#define MD_DRV_IS_2G_BANK_B_ENABLE            1
+#else
+   #if defined(L1_SIM) && !MD_DRV_IS_CHIP_MT6292
+//#error "need to use bank B at simulation"
+   #endif
+#define MD_DRV_IS_2G_BANK_B_ENABLE            0
+#endif
+
+#if MD_DRV_IS_CHIP_MT6295
+#define IS_DYNAMICAL_NOISE_FLOOR_AND_SATURATION_SUPPORT		1
+#else
+#define IS_DYNAMICAL_NOISE_FLOOR_AND_SATURATION_SUPPORT		0
+#endif
+
+#endif