[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/driver/peripheral/inc/rtc_sw_new.h b/mcu/driver/peripheral/inc/rtc_sw_new.h
new file mode 100644
index 0000000..9fa811e
--- /dev/null
+++ b/mcu/driver/peripheral/inc/rtc_sw_new.h
@@ -0,0 +1,544 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * rtc_sw.h
+ *
+ * Project:
+ * --------
+ * Maui_Software
+ *
+ * Description:
+ * ------------
+ * This file is intends for RTC driver and adaption.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _RTC_SW_H
+#define _RTC_SW_H
+
+#include "drv_comm.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#define ONE_SHOT_DIS 0
+#define ONE_SHOT_EN 1
+
+#define RTC_BBPU_KEY 0x4300
+
+#define RTC_BBPU_ALARM_SW 0x0001
+#if defined(DRV_RTC_BBPU_AS_6205) || defined(DRV_RTC_BBPU_AS_6208) || defined(FPGA)
+ #define RTC_BBPU_PWR_POLARITY 0x0002
+#endif /*DRV_RTC_BBPU_AS_6205,DRV_RTC_BBPU_AS_6208,FPGA*/
+
+#if defined(DRV_RTC_BBPU_AS_6205B) || defined(DRV_RTC_BBPU_AS_6238)
+ #define RTC_BBPU_WRITE_EN 0x0002
+ #define RTC_BBPU_PWR_SW 0x0004
+ #define RTC_BBPU_AUTOPDN 0x0008
+ #if defined(DRV_RTC_BBPU_AS_6238)
+ #define RTC_BBPU_CLRPKY 0x0010
+ #define RTC_BBPU_RELOAD 0x0020
+ #define RTC_BBPU_CBUSY 0x0040
+ #define RTC_BBPU_DBING 0x0080
+ #endif
+#endif /*DRV_RTC_BBPU_AS_6205B*/
+
+#if defined(DRV_RTC_BBPU_AS_6218)
+ #define RTC_BBPU_PWR_POLARITY 0x0002
+ #define RTC_BBPU_PWR_SW 0x0004
+ #define RTC_BBPU_AUTOPDN 0x0008
+#endif /*DRV_RTC_BBPU_AS_6218*/
+
+#if defined(DRV_RTC_BBPU_AS_6205)
+ #define RTC_BBPU_PWR_SW 0x0004
+ #define RTC_BBPU_PDN_XOSC32K 0x0010
+#endif /*(DRV_RTC_BBPU_AS_6205)*/
+#if defined(DRV_RTC_BBPU_AS_6208) || defined(FPGA)
+ #define RTC_BBPU_PDN_XOSC32K 0x0004
+ #define RTC_BBPU_PWR_SW 0x0010
+#endif /*(DRV_RTC_BBPU_AS_6208,FPGA)*/
+
+#if defined(DRV_RTC_BBPU_AS_6276)
+ #define RTC_BBPU_PWR_SW 0x0004
+ #define RTC_BBPU_AUTOPDN 0x0008
+ #define RTC_BBPU_CLRPKY 0x0010
+ #define RTC_BBPU_RELOAD 0x0020
+ #define RTC_BBPU_CBUSY 0x0040
+#endif /*DRV_RTC_BBPU_AS_6205B*/
+
+
+#if defined(DRV_RTC_BBPU_AS_6205) || defined(DRV_RTC_BBPU_AS_6208) || defined(FPGA)
+ #define RTC_BBPU_POWERON (RTC_BBPU_PDN_XOSC32K|RTC_BBPU_PWR_SW|RTC_BBPU_PWR_POLARITY|RTC_BBPU_ALARM_SW|RTC_BBPU_KEY)
+ #define RTC_BBPU_POWEROFF (RTC_BBPU_PDN_XOSC32K|RTC_BBPU_PWR_POLARITY|RTC_BBPU_ALARM_SW|RTC_BBPU_KEY)
+#endif /*DRV_RTC_BBPU_AS_6205,DRV_RTC_BBPU_AS_6208,FPGA*/
+
+#if defined(DRV_RTC_BBPU_AS_6205B) || defined(DRV_RTC_BBPU_AS_6238)
+ #define RTC_BBPU_POWERON (RTC_BBPU_PWR_SW|RTC_BBPU_WRITE_EN|RTC_BBPU_ALARM_SW|RTC_BBPU_AUTOPDN|RTC_BBPU_KEY)
+ #define RTC_BBPU_POWEROFF (RTC_BBPU_WRITE_EN|RTC_BBPU_ALARM_SW|RTC_BBPU_AUTOPDN|RTC_BBPU_KEY)
+#endif /*DRV_RTC_BBPU_AS_6205B*/
+/*0227 TY removes RTC_BBPU_ALARM_SW*/
+#if defined(DRV_RTC_BBPU_AS_6218)
+ #define RTC_BBPU_POWERON (RTC_BBPU_PWR_SW|RTC_BBPU_PWR_POLARITY|RTC_BBPU_ALARM_SW|RTC_BBPU_AUTOPDN|RTC_BBPU_KEY)
+ #define RTC_BBPU_POWEROFF (RTC_BBPU_PWR_POLARITY|RTC_BBPU_ALARM_SW|RTC_BBPU_AUTOPDN|RTC_BBPU_KEY)
+#endif /*DRV_RTC_BBPU_AS_6218*/
+
+#if defined(DRV_RTC_BBPU_AS_6276)
+ #define RTC_BBPU_POWERON (RTC_BBPU_PWR_SW|RTC_BBPU_ALARM_SW|RTC_BBPU_AUTOPDN|RTC_BBPU_KEY)
+ #define RTC_BBPU_POWEROFF (RTC_BBPU_ALARM_SW|RTC_BBPU_AUTOPDN|RTC_BBPU_KEY)
+#endif /*DRV_RTC_BBPU_AS_6205B*/
+
+typedef struct __rtc
+{
+ kal_uint8 rtc_sec; /* seconds after the minute - [0,59] */
+ kal_uint8 rtc_min; /* minutes after the hour - [0,59] */
+ kal_uint8 rtc_hour; /* hours after the midnight - [0,23] */
+ kal_uint8 rtc_day; /* day of the month - [1,31] */
+ kal_uint8 rtc_mon; /* months - [1,12] */
+ kal_uint8 rtc_wday; /* days in a week - [1,7] */
+ kal_uint8 rtc_year; /* years - [0,127] */
+} t_rtc;
+
+typedef struct
+{
+ void (*rtc_tcfunc)(void);
+ void (*rtc_alfunc)(void);
+}rtc_callbac;
+
+typedef struct
+{
+ kal_hisrid hisr;
+}rtc_module;
+
+typedef struct
+{
+kal_bool time_valid;
+t_rtc rtc_time;
+kal_bool ticks_diff_valid;
+kal_int32 ticks_diff_per_hour;
+} rtc_nvram_data;
+
+typedef struct{
+ module_type dest_mod_id;
+ sap_type sap_id;
+ msg_type msg_id;
+}RTC_REG_MODULE_ILM_INFO_T;
+
+typedef enum
+{
+ rtc_pdn1 = 0,
+ rtc_pdn2,
+ rtc_max_index
+} RTC_PDN_INDEX;
+
+#if defined(DRV_RTC_REG_SPAR)
+typedef enum
+{
+ rtc_spar0 = 0,
+ rtc_spar1,
+ rtc_spar_max_index
+}RTC_SPAR_INDEX;
+#endif
+
+#if defined(DRV_RTC_GPIO)
+typedef enum {
+ RTC_GPIO_DISABLE = 0,
+ RTC_GPIO_EXPORT_32K,
+ RTC_GPIO_EXPORT_COREDETB,
+}RTC_GPIO_MODE_enum;
+
+typedef enum {
+ RTC_GPIO_NO_PULL = 0,
+ RTC_GPIO_PULL_DOWN,
+ RTC_GPIO_PULL_UP
+}RTC_GPIO_PULL_TYPE_enum;
+
+typedef enum {
+ RTC_GPIO_DS_4mA = 0,
+ RTC_GPIO_DS_8mA,
+ RTC_GPIO_DS_12mA,
+ RTC_GPIO_DS_16mA
+}RTC_GPIO_DRIVING_STRENGTH_enum;
+#endif //defined(DRV_RTC_GPIO)
+
+#if defined(DRV_RTC_REG_COMM)
+
+kal_uint16 RTC_Read_PDN(RTC_PDN_INDEX PDNIndex);
+void RTC_Set_PDN_bits(RTC_PDN_INDEX PDNIndex,kal_uint16 flag);
+void RTC_Clear_PDN_bits(RTC_PDN_INDEX PDNIndex,kal_uint16 flag);
+void RTC_Write_PDN_bits(RTC_PDN_INDEX PDNIndex,kal_uint16 flag);
+
+#endif //#if defined(DRV_RTC_REG_COMM)
+
+#if defined(DRV_RTC_REG_SPAR)
+kal_uint16 RTC_Read_SPAR(RTC_SPAR_INDEX SPARIndex);
+void RTC_Write_SPAR(RTC_SPAR_INDEX SPARIndex, kal_uint16 flag);
+#endif // End of #if defined(DRV_RTC_REG_SPAR)
+// ============================================================
+// Exported APIs, used by modules other than driver level functions
+extern void RTC_Config_(kal_uint8 AL_EN,kal_uint8 TC_EN);
+extern void RTC_InitTC_Time(t_rtc *rtctime);
+extern void RTC_GetTime_(t_rtc *rtctime);
+extern void RTC_SetAlarm(t_rtc *rtctime);
+extern kal_bool RTC_GetALTime(t_rtc *rtctime);
+extern kal_bool RTC_isFisrtOn(void);
+extern void RTC_setPWRKey(void);
+extern void RTC_setXOSC_(void);
+extern void RTC_unlockPROT(void);
+#if defined(DRV_RTC_LOW_POWER_DETECT)
+extern void RTC_Clear_LPSTA_RAW(void);
+extern void RTC_Set_GPIO_Output_Mode(kal_bool value,kal_bool is_SlewRateOn);
+extern kal_bool RTC_Get_GPIO_Input(void);
+extern void RTC_Set_GPIO_Input_Mode(RTC_GPIO_PULL_TYPE_enum PullType,RTC_GPIO_DRIVING_STRENGTH_enum PullDs,kal_bool is_SmithTrigger);
+extern void RTC_Set_GPIO_Mode(RTC_GPIO_MODE_enum Mode);
+#endif //#if defined(DRV_RTC_LOW_POWER_DETECT)
+
+// ============================================================
+// MoDIS parser skip start
+// Exported functions, used by driver level functions
+extern kal_bool isPWROnByRTC(void);
+extern void RTC_IRQOneShotEnable(kal_uint8 oneShotEN);
+extern void RTC_LISR(void);
+extern void RTC_init_(void (*RTC_TCCallback)(void),void (*RTC_ALCallback)(void));
+extern kal_bool RTC_is_MS_FirstPowerOn_(void);
+extern kal_bool RTC_is_config_valid(void);
+extern kal_bool RTC_is_Time_Valid(t_rtc *time);
+extern void RTC_GetTimeOnly(t_rtc *rtctime );
+extern kal_uint8 RTC_read_xosc_reg(void);
+extern void RTC_write_xosc_reg(kal_uint16 reg_value);
+extern void RTC_SaveTC_Time(t_rtc *rtctime);
+extern void RTC_set_First_PowerOn(kal_bool isFirstPowerOn);
+extern kal_bool RTC_Bootloader_PowerOn_(void);
+
+#if defined(DRV_RTC_HW_CALI)
+extern void RTC_wait_busy(void);
+extern void RTC_write_trigger(void);
+extern void RTC_write_trigger_wait(void);
+#endif /* defined(DRV_RTC_HW_CALI) */
+// MoDIS parser skip end
+
+// ============================================================
+// MoDIS parser skip start
+// Unknown functions, maybe previous owner forgot to delete
+extern void RTC_BBPUOpen(kal_bool open);
+extern void RTC_BBPWRUP_init(void);
+// MoDIS parser skip end
+
+#if defined(DRV_RTC_REG_COMM)
+//pwic may change pdn value during booting, save the original value of pdn1.
+extern kal_uint16 originalPDN1;
+extern kal_uint16 RTC_original_pnd1(void);
+#endif
+
+#if !defined(__FUE__) && !defined(__UBL__)
+extern kal_bool RTC_Set_Module_ILM_Info(RTC_REG_MODULE_ILM_INFO_T *Module_ilm_info);
+#endif
+
+#if !defined(DRV_RTC_OFF)
+#if defined(__DRV_COMM_REG_DBG__) && defined(__DRV_RTC_REG_DBG__)
+#define DRV_RTC_WriteReg(addr,data) DRV_DBG_WriteReg(addr,data)
+#define DRV_RTC_Reg(addr) DRV_DBG_Reg(addr)
+#define DRV_RTC_WriteReg32(addr,data) DRV_DBG_WriteReg32(addr,data)
+#define DRV_RTC_Reg32(addr) DRV_DBG_Reg32(addr)
+#define DRV_RTC_WriteReg8(addr,data) DRV_DBG_WriteReg8(addr,data)
+#define DRV_RTC_Reg8(addr) DRV_DBG_Reg8(addr)
+#define DRV_RTC_ClearBits(addr,data) DRV_DBG_ClearBits(addr,data)
+#define DRV_RTC_SetBits(addr,data) DRV_DBG_SetBits(addr,data)
+#define DRV_RTC_SetData(addr, bitmask, value) DRV_DBG_SetData(addr, bitmask, value)
+#define DRV_RTC_ClearBits32(addr,data) DRV_DBG_ClearBits32(addr,data)
+#define DRV_RTC_SetBits32(addr,data) DRV_DBG_SetBits32(addr,data)
+#define DRV_RTC_SetData32(addr, bitmask, value) DRV_DBG_SetData32(addr, bitmask, value)
+#define DRV_RTC_ClearBits8(addr,data) DRV_DBG_ClearBits8(addr,data)
+#define DRV_RTC_SetBits8(addr,data) DRV_DBG_SetBits8(addr,data)
+#define DRV_RTC_SetData8(addr, bitmask, value) DRV_DBG_SetData8(addr, bitmask, value)
+#else
+#define DRV_RTC_WriteReg(addr,data) DRV_WriteReg(addr,data)
+#define DRV_RTC_Reg(addr) DRV_Reg(addr)
+#define DRV_RTC_WriteReg32(addr,data) DRV_WriteReg32(addr,data)
+#define DRV_RTC_Reg32(addr) DRV_Reg32(addr)
+#define DRV_RTC_WriteReg8(addr,data) DRV_WriteReg8(addr,data)
+#define DRV_RTC_Reg8(addr) DRV_Reg8(addr)
+#define DRV_RTC_ClearBits(addr,data) DRV_ClearBits(addr,data)
+#define DRV_RTC_SetBits(addr,data) DRV_SetBits(addr,data)
+#define DRV_RTC_SetData(addr, bitmask, value) DRV_SetData(addr, bitmask, value)
+#define DRV_RTC_ClearBits32(addr,data) DRV_ClearBits32(addr,data)
+#define DRV_RTC_SetBits32(addr,data) DRV_SetBits32(addr,data)
+#define DRV_RTC_SetData32(addr, bitmask, value) DRV_SetData32(addr, bitmask, value)
+#define DRV_RTC_ClearBits8(addr,data) DRV_ClearBits8(addr,data)
+#define DRV_RTC_SetBits8(addr,data) DRV_SetBits8(addr,data)
+#define DRV_RTC_SetData8(addr, bitmask, value) DRV_SetData8(addr, bitmask, value)
+#endif //#if defined(__DRV_COMM_REG_DBG__) && defined(__DRV_RTC_REG_DBG__)
+
+#else //!defined(DRV_RTC_OFF)
+
+#define DRV_RTC_WriteReg(addr,data)
+#define DRV_RTC_Reg(addr) drv_dummy_return()
+#define DRV_RTC_WriteReg32(addr,data)
+#define DRV_RTC_Reg32(addr) drv_dummy_return()
+#define DRV_RTC_WriteReg8(addr,data)
+#define DRV_RTC_Reg8(addr) drv_dummy_return()
+#define DRV_RTC_ClearBits(addr,data)
+#define DRV_RTC_SetBits(addr,data)
+#define DRV_RTC_SetData(addr, bitmask, value)
+#define DRV_RTC_ClearBits32(addr,data)
+#define DRV_RTC_SetBits32(addr,data)
+#define DRV_RTC_SetData32(addr, bitmask, value)
+#define DRV_RTC_ClearBits8(addr,data)
+#define DRV_RTC_SetBits8(addr,data)
+#define DRV_RTC_SetData8(addr, bitmask, value)
+
+#endif //!defined(DRV_RTC_OFF)
+
+#endif
+