[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/driver/peripheral/inc/dcl_pmic_features.h b/mcu/driver/peripheral/inc/dcl_pmic_features.h
new file mode 100644
index 0000000..6730576
--- /dev/null
+++ b/mcu/driver/peripheral/inc/dcl_pmic_features.h
@@ -0,0 +1,547 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2001
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   dcl_pmic_features.h
+ *
+ * Project:
+ * --------
+ *   Maui
+ *
+ * Description:
+ * ------------
+ *   Header file of DCL (Driver Common Layer) for PMU feature options.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef DCL_PMIC_FEATURES_H
+#define DCL_PMIC_FEATURES_H
+
+
+
+#if defined(MT6238PMU) || defined(MT6235PMU)
+   #define PMIC_FIXED_3_ADC_CH
+   #define PMIC_FIXED_CHR_EINT
+   #define PMIC_6238_CUSTOMIZATION
+   #define PMIC_6238_USB_FUNCTION
+
+   #define PMIC_PMU_SERIES	
+   /* Charger/USB detect through USB PHY */
+   #define PMIC_CHR_USB_DETECT_THROUGH_USB
+   #define PMIC_CHR_USB_DET_EINT_LEVEL_ACTIVE_LOW // Charger det EINT interrupt LEVEL trigger active LOW
+   #define PMIC_CHR_USB_DET_EINT_LEVEL_TRIGGER // CHR/USB detection is LEVEL trigger
+
+   #define PMIC_6235_CV_TRIM_CALIBRATION
+
+   /* For internal use. */
+   #define PMIC_6238_REG_API
+   #define __CHARGER_SOFT_START__
+
+
+
+   #ifndef PMIC_PRESENT
+   #define PMIC_PRESENT
+   #endif
+
+#elif defined(MT6326_CCCI)
+	/* Provide VSIM sel and enable interface */
+	#define PMIC_VSIM_SEL_AND_ENABLE
+	/* Provide VSIM enable interface */
+	#define PMIC_VSIM_ENABLE
+	/* Provide VSIM2 sel and enable interface */
+	#define PMIC_VSIM2_SEL_AND_ENABLE
+	/* Provide VSIM2 enable interface */
+	#define PMIC_VSIM2_ENABLE
+	/* Provide PMIC LOCK interface */
+	#define PMIC_LOCK
+	/* For internal use. */
+	#define PMIC_6326_CCCI_REG_API
+
+	#define PMIC_CHR_DETECT_NONE
+
+	#ifndef PMIC_PRESENT
+	#define PMIC_PRESENT
+	#endif // #ifndef PMIC_PRESENT
+
+#elif defined(MT6253PMU)
+
+   #define PMIC_VSIM2_SEL
+   #define PMIC_FIXED_3_ADC_CH
+   #define PMIC_FIXED_CHR_EINT
+   #define PMIC_6253_CUSTOMIZATION
+   #define PMIC_6253_USB_FUNCTION
+
+
+   #define PMIC_PMU_SERIES
+   #define PMIC_CHR_USB_DET_EINT_LEVEL_ACTIVE_LOW // Charger det EINT interrupt LEVEL trigger active LOW
+   #define PMIC_CHR_USB_DET_EINT_LEVEL_TRIGGER // CHR/USB detection is LEVEL trigger
+   #define PMIC_CHR_USB_DETECT_THROUGH_USB
+
+
+   // PMIC support charge WDT functionality
+   // BMT driver will refer the compile option to enable/disable BMT level WDT
+   #define PMIC_CHARGE_WDT
+   /* For internal use. */
+   #define PMIC_6253_REG_API
+   #define __CHARGER_SOFT_START__
+
+   #define PMIC_6253_CV_TRIM_CALIBRATION
+
+
+
+   #ifndef PMIC_PRESENT
+   #define PMIC_PRESENT
+   #endif
+
+#define PMIC_FIXED_CHR_EINT
+#if defined(PMIC_FIXED_CHR_EINT)
+#define PMIC_FIXED_CHR_EINT_PIN      7
+#endif // #if defined(PMIC_FIXED_CHR_EINT)
+
+#elif defined(MT6236PMU)
+
+    #define PMIC_6236_REG_API
+    #define PMIC_6236_CUSTOMIZATION
+    //#define PMIC_6238_USB_FUNCTION
+
+    #define PMIC_PMU_SERIES
+    #define PMIC_CHR_USB_DET_EINT_LEVEL_ACTIVE_LOW // Charger det EINT interrupt LEVEL trigger active LOW
+    #define PMIC_CHR_USB_DET_EINT_LEVEL_TRIGGER // CHR/USB detection is LEVEL trigger
+    #define PMIC_CHR_USB_DETECT_THROUGH_USB	   /* Charger/USB detect through USB PHY */
+
+    #define PMIC_6236_CV_TRIM_CALIBRATION
+
+    #define PMIC_FIXED_3_ADC_CH
+    //#define PMIC_FIXED_4_ADC_CH
+    #define PMIC_FIXED_CHR_EINT
+    #define PMIC_6236_USB_FUNCTION
+
+
+    #ifndef PMIC_PRESENT
+    #define PMIC_PRESENT
+    #endif // #ifndef PMIC_PRESENT
+
+#elif defined(MT6251PMU)
+
+#define PMIC_6251_REG_API
+#define PMIC_6251_CUSTOMIZATION
+#define PMIC_SLIM_V3
+
+#define PMIC_FIXED_3_ADC_CH
+#define PMIC_FIXED_4_ADC_CH
+#define PMIC_FIXED_CHR_EINT
+
+#define PMIC_PMU_SERIES
+#define PMIC_CHR_USB_DET_EINT_LEVEL_ACTIVE_LOW // Charger det EINT interrupt LEVEL trigger active LOW
+#define PMIC_CHR_USB_DET_EINT_LEVEL_TRIGGER // CHR/USB detection is LEVEL trigger
+#define PMIC_CHR_USB_DETECT_THROUGH_PMU_BC11
+
+#ifndef PMIC_PRESENT
+#define PMIC_PRESENT
+#endif // #ifndef PMIC_PRESENT
+
+#define PMIC_FIXED_CHR_EINT
+
+/*
+#define __DRV_UPMU_LDO_V1__
+#define __DRV_UPMU_LDO_V1_STB_TD_AT_CON2_BIT6__
+#define __DRV_UPMU_BUCK_V1__
+#define __DRV_UPMU_KPLED_V1__
+#define __DRV_UPMU_BC11_V1__
+#define __DRV_UPMU_STRUP_V1__
+#define __DRV_UPMU_BOOST_V1__
+#define __DRV_UPMU_SPK_V1__
+#define __DRV_UPMU_ISINK_V1__
+*/
+#define __DRV_UPMU_CHARGER_V1__
+      #define __DRV_OTG_BVALID_DET_AT_CON5_BIT15__
+      #define __DRV_VBAT_OV_EN_AT_CON3_BIT8__
+      #define __DRV_BATON_EN_AT_CON3_BIT9__
+      #define __DRV_OTG_BVALID_EN_AT_CON5_BIT12__
+      #define __DRV_OTG_BVALID_DET_AT_CON5_BIT15__
+      #define __DRV_CHR_WDT_CLEAR_WAIT_2MS__ // design limitation, need to wait for clock sync
+      #define __DRV_VBAT_OV_VTH_CON3_3BIT_WIDTH_VTH2_AT_BIT12__
+      #define __DRV_UPMU_BC11_V1__
+        // Use USB module 1.5KOhm pull high resistor for group B identify process
+        // Need to isolate USB DP/MP line to make 1.5KOhm resistor work
+        // (1.5KOhm resistor has some enable dependency on isolation switch)
+        //#define __DRV_BC11_USE_USB_100_K_RESISTOR_4_GROUP_B__
+        // Use USB module provided USB line status check API
+        // 1. USB module provide line status check API: 2.0V <-> 0.8V
+        //    Higher than 2.0V ==> HIGH
+        //    Lower than 0.8V ==> LOW
+        // 2. PMU BC11 circuit provide 1.2V comparator
+        //#define __DRV_BC11_USE_USB_LINE_STATUS_API__
+        #define __DRV_UPMU_BC11_VSRC_EN_AT_TEST_CON1_BIT4__
+#if defined(MT6251_S00)		
+        #define __MT6251PMU_E1_BC11_VSRC_EN_AT_TEST_CON1_BIT4__
+#endif //#if defined(MT6251_S00)	
+        #define __DRV_CHR_FLAG_SEL_5BIT_WIDTH_SEL4_AT_BIT13__
+
+#elif defined(MT6252PMU) || defined(MT6253ELPMU)
+#define PMIC_6252_REG_API
+#define PMIC_6252_CUSTOMIZATION
+
+#define PMIC_FIXED_3_ADC_CH
+#define PMIC_FIXED_CHR_EINT
+#define PMIC_SLIM_V3
+
+#define PMIC_PMU_SERIES
+#define PMIC_CHR_USB_DET_EINT_LEVEL_ACTIVE_LOW // Charger det EINT interrupt LEVEL trigger active HIGH
+#define PMIC_CHR_USB_DET_EINT_LEVEL_TRIGGER // CHR/USB detection is LEVEL trigger
+#define PMIC_CHR_USB_DETECT_THROUGH_PMU_BC11
+
+#ifndef PMIC_PRESENT
+#define PMIC_PRESENT
+#endif // #ifndef PMIC_PRESENT
+
+#define __DRV_UPMU_BC11_V1__
+
+#elif defined(MT6255PMU)
+#define PMIC_6255_REG_API
+
+    #define PMIC_FIXED_3_ADC_CH
+    #define PMIC_FIXED_4_ADC_CH
+    #define PMIC_FIXED_CHR_EINT
+    #define PMIC_SLIM_V3    
+
+#define PMIC_PMU_SERIES
+#define PMIC_CHR_USB_DET_EINT_LEVEL_ACTIVE_LOW// Charger det EINT interrupt LEVEL trigger active low
+#define PMIC_CHR_USB_DET_EINT_LEVEL_TRIGGER // CHR/USB detection is LEVEL trigger
+#define PMIC_CHR_USB_DETECT_THROUGH_PMU_BC11
+#define __DRV_UPMU_BC11_V1__
+
+#ifndef PMIC_PRESENT
+#define PMIC_PRESENT
+#endif // #ifndef PMIC_PRESENT
+
+
+#elif defined(MT6256PMU)
+#define PMIC_6256_REG_API
+#define PMIC_6256_CUSTOMIZATION
+
+    #define PMIC_FIXED_3_ADC_CH
+    #define PMIC_FIXED_4_ADC_CH
+    #define PMIC_FIXED_CHR_EINT
+    #define PMIC_SLIM_V3    
+
+#define PMIC_PMU_SERIES
+#define PMIC_CHR_USB_DET_EINT_LEVEL_ACTIVE_LOW// Charger det EINT interrupt LEVEL trigger active low
+#define PMIC_CHR_USB_DET_EINT_LEVEL_TRIGGER // CHR/USB detection is LEVEL trigger
+#define PMIC_CHR_USB_DETECT_THROUGH_PMU_BC11
+#define __DRV_UPMU_BC11_V1__
+
+#ifndef PMIC_PRESENT
+#define PMIC_PRESENT
+#endif // #ifndef PMIC_PRESENT
+
+#elif defined(MT6276PMU)
+
+#define PMIC_6276_REG_API
+#define PMIC_6276_CUSTOMIZATION
+
+
+#define PMIC_PMU_SERIES
+#define PMIC_CHR_USB_DET_EINT_LEVEL_ACTIVE_HIGH // Charger det EINT interrupt LEVEL trigger active HIGH
+#define PMIC_CHR_USB_DET_EINT_LEVEL_TRIGGER // CHR/USB detection is LEVEL trigger
+#define PMIC_CHR_USB_DETECT_THROUGH_USB
+
+#ifndef PMIC_PRESENT
+#define PMIC_PRESENT
+#endif // #ifndef PMIC_PRESENT
+
+#define PMIC_FIXED_3_ADC_CH
+#define PMIC_FIXED_CHR_EINT
+#if defined(PMIC_FIXED_CHR_EINT)
+#define PMIC_FIXED_CHR_EINT_PIN      29
+#endif // #if defined(PMIC_FIXED_CHR_EINT)
+
+#define __DRV_UPMU_LPOSC_V1__
+#define __DRV_UPMU_LDO_V1__
+#define __DRV_UPMU_SHARE_LDO__
+#if defined(MT6276_S00)
+#define __MT6276PMU_E1_VSIM2_VOLSEL_ISSUE__
+#endif //#if defined(MT6276_S00)
+#define __DRV_UPMU_LDO_V1_STB_TD_AT_CON1_BIT0__
+#define __DRV_UPMU_BUCK_V1__
+#define __DRV_UPMU_VPA_V1__
+#define __DRV_UPMU_KPLED_V1__
+#define __DRV_UPMU_CHARGER_V1__
+#define __DRV_OTG_BVALID_EN_AT_CON3_BIT13__
+#define __DRV_BATON_EN_AT_CON3_BIT12__
+#define __DRV_UPMU_BC11_V1__
+#define __DRV_UPMU_BC11_MAPPING_V2__
+
+#elif defined(MT6573PMU)
+
+	#define PMIC_6573_REG_API
+	
+	#define __DRV_UPMU_BUCK_V1__
+        #define __MT6573PMU_E1_VSIM2_VOLSEL_ISSUE__
+	#define __DRV_UPMU_VPA_V1__
+
+        #define PMIC_FIXED_3_ADC_CH
+        #define PMIC_FIXED_CHR_EINT
+	#define PMIC_CHR_DETECT_NONE
+
+	#ifndef PMIC_PRESENT
+	#define PMIC_PRESENT
+	#endif // #ifndef PMIC_PRESENT
+
+#elif defined(MT6326)
+	#define PMIC_VSIM_SEL
+	#define PMIC_VSIM2_SEL
+	#define PMIC_AUDIO_AMP
+	#define PMIC_6326_CUSTOMIZATION
+	#define PMIC_6326_USB_FUNCTION
+	#define PMIC_VCAMD_SEL
+	#define PMIC_VCAMD_EN
+	#define PMIC_VCAMA_SEL
+	#define PMIC_VCAMA_EN
+
+	#define PMIC_CHR_USB_DET_EINT_EDGE_TRIGGER // CHR/USB detection is edge trigger
+
+	/* For internal use. */
+	#define PMIC_6326_REG_API
+	// PMIC support charge WDT functionality
+	// BMT driver will refer the compile option to enable/disable BMT level WDT
+	#define PMIC_CHARGE_WDT
+
+	#define PMIC_6326_CV_TRIM_CALIBRATION
+
+	#define PMIC_PMIC_SERIES
+	/* Charger/USB detect through USB PHY */
+	#define PMIC_CHR_USB_DETECT_THROUGH_USB
+
+	#ifndef PMIC_PRESENT
+	#define PMIC_PRESENT
+	#endif // #ifndef PMIC_PRESENT
+
+  #define __CHARGER_SOFT_START__
+
+#elif defined(MT6329)
+    #define PMIC_VSIM_SEL
+    #define PMIC_VSIM2_SEL
+    #define PMIC_AUDIO_AMP
+    #define PMIC_6329_CUSTOMIZATION
+    #define PMIC_6329_USB_FUNCTION
+    #define PMIC_VCAMD_SEL
+    #define PMIC_VCAMD_EN
+    #define PMIC_VCAMA_SEL
+    #define PMIC_VCAMA_EN
+
+    #define PMIC_CHR_USB_DET_EINT_EDGE_TRIGGER // CHR/USB detection is edge trigger
+
+    /* For internal use. */
+    #define PMIC_6329_REG_API
+    // PMIC support charge WDT functionality
+    // BMT driver will refer the compile option to enable/disable BMT level WDT
+    #define PMIC_CHARGE_WDT
+
+    #define PMIC_6329_CV_TRIM_CALIBRATION
+
+    #define PMIC_PMIC_SERIES
+    /* Charger/USB detect through USB PHY */
+    #define PMIC_CHR_USB_DETECT_THROUGH_USB
+
+    #ifndef PMIC_PRESENT
+    #define PMIC_PRESENT
+    #endif // #ifndef PMIC_PRESENT
+
+    #define __CHARGER_SOFT_START__
+
+#elif defined(MT6327)
+    #define PMIC_VSIM_SEL
+
+    /* For internal use. */
+    #define PMIC_6327_REG_API
+
+    #define PMIC_PMIC_SERIES
+    
+    #define PMIC_CHR_DETECT_NONE
+
+    #ifndef PMIC_PRESENT
+    #define PMIC_PRESENT
+    #endif // #ifndef PMIC_PRESENT
+    
+#else
+
+    #define PMIC_CHR_DETECT_NONE
+
+#endif
+
+#endif // #ifndef DCL_PMIC_FEATURES_H