[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/interface/protocol/general/device.h b/mcu/interface/protocol/general/device.h
new file mode 100644
index 0000000..e3acf5a
--- /dev/null
+++ b/mcu/interface/protocol/general/device.h
@@ -0,0 +1,1383 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * DEVICE.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for definition of all hardware device requirement.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+#ifndef _DEVICE_H
+#define _DEVICE_H
+
+/*****************************************************************************
+* Include
+*****************************************************************************/
+#include "kal_general_types.h"
+//#include "pmic6318_sw.h"
+#include "ps_public_struct.h"
+#include "dcl.h"
+
+/*****************************************************************************
+* Define
+*****************************************************************************/
+/* Add by Yuchuan */
+#define UEM_GREETING_LEN 62
+#define UEM_EQUIP_ID_LEN 64
+
+/* Define the ring compose capability */
+#define MAX_RING_COMPOSE_NUM 5
+#define MAX_RING_COMPOSE_LEN 300
+
+/* Define the display text maximum len */
+#define UEM_DISPLAY_TEXT_LEN 30
+#define UEM_MAX_GREETING_LEN 30
+
+/* For UEM GPIO*/
+#define MAX_LED_GPIO 3 /* 3 LED lights */
+#define MAX_LCD_BACKLIGHT 1 /* 1 backlight */
+#define MAX_VIBRATOR 1 /* 1 vibrator */
+
+#define GPIO_INVAILD 0x0
+#define GPIO_VAILD 0x01
+#define GPO_VAILD 0x02
+#define MAX_NETNAME_TEXT 32
+
+//#ifdef __CUST_NEW__
+#define GPIO_INVALID GPIO_INVAILD
+#define GPIO_VALID GPIO_VAILD
+#define GPO_VALID GPO_VAILD
+//#endif /* __CUST_NEW__ */
+
+/*****************************************************************************
+* Typedef
+*****************************************************************************/
+typedef enum {
+ L4_BCD = 0x01,
+ L4_ASCII = 0x04,
+ L4_UCS2 = 0x08
+} L4_charset_enum;
+
+
+typedef enum {
+ MMI_PS_AT_LANG_DEFAULT,
+ MMI_PS_AT_LANG_UNKWN,
+ MMI_PS_AT_LANG_EN,
+ MMI_PS_AT_LANG_TW,
+ MMI_PS_AT_LANG_ZH,
+ MMI_PS_AT_LANG_LAST
+} L4_AT_lang_enum;
+
+typedef enum {
+ L4_WB_AUDIO_INPUT_FIR,
+ L4_WB_AUDIO_OUTPUT_FIR,
+ L4_WB_ADUIO_MODE_PARAM
+}l4_wb_audio_para_action_enum;
+/*****************************************************************************
+* Audio Interface
+*****************************************************************************/
+
+/* Define the audio device type */
+typedef enum {
+ AUDIO_DEVICE_SPEAKER = 0 , /* Tone, Keypad sound to play on audio device. */
+ AUDIO_DEVICE_MICROPHONE , /* Microphone sound to send on audio device. */
+ AUDIO_DEVICE_BUZZER , /* Ring tone sound to play on audio device. */
+ AUDIO_DEVICE_GMI , /* MIDI/Melody sound to play on audio device */
+ AUDIO_DEVICE_SPEAKER2 , /* earphone, carkit */
+ AUDIO_DEVICE_LOUDSPEAKER , /* loudspeaker for free sound */
+ AUDIO_DEVICE_SPEAKER_BOTH ,
+ MAX_AUDIO_DEVICE_NUM
+}audio_type_enum;
+
+
+/* Define the audio device type */
+typedef enum {
+ AUDIO_DEVICE_MIC1 = 0 , /* ME */
+ AUDIO_DEVICE_MIC2 , /* Headset */
+ AUDIO_DEVICE_FMRR , /* FM Radio */
+ AUDIO_DEVICE_MIC3 /* Loud Spkear */
+}audio_input_path_enum;
+
+
+/* Define volume category */
+typedef enum {
+ VOL_NORMAL = 0 ,
+ VOL_HEADSET ,
+ VOL_HANDFREE ,
+ MAX_VOL_CATE,
+ VOL_TV_OUT = MAX_VOL_CATE
+}volume_category_enum;
+
+
+/* Define volume type.*/
+typedef enum {
+ VOL_TYPE_CTN = 0 , /* MMI can apply to associate volume; call tone attribute */
+ VOL_TYPE_KEY , /* MMI can apply to associate volume; keypad tone attribute */
+ VOL_TYPE_MIC , /* microphone attribute */
+ VOL_TYPE_GMI , /* MMI can apply to associate volume; melody, imelody, midi attribute */
+ VOL_TYPE_SPH , /* MMI can apply to associate volume; speech sound attribute */
+ VOL_TYPE_SID , /* side tone attribute */
+ VOL_TYPE_MEDIA , /* MMI can apply to associate volume; As MP3, Wave,... attribute */
+ MAX_VOL_TYPE
+}volume_type_enum;
+
+
+/* Volume level. based index is from 0..(MAX_VOL_LEVEL-1) */
+#define MAX_VOL_LEVEL 7
+
+
+
+/* Define the audio play style. */
+typedef enum {
+ DEVICE_AUDIO_PLAY_CRESCENDO = 0 , /* Play sound for crescendo. */
+ DEVICE_AUDIO_PLAY_INFINITE , /* Play sound for infinite. */
+ DEVICE_AUDIO_PLAY_ONCE , /* Play sound for once. */
+ DEVICE_AUDIO_PLAY_DESCENDO /* Play sound for descendo. */
+}audio_play_style_enum;
+
+
+typedef struct {
+ kal_uint8 first_out_amp[MAX_AUDIO_DEVICE_NUM][MAX_VOL_LEVEL];
+ kal_uint8 second_out_amp[MAX_AUDIO_DEVICE_NUM][MAX_VOL_LEVEL];
+ kal_uint8 side[MAX_AUDIO_DEVICE_NUM][MAX_VOL_LEVEL];
+ kal_uint8 volume[MAX_AUDIO_DEVICE_NUM];
+} acoustic_gain_struct;
+
+
+/*****************************************************************************
+* Keypad Interface
+*****************************************************************************/
+
+/* Define the keypad status. */
+typedef enum {
+ KEY_PRESSED = 0 /* Keypad is pressed. */
+ ,KEY_RELEASED /* Keypad is released. */
+ ,KEY_LONGPRESS /* Keypad is longpressed. */
+ ,KEY_REPEATED /* Keypad is repeated. */
+#ifdef TWO_KEY_ENABLE
+ ,KEY_PRESSED_TWOKEY /* Two Keypad is pressed. */
+ ,KEY_RELEASED_TWOKEY /* Two Keypad is released. */
+#endif /*TWO_KEY_ENABLE*/
+}keypad_status_enum;
+
+
+/* Define the keypad code value. */
+typedef kal_uint8 keypad_code_enum;
+
+
+/*****************************************************************************
+* RTC Interface
+*****************************************************************************/
+
+/* Define the RTC type. */
+typedef enum {
+ RTC_TIME_CLOCK_IND = 0 , /* The time clock indication. */
+ RTC_ALARM_IND /* The alarm indication */
+}rtc_type_enum;
+
+
+/* Define the type to setting RTC. */
+typedef enum {
+ RTC_SETTING_TYPE_DATETIME = 0 ,
+ RTC_SETTING_TYPE_DATE ,
+ RTC_SETTING_TYPE_TIME
+}rtc_setting_type_enum;
+
+/* Define the RTC alarm id. */
+typedef kal_uint8 rtc_alarm_id_enum;
+#define RTC_ALARM1_IND 0 /* The alarm indication */
+#define RTC_ALARM2_IND 1 /* The alarm indication */
+#define RTC_ALARM3_IND 2 /* The alarm indication */
+#define MAX_ALARM_NUM 3
+
+/* Define the Alarm type */
+typedef enum {
+ RTC_ALARM_VIBRATOR = 0x01 ,
+ RTC_ALARM_LED = 0x02 ,
+ RTC_ALARM_SOUND = 0x04 ,
+ RTC_ALARM_SILENT = 0x08
+}rtc_alarm_type_enum;
+
+
+/* Define the Alarm recurr */
+typedef enum {
+ RTC_ALARM_DAY1 = 0x01 ,
+ RTC_ALARM_DAY2 = 0x02 ,
+ RTC_ALARM_DAY3 = 0x04 ,
+ RTC_ALARM_DAY4 = 0x08 ,
+ RTC_ALARM_DAY5 = 0x10 ,
+ RTC_ALARM_DAY6 = 0x20 ,
+ RTC_ALARM_DAY7 = 0x40 ,
+ RTC_ALARM_DAY_ALL = 0x7F
+}rtc_alarm_recurr_enum;
+
+/* Define the Date/Time format type. */
+typedef enum {
+ DATE_DD_MMM_YYYY = 1
+/*
+ ,DATE_DD_MM_YY_H
+ ,DATE_MM_DD_YY
+ ,DATE_DD_MM_YY_S
+ ,DATE_DD_MM_YY_P
+ ,DATE_YYMMDD
+ ,DATE_YY_MM_DD
+*/
+
+ ,DATE_DD_MM_YYYY_S = 8
+ ,DATE_MM_DD_YYYY_S
+ ,DATE_YYYY_MM_DD_S
+ ,DATE_YYYY_MM_DD_H
+ ,DATE_MMM_DD_YYYY
+}date_format_enum;
+
+
+#define DATE_AUX_YY_MM_DD 1
+#define DATE_AUX_YYYY_MM_DD 2
+
+
+typedef enum {
+ TIME_HH_MM_24 = 1 ,
+ TIME_HH_MM_12
+}time_format_enum;
+
+
+/* Define the RTC clock/alarm format type. */
+/* Could be rtc_alarm_format_enum or rtc_clock_format_enum */
+typedef kal_uint8 rtc_format_enum;
+
+
+/*Y:Year,M:Month,W:DOW,D:DOM,H:Hour,M:Min,S:SEC*/
+typedef enum {
+ DEVICE_AL_EN_None = 0 ,
+ DEVICE_AL_EN_ChkS ,
+ DEVICE_AL_EN_ChkMS ,
+ DEVICE_AL_EN_ChkHMS ,
+ DEVICE_AL_EN_ChkDHMS ,
+ DEVICE_AL_EN_ChkWHMS ,
+ DEVICE_AL_EN_ChkMDHMS ,
+ DEVICE_AL_EN_ChkYMDHMS ,
+ DEVICE_AL_EN_NoChange
+}rtc_alarm_format_enum;
+
+
+typedef enum {
+ DEVICE_TC_EN_None = 0 ,
+ DEVICE_TC_EN_ChkS ,
+ DEVICE_TC_EN_ChkM ,
+ DEVICE_TC_EN_ChkH ,
+ DEVICE_TC_EN_ChkD ,
+ DEVICE_TC_EN_ChkW ,
+ DEVICE_TC_EN_ChkMon ,
+ DEVICE_TC_EN_ChkY ,
+ DEVICE_TC_EN_NoChange
+}rtc_clock_format_enum;
+
+/* Define the alarm status. */
+typedef enum {
+ ALARM_STATUS_ON_POWEROFF_CHARING =0 , /* The alarm is started when it's power off with charging status. */
+ ALARM_STATUS_ON_POWEROFF , /* The alarm is started when it's power off status without charging. */
+ ALARM_STATUS_ON_POWERON /* The alarm is started when it's power on status. */
+}alarm_status_enum;
+
+
+/* Define the calling status */
+typedef enum {
+ UEM_CALL_UNKNOW = 0 ,
+ UEM_CALL_SETUP ,
+ UEM_CALL_CONNECT ,
+ UEM_CALL_DISCONNECT
+}uem_call_state_enum;
+
+
+/*****************************************************************************
+* GPIO / EINT Interface
+*****************************************************************************/
+
+/* Define the internal GPIO device type. */
+/* Becareful!!!!
+ MAX_GPIO_DEVICE_NUM Will impact the size of uem_context_rmi_struct data item !!!!! */
+
+typedef enum {
+ GPIO_DEV_LED_MAINLCD = 0 , /* Main LCD backlight */
+ GPIO_DEV_LED_SUBLCD , /* Sub LCD backlight */
+ GPIO_DEV_LED_STATUS_1 , /* Status LED R*/
+ GPIO_DEV_LED_STATUS_2 , /* Status LED G*/
+ GPIO_DEV_LED_STATUS_3 , /* Status LED B*/
+ GPIO_DEV_LED_KEY , /* Keypad backlight */
+ GPIO_DEV_VIBRATOR , /* Vibrator */
+ GPIO_DEV_FLASHLIGHT , /* FlashLight */
+ GPIO_DEV_FTE_FEEDBACK_VIB , /* Reserve_1 */
+ GPIO_DEV_LED_BACKLIGHT_DIMMING, /* Reserve_2 */
+ GPIO_DEV_RESERVED3 , /* Reserve_3 */
+ GPIO_DEV_RESERVED4 , /* Reserve_4 */
+ GPIO_DEV_RESERVED5 , /* Reserve_4 */
+ GPIO_DEV_RESERVED6 , /* Reserve_4 */
+ GPIO_DEV_RESERVED7 , /* Reserve_4 */
+ GPIO_DEV_RESERVED8 , /* Reserve_4 */
+ GPIO_DEV_RESERVED9 , /* Reserve_4 */
+ GPIO_DEV_RESERVED10 , /* Reserve_4 */
+ GPIO_DEV_RESERVED11 , /* Reserve_4 */
+ GPIO_DEV_RESERVED12 , /* Reserve_4 */
+ MAX_GPIO_DEVICE_NUM
+}gpio_device_enum;
+
+
+/* Define the LED light level. For LCD bright level, Keypad backlight, Flashlight */
+typedef enum {
+ LED_LIGHT_LEVEL0 =0 , /* turn off */
+ LED_LIGHT_LEVEL1 ,
+ LED_LIGHT_LEVEL2 ,
+ LED_LIGHT_LEVEL3 ,
+ LED_LIGHT_LEVEL4 ,
+ LED_LIGHT_LEVEL5 ,
+#if defined (WISDOM_MMI)
+ LED_LIGHT_LEVEL6 ,
+#endif
+ LED_LIGHT_LEVEL_MAX
+}gpio_device_led_level_typedef;
+
+typedef enum
+{
+ /* LED status pattern */
+ LED_PATTERN_BEGIN,
+
+ LED_POWER_ON = LED_PATTERN_BEGIN,
+ LED_POWER_OFF,
+ LED_BATTERY_WARNING,
+ LED_BATTERY_LOW,
+ LED_Connect900,
+ LED_Connect1800,
+ LED_OnCharging,
+ LED_FullCharging,
+ LED_MessageIn,
+ LED_MessageRemind,
+ LED_Caller1,
+ LED_Caller2,
+ LED_Caller3,
+ LED_Caller4,
+ LED_Caller5,
+ LED_Caller6,
+ LED_LimitService,
+ LED_NoService,
+ LED_Connect1900,
+ LED_Roaming,
+ LED_PATTERN_END = 50,
+
+ /* lcd backlight pattern */
+ LCD_PATTERN_BEGIN,
+ LCD_PATTERN_1 = LCD_PATTERN_BEGIN,
+ LCD_PATTERN_2,
+ LCD_PATTERN_END = 100,
+
+ /* vibrator pattern */
+ VIB_PATTERN_BEGIN,
+ VIB_PATTERN_1 = VIB_PATTERN_BEGIN,
+ VIB_PATTERN_2,
+ VIB_PATTERN_3, /* Incomming SMS */
+ VIB_PATTERN_4, /* FTE feedback*/
+ VIB_PATTERN_A,
+ VIB_PATTERN_B,
+ VIB_PATTERN_C,
+ VIB_PATTERN_END = 150,
+
+ MAX_PATTERN_ID = VIB_PATTERN_END
+} PATTERN_ID;
+
+typedef enum
+{
+ PLAY_STOP,
+ PLAY_REPEAT,
+ PLAY_ONCE,
+ MAX_PATTERN_TYPE = PLAY_ONCE
+} PATTERN_TYPE;
+
+typedef struct
+{
+ kal_uint8 gpio_control[MAX_LED_GPIO];
+ kal_uint16 duration_time; /* max time 65535 msec */
+} LED_PATTERN_STRUCT;
+
+typedef struct
+{
+ kal_uint8 gpio_control[MAX_LCD_BACKLIGHT];
+ kal_uint16 duration_time; /* max time 65535 msec */
+} LCD_PATTERN_STRUCT;
+
+typedef struct
+{
+ kal_uint8 gpio_control[MAX_VIBRATOR];
+ kal_uint16 duration_time; /* max time 65535 msec */
+} VIB_PATTERN_STRUCT;
+
+extern LCD_PATTERN_STRUCT *custom_get_lcd_patterns(PATTERN_ID lcd_pattern_id);
+extern LED_PATTERN_STRUCT *custom_get_led_patterns(PATTERN_ID led_pattern_id);
+extern VIB_PATTERN_STRUCT *custom_get_vib_patterns(PATTERN_ID vib_pattern_id);
+extern kal_bool uem_play_pattern(PATTERN_ID pattern_id, PATTERN_TYPE pattern_type);
+extern kal_uint8 custom_get_led_label(kal_uint8 id);
+extern kal_uint8 custom_get_lcd_label(kal_uint8 id);
+extern kal_uint8 custom_get_vib_label(kal_uint8 id);
+extern void custom_uem_set_rmi_lang_id(kal_uint8 *lang_id);
+extern kal_bool custom_uem_gpio_set_level(kal_uint8 gpio_dev_type, kal_uint8 gpio_dev_level);
+extern kal_uint8* custom_uem_get_equip_id(kal_uint8 equip_id);
+#ifdef __VIBRATION_SPEAKER_SUPPORT__
+typedef void (*custom_uem_spkvib_func)(kal_bool);
+extern void custom_uem_set_spkvib_func(void (*func)(kal_bool));
+#endif
+extern kal_uint32 custom_uem_get_bl_level_num(void);
+extern kal_uint32 custom_uem_get_pwm_bl_mode(kal_uint8 gpio_dev_type);
+
+/* It is a time from backlight dimming to backlight drak*/
+#define GPIO_BRIGHTNESS_DIMMING_TIME 5000
+
+/* Define the Vibrator level. */
+typedef enum {
+ VIBRATOR_OFF =0 , /* turn off */
+ VIBRATOR_ON /* turn on */
+}gpio_device_vibrator_level_typedef;
+
+
+typedef enum {
+ AUD_MODE_NORMAL =0 , /* Normal Mode */
+ AUD_MODE_HEADSET , /* HeadSet (Earphone) Mode */
+ AUD_MODE_LOUDSPK , /* Loudspeaker Mode */
+ MAX_AUD_MODE_NUM
+}audio_mode_enum;
+
+
+/* Define the external GPIO device interrupt. */
+typedef enum {
+ EXT_DEV_NONE = 0 , /* None, if there is no external device */
+ EXT_DEV_HANDFREE , /* Hand-free */
+ EXT_DEV_EARPHONE , /* Earphone */
+ EXT_DEV_CARKIT , /* Car-Kit */
+ EXT_DEV_KEY_1 , /* Send Key */
+ EXT_DEV_KEY_2 , /* Reserved */
+ EXT_DEV_UART ,
+ EXT_DEV_CLAM_OPEN = 8 ,
+ EXT_DEV_CLAM_CLOSE ,
+ EXT_DEV_HOOK_ON , /* for FWP */
+ EXT_DEV_HOOK_OFF , /* for FWP */
+ EXT_DEV_AUX_DETECT_DONE ,
+ EXT_DEV_TRANSMITTER_HOLD_ON,
+ EXT_DEV_TRANSMITTER_PUT_DOWN,
+ MAX_EXT_DEVICE_NUM
+}ext_device_enum;
+
+
+typedef enum {
+ AUD_LOOPBACK_MODE_NORMAL =0 , /* Normal Mode */
+ AUD_LOOPBACK_MODE_HEADSET_PREFER , /* Loudspk_prefer */
+ AUD_LOOPBACK_MODE_HEADSET , /* HeadSet (Earphone) Mode */
+ AUD_LOOPBACK_MODE_LOUDSPK , /* Loudspeaker Mode */
+ MAX_AUD_LOOPBACK_MODE_NUM
+}audio_loopback_mode_enum;
+
+
+/**************************************************************
+ **
+ ** Set UART Port Function Type
+ **
+ **************************************************************/
+typedef enum
+{
+ UART_NVRAM_LID_FUNC_UART_CONFIG,
+ UART_NVRAM_LID_FUNC_HIGH_SPEED_SIM,
+ UART_NVRAM_LID_FUNC_SWDBG,
+ UART_NVRAM_LID_FUNC_UART_POWER,
+ UART_NVRAM_LID_FUNC_TST_OUTPUT_MODE,
+ UART_NVRAM_LID_FUNC_USB_LOGGING
+} uart_nvram_lid_function_enum;
+
+
+/*****************************************************************************
+* PMIC Interface
+*****************************************************************************/
+typedef enum
+{
+ PMIC_VBAT_STATUS, /* Notify the battery voltage, BMT_VBAT_STATUS */
+ PMIC_CHARGER_IN, /* Charger plug in, BMT_CHARGER_IN */
+ PMIC_CHARGER_OUT, /* Charger plug out, BMT_CHARGER_OUT */
+ PMIC_OVERVOLPROTECT, /* The voltage of battery is too high. BMT_OVERVOLPROTECT */
+ PMIC_OVERBATTEMP, /* The temperature of battery is too high. BMT_OVERBATTEMP */
+ PMIC_LOWBATTEMP, /* The temperature of battery is too low. BMT_LOWBATTEMP */
+ PMIC_OVERCHARGECURRENT, /* Charge current is too large. BMT_OVERCHARGECURRENT */
+ PMIC_CHARGE_COMPLETE, /* Charge is completed. BMT_CHARGE_COMPLETE */
+ PMIC_INVALID_BATTERY, /* invalid battery BMT_INVALID_BAT*/
+ PMIC_INVALID_CHARGER, /* invalid charger BMT_INVALID_CHARGER*/
+ PMIC_CHARGING_TIMEOUT, /* Bad battery BMT_CHARGE_TIMEOUT */
+ PMIC_LOWCHARGECURRENT, /* Charge current is too Low. BMT_LOWCHARGECURRENT */
+ PMIC_CHARGE_BAD_CONTACT, /* Charger Bad Contact */
+ PMIC_BATTERY_BAD_CONTACT, /* Battery Bad Contact */
+ PMIC_USB_CHARGER_IN, /* Usb Charger plug in */
+ PMIC_USB_CHARGER_OUT, /* Usb Charger plug out */
+ PMIC_USB_NO_CHARGER_IN,
+ PMIC_USB_NO_CHARGER_OUT,
+ PMIC_BATTERY_IN,
+ PMIC_BATTERY_OUT
+} pmic_status_enum;
+typedef pmic_status_enum battery_status_enum;
+
+typedef enum
+{
+ BATTERY_LOW_POWEROFF = 0,
+ BATTERY_LOW_TX_PROHIBIT,
+ BATTERY_LOW_WARNING,
+ BATTERY_LEVEL_0,
+ BATTERY_LEVEL_1,
+ BATTERY_LEVEL_2,
+ BATTERY_LEVEL_3,
+ BATTERY_LEVEL_4 = BATTERY_LEVEL_3, /* BATTERY_LEVEL_4 */
+ BATTERY_LEVEL_5 = BATTERY_LEVEL_3, /* BATTERY_LEVEL_5 */
+ BATTERY_LEVEL_6 = BATTERY_LEVEL_3, /* BATTERY_LEVEL_6 */
+ BATTERY_LEVEL_LAST = 9
+
+} battery_level_enum;
+
+
+/* Define the power on status. */
+typedef enum
+{
+ POWER_ON_KEYPAD = 0 ,
+ POWER_ON_ALARM ,
+ POWER_ON_CHARGER_IN ,
+ POWER_ON_EXCEPTION ,
+ POWER_ON_USB ,
+ POWER_ON_UNINIT ,
+ POWER_ON_PRECHARGE = 8
+} power_on_status_enum;
+
+#define POWERON(mode) ( (mode == POWER_ON_KEYPAD) || \
+ (mode == POWER_ON_ALARM) || \
+ (mode == POWER_ON_CHARGER_IN) ||\
+ (mode == POWER_ON_USB) ||\
+ (mode == POWER_ON_EXCEPTION) ||\
+ (mode == POWER_ON_PRECHARGE) )
+
+extern power_on_status_enum uem_get_power_on_mode(void);
+
+/* Define the POWER reset type. This is to use for the power restablish, while it's on charging or alarm status. */
+typedef enum
+{
+ NORMAL_RESET,
+ CHARGING_RESET,
+ ALARM_RESET,
+ WM_RESET
+} pmic_reset_type_enum;
+
+typedef enum
+{
+ PMIC_GET_CHR_STATE
+ ,PMIC_GET_AC_USB
+ ,PMIC_GET_LED_CONFIG
+ ,PMIC_GET_RGB_DIM
+ ,PMIC_GET_BL_DIM
+ ,PMIC_GET_SPEAKER_STATE
+ ,PMIC_GET_SPEAKER_GAIN
+ ,PMIC_GET_MISC_LDO_STATE
+ ,PMIC_READ_REG
+ ,PMIC_WRITE_REG
+ ,PMIC_CHR_ENABLE
+ ,PMIC_CHR_CURRENT_CTRL
+ ,PMIC_USB_CHR_ENABLE
+ ,PMIC_LED_ENABLE
+ ,PMIC_LED_CONFIG
+ ,PMIC_RGB_DIM_CLK
+ ,PMIC_CHR_PUMP_ENABLE
+ ,PMIC_CHR_PUMP_CURRENT
+ ,PMIC_BL_DIM_CLK
+ ,PMIC_BL_DIV_BYPASS
+ ,PMIC_SPEAKER_ENABLE
+ ,PMIC_SPEAKER_GAIN
+ ,PMIC_VIBRATOR_ENABLE
+ ,PMIC_VIBRATOR_SEL
+ ,PMIC_VMC_ENABLE
+ ,PMIC_VMC_SEL
+ ,PMIC_VASW_ENABLE
+ ,PMIC_VASW_SEL
+ ,PMIC_USB_REG_ENABLE
+ ,PMIC_VBAT_ENABLE
+ ,PMIC_ISENSE_ENABLE
+ ,PMIC_BL_PWM
+ ,PMIC_MAX_NUM
+}pmic_config_req_enum;
+
+/***************************************************************
+ ** FM Radio
+ ***************************************************************/
+typedef enum
+{
+ FM_RADIO_CMD_MONO = 0,
+ FM_RADIO_CMD_STEREO,
+ FM_RADIO_CMD_RSSI,
+ FM_RADIO_CMD_IF_COUNT,
+ FM_RADIO_CMD_RSSI_INFO
+}fm_radio_config_cmd_enum;
+
+typedef enum
+{
+ FM_RADIO_COMMON_DISABLE = 0,
+ FM_RADIO_COMMON_ENABLE, /* in mono, only represent enable; in stereo, represent enable + sblend On */
+ FM_RADIO_COMMON_ENABLE_EXTRA /* in stereo, represent enable + sblend Off */
+}fm_radio_common_state_enum;
+
+/***************************************************************
+ ** RF Test Tool -- GSM
+ ***************************************************************/
+typedef enum
+{
+ RF_TEST_GSM_TX_BAND_850,
+ RF_TEST_GSM_TX_BAND_900,
+ RF_TEST_GSM_TX_BAND_1800,
+ RF_TEST_GSM_TX_BAND_1900
+}rf_test_gsm_tx_band_enum;
+
+typedef enum
+{
+ RF_TEST_GSM_STOP,
+ RF_TEST_GSM_TX_TEST,
+ RF_TEST_GSM_RX_TEST,
+ RF_TEST_GSM_POWER_SCAN,
+ RF_TEST_GSM_TX_TEST_MULTI_SLOT,
+ RF_TEST_GSM_RX_TEST_TWO_PATH, //5
+ RF_TEST_GSM_GET_TX_POWER //6
+}rf_test_gsm_req_enum;
+
+/***************************************************************
+ ** RF Test Tool -- WiFi
+ ***************************************************************/
+
+typedef enum
+{
+ RF_TEST_WIFI_STOP,
+ RF_TEST_WIFI_TEST_MODE,
+ RF_TEST_WIFI_NORMAL_MODE,
+ RF_TEST_WIFI_TX_GET_DAC_OFFSET,
+ RF_TEST_WIFI_TX_OUTPUT_POWER,
+ RF_TEST_WIFI_TX_CARRIER_SUPP,
+ RF_TEST_WIFI_TX_LOCAL_FREQ,
+ RF_TEST_WIFI_TX_CONT_PKT,
+ RF_TEST_WIFI_RX_CONT_PKT,
+ RF_TEST_WIFI_POWER_SAVE,
+ RF_TEST_WIFI_REG_MCR32_WRITE,
+ RF_TEST_WIFI_REG_MCR32_READ,
+ RF_TEST_WIFI_REG_MCR16_WRITE,
+ RF_TEST_WIFI_REG_MCR16_READ,
+ RF_TEST_WIFI_REG_BBCR_WRITE,
+ RF_TEST_WIFI_REG_BBCR_READ,
+ RF_TEST_WIFI_REG_EEPROM_WRITE,
+ RF_TEST_WIFI_REG_EEPROM_READ,
+ RF_TEST_WIFI_REG_EFUSE_WRITE,
+ RF_TEST_WIFI_REG_EFUSE_READ
+}rf_test_wifi_req_enum;
+
+/*****************************************************************************
+* Misc Interface
+*****************************************************************************/
+/* Indicator data type */
+typedef enum
+{
+ IND_BATTCHG = 0 ,
+ IND_SIGNAL ,
+ IND_SERVICE ,
+ IND_SOUNDER ,
+ IND_MESSAGE ,
+ IND_CALL ,
+ IND_VOX ,
+ IND_ROAM ,
+ IND_SMSFULL
+} indicator_type_enum;
+
+
+/* Define the equipment to return the string mapping. */
+typedef enum
+{
+ EQ_ME_MANUFACTURE_ID = 0 ,
+ EQ_ME_MODEL_ID ,
+ EQ_ME_REVISION_ID ,
+ EQ_ME_SERIAL_NUMBER_ID ,
+ EQ_ME_SERIAL_NUMBER_SIM2_ID ,
+ EQ_ME_GLOBAL_OBJECT_ID ,
+ EQ_ME_MANUFACTURE_INFO_ID ,
+ EQ_ME_COMP_CAP_LIST_ID ,
+ EQ_ME_SERIAL_NUMBER_SIM3_ID ,
+ EQ_ME_SERIAL_NUMBER_SIM4_ID ,
+ MAX_ME_ID_NUM
+} equip_id_enum;
+
+
+#define MAX_ME_ID_LEN 30
+
+
+/* Define the device process status. */
+typedef enum
+{
+ DEV_OK = 0 , /* The device status is ok to process. */
+ DEV_FAIL , /* The device status is fail to process*/
+ DEV_FAIL_VM_NO_FREE_ENTRY , /* voice mail fail cause */
+ DEV_FAIL_VM_BUFFER_FULL ,
+ DEV_FAIL_VM_PLAY_NO_DATA
+} dev_status_enum;
+
+
+/*****************************************************************************
+* USB Interface
+*****************************************************************************/
+typedef enum
+{
+ DEVUSB_DETECT_ACTION_UNKNOWN = 0 ,
+ DEVUSB_DETECT_ACTION_PLUGIN ,
+ DEVUSB_DETECT_ACTION_PLUGOUT ,
+ DEVUSB_DETECT_ACTION_USB_SUSPEND ,
+ DEVUSB_DETECT_ACTION_MAX_ID
+} devusb_detect_action_enum;
+
+
+typedef enum
+{
+ DEVUSB_CFG_ACTION_UNKNOWN = 0 ,
+ DEVUSB_CFG_ACTION_CDC_ACM ,
+ DEVUSB_CFG_ACTION_MASS_STORAGE ,
+ DEVUSB_CFG_ACTION_MULTI_COM,
+ DEVUSB_CFG_ACTION_WEBCAM ,
+ DEVUSB_CFG_ACTION_STOP_MS ,
+ DEVUSB_CFG_ACTION_IRDBG ,
+ DEVUSB_CFG_ACTION_PICTBRIGE ,
+ DEVUSB_CFG_ACTION_MTP ,
+ DEVUSB_CFG_ACTION_STOP_MTP ,
+ DEVUSB_CFG_ACTION_MAX_ID
+} devusb_cfg_action_enum;
+
+
+typedef enum
+{
+ USB_SWITCH_PORT_APP_DATA = 0 ,
+ USB_SWITCH_PORT_APP_DEBUG,
+ USB_SWITCH_PORT_APP_NULL
+} usb_switch_port_app_enum;
+
+#if (defined(MT6229) || defined(MT6227) || defined(MT6228) || defined(MT6225) || defined(MT6268T) || defined(MT6268H) || defined(MT6230) || defined(MT6227D) || defined(MT6223) || defined(MT6226D) || defined(MT6223P))
+#if (defined(MT6227) || defined(MT6227D) || defined(MT6226D))
+typedef enum
+{
+
+ EM_SWDBG_OFF,
+ EM_SWDBG_DSP_L1_PS,
+ EM_SWDBG_L1_PS,
+ EM_SWDBG_MCU,
+ EM_SWDBG_RESET,
+ EM_SWDBG_MAX
+} EM_SWDBG_ITEM;
+
+#elif defined(MT6228)
+typedef enum
+{
+
+ EM_SWDBG_OFF,
+ EM_SWDBG_DSP_L1_PS,
+ EM_SWDBG_L1_PS,
+ EM_SWDBG_MCU,
+ EM_SWDBG_MCU_DSP,
+ EM_SWDBG_RESET,
+ EM_SWDBG_MAX
+} EM_SWDBG_ITEM;
+
+#else
+typedef enum
+{
+
+ EM_SWDBG_OFF,
+ EM_SWDBG_DSP_L1,
+ EM_SWDBG_DSP_PS,
+ EM_SWDBG_L1_PS,
+ EM_SWDBG_MCU,
+ EM_SWDBG_MCU_DSP,
+ EM_SWDBG_RESET,
+ EM_SWDBG_MAX
+} EM_SWDBG_ITEM;
+
+#endif
+#endif /* #if (defined(MT6229) || defined(MT6227) || defined(MT6228) || defined(MT6225) || defined(MT6268T)|| defined(MT6268H) || defined(MT6230) || defined(MT6227D)) */
+
+typedef enum
+{
+ EM_USB_LOGGING_NONE,
+#ifdef __DSPIRDBG__
+ EM_USB_LOGGING_IRDBG,
+#endif
+
+
+ EM_USB_LOGGING_MAX
+} EM_USB_LOGGING_ITEM;
+
+
+//#if defined(MT6223PMU)
+/***************************************************************
+ ** PMU6223
+ ***************************************************************/
+/* Enum */
+typedef enum
+{
+ MT6223PMU_READ_REG
+ ,MT6223PMU_WRITE_REG
+ ,MT6223PMU_GET_CHR_STATUS
+ ,MT6223PMU_SET_CHR_GET_CHR_EN
+ ,MT6223PMU_SET_CHR_SET_CHR_EN
+ ,MT6223PMU_SET_CHR_GET_CHR_CUR
+ ,MT6223PMU_SET_CHR_SET_CHR_CUR
+ ,MT6223PMU_SET_CHR_GET_CHR_CUR_OFFSET
+ ,MT6223PMU_SET_CHR_SET_CHR_CUR_OFFSET
+// ,MT6223PMU_SET_CHR_GET_OV_TH_FREEZE
+// ,MT6223PMU_SET_CHR_SET_OV_TH_FREEZE
+ ,MT6223PMU_SET_CHR_GET_CV_THRESHOLD
+ ,MT6223PMU_SET_CHR_SET_CV_THRESHOLD
+ ,MT6223PMU_GET_DRIVER_INFO
+ ,MT6223PMU_SET_DRIVER_INFO
+ ,MT6223PMU_GET_LDO_VOLTAGE
+ ,MT6223PMU_SET_LDO_VOLTAGE
+ ,MT6223PMU_GET_LDO_ENABLE
+ ,MT6223PMU_SET_LDO_ENABLE
+ ,MT6223PMU_GET_BIAS_CURRENT
+ ,MT6223PMU_SET_BIAS_CURRENT
+
+ ,MT6223PMU_MAX_NUM
+}EM_MT6223PMU_REQ_ENUM;
+
+
+typedef enum
+{
+ PMU6223_CHR_STATE_CHR_DET = 0,
+ PMU6223_CHR_STATE_BAT_ON,
+ PMU6223_CHR_STATE_CV,
+ PMU6223_CHR_STATE_CHR_OVP,
+ PMU6223_CHR_STATE_CHARGING,
+ PMU6223_CHR_STATE_MAX
+}PMU6223_CHR_STATE;
+
+typedef enum
+{
+ PMU6223_CHR_CUR_OFFSET_P1 = 0,
+ PMU6223_CHR_CUR_OFFSET_P2,
+ PMU6223_CHR_CUR_OFFSET_M2,
+ PMU6223_CHR_CUR_OFFSET_M1
+}PMU6223_CHR_CUR_OFFSET;
+
+typedef enum
+{
+ PMU6223_DRIVE_INFO_VIB = 0,
+ PMU6223_DRIVE_INFO_LED
+}PMU6223_DRIVE_INFO;
+
+typedef enum
+{
+ PMU6223_LDO_VOLTAGE_VRF = 0,
+ PMU6223_LDO_VOLTAGE_VCORE,
+ PMU6223_LDO_VOLTAGE_VM,
+ PMU6223_LDO_VOLTAGE_VIO,
+ PMU6223_LDO_VOLTAGE_VA,
+ PMU6223_LDO_VOLTAGE_VTCXO,
+ PMU6223_LDO_VOLTAGE_VSIM,
+ PMU6223_LDO_VOLTAGE_VRTC1
+// PMU6223_LDO_VOLTAGE_VRTC2
+}PMU6223_LDO_VOLTAGE_TYPE;
+
+typedef enum
+{
+ PMU6223_LDO_ENABLE_VRF = 0,
+ PMU6223_LDO_ENABLE_VTCXO,
+ PMU6223_LDO_ENABLE_VSIM
+}PMU6223_LDO_ENABLE;
+
+typedef enum
+{
+ PMU6223_BIAS_CALIBRATE_VRF = 0,
+ PMU6223_BIAS_CALIBRATE_VM,
+ PMU6223_BIAS_CALIBRATE_VIO,
+ PMU6223_BIAS_CALIBRATE_VSIM,
+ PMU6223_BIAS_CALIBRATE_VCORE_CAL
+}PMU6223_BIAS_CALIBRATE_TYPE;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif /* if 0 */
+
+/***************************************************************
+ ** PMU6238
+ ***************************************************************/
+/* Enum */
+typedef enum
+{
+ MT6238PMU_READ_REG
+ ,MT6238PMU_WRITE_REG
+ ,MT6238PMU_GET_CHR_STATUS
+ ,MT6238PMU_SET_CHR_GET_CHR_EN
+ ,MT6238PMU_SET_CHR_SET_CHR_EN
+ ,MT6238PMU_SET_CHR_GET_CHR_CUR
+ ,MT6238PMU_SET_CHR_SET_CHR_CUR
+ ,MT6238PMU_SET_CHR_GET_CHR_CUR_OFFSET
+ ,MT6238PMU_SET_CHR_SET_CHR_CUR_OFFSET
+ ,MT6238PMU_SET_CHR_GET_OV_TH_FREEZE
+ ,MT6238PMU_SET_CHR_SET_OV_TH_FREEZE
+ ,MT6238PMU_SET_CHR_GET_CV_THRESHOLD
+ ,MT6238PMU_SET_CHR_SET_CV_THRESHOLD
+ ,MT6238PMU_GET_DRIVER_INFO
+ ,MT6238PMU_SET_DRIVER_INFO
+ ,MT6238PMU_GET_LDO_VOL_SEL_VBT /* MC */
+ ,MT6238PMU_SET_LDO_VOL_SEL_VBT /* MC */
+ ,MT6238PMU_GET_LDO_VOL_SEL_VCAMD /* CAMERA */
+ ,MT6238PMU_SET_LDO_VOL_SEL_VCAMD /* CAMERA */
+ ,MT6238PMU_GET_LDO_VOL_SEL_VCAMA /* SW_A */
+ ,MT6238PMU_SET_LDO_VOL_SEL_VCAMA /* SW_A */
+ ,MT6238PMU_GET_LDO_VOL_SEL_VSIM
+ ,MT6238PMU_SET_LDO_VOL_SEL_VSIM
+ ,MT6238PMU_GET_LDO_VOLTAGE_CAL
+ ,MT6238PMU_SET_LDO_VOLTAGE_CAL
+ ,MT6238PMU_GET_LDO_ENABLE
+ ,MT6238PMU_SET_LDO_ENABLE
+ ,MT6238PMU_GET_DC_CONTROL
+ ,MT6238PMU_SET_DC_CONTROL
+ ,MT6238PMU_GET_BIAS_CURRENT
+ ,MT6238PMU_SET_BIAS_CURRENT
+
+ ,MT6238PMU_MAX_NUM
+}EM_MT6238PMU_REQ_ENUM;
+
+typedef enum
+{
+ EM_MT6238PMU_OV_TH_FREEZE_AUTO = 0,
+ EM_MT6238PMU_OV_TH_FREEZE_FIXED
+} EM_MT6238PMU_OV_TH_FREEZE_TYPE;
+
+
+typedef enum
+{
+ PMU6238_CHR_CUR_OFFSET_P1 = 0,
+ PMU6238_CHR_CUR_OFFSET_P2,
+ PMU6238_CHR_CUR_OFFSET_M2,
+ PMU6238_CHR_CUR_OFFSET_M1
+}PMU6238_CHR_CUR_OFFSET;
+
+typedef enum
+{
+ PMU6238_DRIVE_INFO_VIB = 0,
+ PMU6238_DRIVE_INFO_LED
+}PMU6238_DRIVE_INFO;
+
+typedef enum
+{
+ PMU6238_LDO_VOLTAGE_VCORE = 0, /* FBADJ */
+ PMU6238_LDO_VOLTAGE_VCORE_SLEEP, /* FBADJ_SLEEP */
+ PMU6238_LDO_VOLTAGE_VRF,
+ PMU6238_LDO_VOLTAGE_VM,
+ PMU6238_LDO_VOLTAGE_VIO,
+ PMU6238_LDO_VOLTAGE_VA,
+ PMU6238_LDO_VOLTAGE_VTCXO,
+ PMU6238_LDO_VOLTAGE_VSIM,
+ PMU6238_LDO_VOLTAGE_VRTC1,
+ PMU6238_LDO_VOLTAGE_VRTC2,
+ PMU6238_LDO_VOLTAGE_VUSB,
+ PMU6238_LDO_VOLTAGE_VBT, /* VMC */
+ PMU6238_LDO_VOLTAGE_VCAMD, /* VCAMERA */
+ PMU6238_LDO_VOLTAGE_VCAMA, /* VSW_A */
+ PMU6238_LDO_VOLTAGE_VSIM2
+}PMU6238_LDO_VOLTAGE_TYPE;
+
+
+typedef enum
+{
+ PMU6238_LDO_ENABLE_VRF_ON_SEL = 0,
+ PMU6238_LDO_ENABLE_VRF_EN,
+ PMU6238_LDO_ENABLE_VTCXO_ON_SEL,
+ PMU6238_LDO_ENABLE_VTCXO_EN,
+ PMU6238_LDO_ENABLE_VUSB,
+ PMU6238_LDO_ENABLE_VBT, /* VMC */
+ PMU6238_LDO_ENABLE_VCAM_D, /* CAMERA */
+ PMU6238_LDO_ENABLE_VCAM_A, /* SW_A */
+ PMU6238_LDO_ENABLE_VSIM1,
+ PMU6238_LDO_ENABLE_VSIM2
+}PMU6238_LDO_ENABLE;
+
+
+typedef enum
+{
+ PMU6238_DC_CONTROL_GAINP = 0,
+ PMU6238_DC_CONTROL_GAIN,
+ PMU6238_DC_CONTROL_GAIND,
+ PMU6238_DC_CONTROL_DIR_CTRL_EN,
+ PMU6238_DC_CONTROL_DCVCK_SEL,
+ PMU6238_DC_CONTROL_ISEL,
+ PMU6238_DC_CONTROL_ADJCKSEL,
+ PMU6238_DC_CONTROL_MODESET,
+ PMU6238_DC_CONTROL_MODEEN,
+ PMU6238_DC_CONTROL_PFMSEL_0_3,
+ PMU6238_DC_CONTROL_PFMSEL_4_6,
+ PMU6238_DC_CONTROL_IASEL,
+ PMU6238_DC_CONTROL_SLEW_CTRL
+}PMU6238_DC_CONTROL_TYPE;
+
+typedef enum
+{
+ PMU6238_BIAS_CALIBRATE_VRF = 0,
+ PMU6238_BIAS_CALIBRATE_VM,
+ PMU6238_BIAS_CALIBRATE_VIO,
+ PMU6238_BIAS_CALIBRATE_VA,
+ PMU6238_BIAS_CALIBRATE_VTCXO,
+ PMU6238_BIAS_CALIBRATE_VSIM,
+ PMU6238_BIAS_CALIBRATE_VUSB,
+ PMU6238_BIAS_CALIBRATE_VBT,
+ PMU6238_BIAS_CALIBRATE_VCAMD,
+ PMU6238_BIAS_CALIBRATE_VCAMA,
+ PMU6238_BIAS_CALIBRATE_VSIM2
+}PMU6238_BIAS_CALIBRATE_TYPE;
+
+/***************************************************************
+ ** PMU6326
+ ***************************************************************/
+/* Enum */
+typedef enum
+{
+ MT6326PMU_READ_REG
+ ,MT6326PMU_WRITE_REG
+ ,MT6326PMU_MAX_NUM
+}EM_MT6326PMU_REQ_ENUM;
+
+/***************************************************************
+ ** PMU6253
+ ***************************************************************/
+/* Enum */
+typedef enum
+{
+ MT6253PMU_READ_REG
+ ,MT6253PMU_WRITE_REG
+ ,MT6253PMU_MAX_NUM
+}EM_MT6253PMU_REQ_ENUM;
+
+#endif /* _DEVICE_H */
+
+