k7摄像头patch
authorp15692025051 <846603105@qq.com>
Mon, 3 Jul 2023 03:47:23 +0000 (11:47 +0800)
committerp15692025051 <846603105@qq.com>
Mon, 3 Jul 2023 03:47:23 +0000 (11:47 +0800)
12 files changed:
2.sdk/gui/lv_drivers/display/st7789v2_spi.c
2.sdk/gui/lv_drivers/indev/bl6xx3_fw_update.h
2.sdk/product/craneg_modem/dsp/CRANEG/ALIOS/LTEGSM/rf.bin
2.sdk/product/craneg_modem/framework/cus/gpio_cus.c
2.sdk/product/craneg_modem/framework/cus/pin_cfg.c
2.sdk/product/craneg_modem/framework/hal/chip/pmic/pmic_drv.c
2.sdk/product/craneg_modem/framework/hal/device/camera/cam_sensor.h
2.sdk/product/craneg_modem/framework/hal/device/camera/cam_sensor_spi_gc032a.c
2.sdk/product/craneg_modem/framework/scripts/boards/crane_evb/crane_evb_z2_bld_rel.conf
2.sdk/product/craneg_modem/framework/scripts/boards/crane_evb/craneg_bld_rel.conf
2.sdk/product/craneg_modem/tavor/Arbel/CRANE_SDK_LIB/FP_GENERIC_ALIOS_LTEGSM/Arbel_objliblist.txt
2.sdk/releasepack/config/partition/CRANE_SINGLE_FLASH_LAYOUT.json

index 78a7630..df7b689 100644 (file)
@@ -138,7 +138,7 @@ const static struct spi_timing lcd_st7789v2_spi_timing = {
 };
 
 const static struct spi_info lcd_st7789v2_spi_info_watch = {
-    4,
+    3,
     1,
     1,
     SPI_FORMAT_RGB565,
index 26e3ca1..e69c29e 100644 (file)
@@ -4,7 +4,7 @@
 //gc9307 240*284  = 1
 //st7789v2 240*320 = 2
 //st7789v2 240*320 JL = 3
-#define H81_TP 2
+#define H81_TP 4
 #if 1
 //#include "bl6xx3_fw_a90_mw_gvs_update.h"
 //#include "bl6xx3_fw_h90_y05_update.h"
@@ -14,7 +14,7 @@
 #include "bl6xx3_fw_h81_st_update.h"
 #elif H81_TP == 3
 #include "bl6xx3_fw_h81_st_JL_update.h"
-#elif H81_TP == 4
+#elif H81_TP == 4 //st7789v3 240*284
 #include "bl6xx3_fw_h81_st_K7_update.h"
 #endif
 #else
index fa1d5b2..5c53927 100644 (file)
Binary files a/2.sdk/product/craneg_modem/dsp/CRANEG/ALIOS/LTEGSM/rf.bin and b/2.sdk/product/craneg_modem/dsp/CRANEG/ALIOS/LTEGSM/rf.bin differ
index ead0603..7cbde33 100644 (file)
-#include "plat_config_defs.h"\r
-#include "plat_types.h"\r
-#include "intc_api.h"\r
-#include "gpio_api.h"\r
-#include "pmic_api.h"\r\r
-#include "ui_log_api.h"\r\r
-#include "event.h"\r
-#include "ui_os_message.h"\r
-#include "ui_os_api.h"\r
-#include "mfpr_api.h"\r
-#include "base_prv.h"\r
-#include "device_cus.h"\r
-\r
-enum {\r
-       VIBRATOR_LEVEL0= 0,\r
-       VIBRATOR_LEVEL1= 1,\r
-       VIBRATOR_LEVEL2,\r
-       VIBRATOR_LEVEL3,\r
-       VIBRATOR_LEVEL4,\r
-       VIBRATOR_LEVEL5,\r
-};\r
-\r
-//wifi pin config\r
-#define WIFI_SDIO_SLOT1                        1\r
-#define WIFI_SDIO_SLOT2                        2\r
-#define WIFI_PWR_EN                            83\r
-#define WIFI_INT_HOST                  34\r
-#define WIFI_PWR_RESET                 -1\r
-#define WIFI_HOST_WAKE_WIFI            -1\r
-#define WIFI_32K_SELECT                        1\r
-\r
-#define Evb1601_Pm802ChargerEn_GPIO HAL_GPIO_82\r
-#define Evb1601_Pm802Backlight_GPIO HAL_GPIO_84\r
-#define Evb1601_Pm802ChargerSta_GPIO HAL_GPIO_83\r
-\r
-#define pm812_Charger_enable 70 //gpio70  need config from evb\r
-extern void ChargerStsPinmuxCfg(void);\r
-extern void CameraFlashPinmuxcfg(void);\r
-extern void PM812_PwmSetLevel(UINT8 level);\r
-extern void set_sdcard_power_gpio(UINT8 num);\r
-extern HANDLE get_dev_mon_task(void);\r
-extern void backlight_set_brightness(uint8_t brightness);\r
-extern int sdio_init(int sd_slot, int wifi_pwr_en, int wifi_int_host, int wifi_pwr_reset, \r
-                                                                       int host_wakeup_wifi, int sys_clk_32k);\r
-extern UINT8 g_mciLcdBrightnessLevel;\r
-\r
-#ifdef CONFIG_LCD_DUAL_PANEL_SUPPORT\r
-volatile unsigned int hallval = 0;\r
-static OS_HISR hall_hisr_ref;\r
-static u8 g_gpio_timerid = INVALID_TIMER_ID;\r
-extern BOOL sub_lcd_flag;\r
-void Os_Create_HISR(VOID** hisr, char* name, VOID (*hisr_entry)(VOID), unsigned char priority);\r
-INT32 Os_Activate_HISR(VOID** hisr);\r
-INT32 Os_Delete_HISR(VOID** hisr);\r
-#endif\r
-\r
-#if defined(CONFIG_BOARD_CRANEG_A0)\r
-extern void Craneg_pm803_camera_power_Pinmuxcfg(void);\r
-extern void Craneg_pm803Pinmuxcfg(void);\r
-#endif\r
-\r
-#if defined(CONFIG_BOARD_CUSTOM_B_V01) || defined(CONFIG_BOARD_CUSTOM_B_V02)\r
-#define GPIO_LOCK   HAL_GPIO_84\r
-#define GPIO_EXT_PA    HAL_GPIO_85\r
-#define GPIO_EN_FM     HAL_GPIO_64\r
-#endif\r
-#if defined(CONFIG_BOARD_CUSTOM_X)\r
-#define GPIO_EXT_PA    HAL_GPIO_82\r
-#define GPIO_EN_FM     HAL_GPIO_81\r
-#endif\r
-#if defined(CONFIG_BOARD_CUSTOM_S)\r
-#define GPIO_EXT_PA    HAL_GPIO_33\r
-#elif defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)\r
-#if defined(CONFIG_BOARD_SIMWARE_W61_V2)\r
-#define GPIO_EXT_PA    HAL_GPIO_34\r
-#elif defined(CONFIG_BOARD_SIMWARE_W71) || defined(CONFIG_BOARD_SIMWARE_A90) || defined(CONFIG_BOARD_SIMWARE_A90SH) || defined(CONFIG_BOARD_SIMWARE_H81)\r
-#define GPIO_EXT_PA HAL_GPIO_28\r
-#else\r
-#define GPIO_EXT_PA    HAL_GPIO_75\r
-#endif\r
-#else\r
-#define GPIO_EXT_PA HAL_GPIO_QTY\r
-#endif\r
-\r
-#if defined(CONFIG_BOARD_CUSTOM_V)\r
-#define GPIO_EN_FM     HAL_GPIO_82\r
-#endif\r
-\r
-#if defined(CONFIG_BOARD_CUSTOM_S)\r
-#define ChargerEnable_GPIO HAL_GPIO_54\r
-#define ChargerSta_GPIO HAL_GPIO_53\r
-#elif defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)\r
-#if defined(CONFIG_BOARD_SIMWARE_W61_V2)\r
-#define ChargerEnable_GPIO HAL_GPIO_3\r
-#define ChargerSta_GPIO HAL_GPIO_4\r
-#elif defined(CONFIG_BOARD_SIMWARE_W71)\r
-#define ChargerEnable_GPIO HAL_GPIO_52\r
-#define ChargerSta_GPIO HAL_GPIO_51\r
-#elif defined(CONFIG_BOARD_SIMWARE_A90) || defined(CONFIG_BOARD_SIMWARE_A90SH) || defined(CONFIG_BOARD_SIMWARE_H81)\r
-#define ChargerEnable_GPIO HAL_GPIO_3\r
-#define ChargerSta_GPIO HAL_GPIO_2\r
-#else\r
-#define ChargerEnable_GPIO HAL_GPIO_82\r
-#define ChargerSta_GPIO HAL_GPIO_85\r
-#endif\r
-#else\r
-#define ChargerEnable_GPIO HAL_GPIO_14\r
-#define ChargerSta_GPIO HAL_GPIO_13\r
-#endif\r
-\r
-#if defined(CONFIG_BOARD_CUSTOM_S)\r
-#define SD_PW_GPIO     70\r
-#elif defined(CONFIG_BOARD_CRANE_1601_EVB)\r
-#define SD_PW_GPIO     75\r
-#elif defined(CONFIG_BOARD_CRANEG_A0)\r
-#define SD_PW_GPIO     70\r
-#else\r
-#define SD_PW_GPIO     255\r
-#endif\r
-\r
-#if defined(CONFIG_BOARD_CUSTOM_S)\r
-#define Vibrator_GPIO HAL_GPIO_86\r
-#elif defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)\r
-#if defined(CONFIG_BOARD_SIMWARE_W61_V2)\r
-#define Vibrator_GPIO HAL_GPIO_6\r
-#elif defined(CONFIG_BOARD_SIMWARE_W71) || defined(CONFIG_BOARD_SIMWARE_A90) || defined(CONFIG_BOARD_SIMWARE_A90SH) || defined(CONFIG_BOARD_SIMWARE_H81)\r
-#define Vibrator_GPIO HAL_GPIO_124\r
-#else\r
-#define Vibrator_GPIO HAL_GPIO_32\r
-#endif\r
-#else\r
-#define Vibrator_GPIO 128\r
-#endif\r
-\r
-#if defined(CONFIG_LCD_DUAL_PANEL_SUPPORT)\r
-void HallSwitch(uint32 on_off)\r
-{\r
-    UI_EVENT ev;\r
-    ev.nEventId = EV_DM_IOCTL_IND;\r
-    ev.nParam1  = on_off;\r
-    ev.nParam2  = 1;\r
-    ev.nParam3  = 0;\r
-    //UOS_SendEvent(get_dev_mon_task(), &ev, UOS_WAIT_FOREVER, UOS_EVENT_PRI_NORMAL);\r
-    \r
-    if (on_off)\r
-        sub_lcd_flag = 0;\r
-    else\r
-        sub_lcd_flag = 1;\r
-    dm_SendSwitchLcdMessage(&ev);\r
-}\r
-\r
-void Hall_Detect_Timer(void)\r
-{\r
-       unsigned int  val;\r
-\r
-       val = gpio_get_value(HAL_GPIO_75);\r
-\r
-       if(val == hallval){\r
-               raw_uart_log("hall status changed, now switch lcd.\n");\r
-               HallSwitch(val);\r
-       }\r
-\r
-       gpio_enable_edge_detection(HAL_GPIO_75, GPIO_TWO_EDGE); \r
-}\r
-\r
-static void hallHisr(void)\r
-{\r
-       gpio_disable_edge_detection(HAL_GPIO_75, GPIO_TWO_EDGE);\r
-       hallval = gpio_get_value(HAL_GPIO_75);\r
-       UOS_StartFunctionTimer_single(g_gpio_timerid, MS_TO_TICKS(300), Hall_Detect_Timer, NULL, "hall detect timer");\r
-}\r
-\r
-void CLAM_EINT_HISR(void)\r
-{\r
-       OS_Activate_HISR(&hall_hisr_ref);\r
-       return;\r
-}\r
-\r
-void Hall_Create_Timer(void)\r
-{\r
-       if(g_gpio_timerid == INVALID_TIMER_ID)\r
-               g_gpio_timerid = UOS_get_FunctionTimer();\r
-\r
-       return;\r
-}\r
-\r
-void  HALL_EINT_Registration(void)\r
-{\r
-    gpio_direction_input(HAL_GPIO_75);\r
-    gpio_irq_config(HAL_GPIO_75, GPIO_TWO_EDGE, CLAM_EINT_HISR);\r
-}\r
-\r
-void  HallEnInit(void)\r
-{\r
-       Hall_Create_Timer();\r
-       HALL_EINT_Registration();\r
-       OS_Create_HISR(&hall_hisr_ref, "HALL_HISR", hallHisr, 2);\r
-}\r
-\r
-unsigned int GetMainLcdOn(void)\r
-{\r
-      gpio_direction_input(HAL_GPIO_75);\r
-       return gpio_get_value(HAL_GPIO_75);\r
-}\r
-#endif\r
-\r
-#if defined(CONFIG_LOCK_KEY_SUPPORT)\r
-void Lock_irq_hand(void)\r
-{ \r
-       raw_uart_log("lock_isr-lock_lisr!\r\n");\r
-       if(gpio_get_value(GPIO_LOCK))\r
-       {\r
-               //raw_uart_log("gpio_get_value=1!\r\n");\r
-       }\r
-       else\r
-       {\r
-               //raw_uart_log("gpio_get_value=0!\r\n");\r
-       }\r
-}\r
-\r
-void LockInit(void)\r
-{\r
-       raw_uart_log("LockInit_###!\r\n");\r
-       GpioSetDirection(GPIO_LOCK,GPIO_IN_PIN);//GPIO_IN_PIN-0  HAL_GPIO_14-14\r
-       GpioBindInterruptCallback(GPIO_LOCK,Lock_irq_hand);\r
-    GpioEnableEdgeDetection(GPIO_LOCK, (GPIOTransitionType)GPIO_RISE_EDGE);\r
-    GpioEnableEdgeDetection(GPIO_LOCK, (GPIOTransitionType)GPIO_FALL_EDGE);\r
-       raw_uart_log("LockInit_Done!\r\n");\r
-}\r
-#endif\r
-\r
-void SpeakerExtPaEnable(uint32 on)\r
-{\r
-       UI_EVENT ev;\r
-       ev.nEventId = EV_DM_IOCTL_IND;\r
-    ev.nParam1  = on;\r
-       ev.nParam2  = 0;\r
-    ev.nParam3  = 0;\r
-       UOS_SendEvent(get_dev_mon_task(), &ev, UOS_WAIT_FOREVER, UOS_EVENT_PRI_NORMAL);\r
-}\r
-\r
-void SpeakerExtPaInit(void)\r
-{\r
-       gpio_direction_output(GPIO_EXT_PA);\r
-       gpio_set_value(GPIO_EXT_PA, 0);\r
-}\r
-\r
-void EnableSpeakerPA(uint32 on)\r
-{\r
-       int i = 0;\r
-       volatile int j = 0;\r
-\r
-       if(0 == on) {\r
-               gpio_set_value(GPIO_EXT_PA, 0);\r
-               //raw_uart_log("test ext pa gpio on: %d\r\n",on);\r
-       } else {\r
-               //raw_uart_log("test ext pa gpio on: %d\r\n",on);\r
-               for (i = 0; i < on; ++i) {\r
-                       gpio_set_value(GPIO_EXT_PA, 0);\r
-                       for (j = 0; j < 80; ++j);\r
-                       gpio_set_value(GPIO_EXT_PA, 1); \r
-                       for (j = 0; j < 80; ++j);\r
-               }\r
-       }\r
-}\r
-\r
-void CameraFlashPowerOnOff(unsigned char on_off)\r
-{\r
-    if (Pmic_is_pm812()){\r
-           CameraFlashPinmuxcfg();\r
-           gpio_direction_output(HAL_GPIO_78);\r
-           if(0==on_off)\r
-            gpio_set_value(HAL_GPIO_78, 0);\r
-           else\r
-                   gpio_set_value(HAL_GPIO_78, 1);\r
-    }else if(Pmic_is_pm803()){\r
-#if defined(CONFIG_BOARD_CRANEG_A0)\r
-        gpio_direction_output(HAL_GPIO_86);\r
-           if(0==on_off)\r
-            gpio_set_value(HAL_GPIO_86, 0);\r
-           else\r
-                   gpio_set_value(HAL_GPIO_86, 1);  \r
-#endif\r
-    }else\r
-        PmicTorchLightCtrl(on_off);\r
-}\r
-\r
-void TorchlightSwitch(unsigned char on_off)\r
-{\r
-     if(Pmic_is_pm803()){\r
-#if defined(CONFIG_BOARD_CRANEG_A0)\r
-        gpio_direction_output(HAL_GPIO_86);\r
-           if(on_off)\r
-            gpio_set_value(HAL_GPIO_86, 1);\r
-           else\r
-            gpio_set_value(HAL_GPIO_86, 0);\r
-#endif\r
-    }else {\r
-           if(on_off)\r
-                   PmicTorchLightCtrl(10);\r
-           else\r
-                   PmicTorchLightCtrl(0);\r
-    }\r
-}\r
-\r
-void TorchlightSwitchOn(void)\r
-{\r
-    if(Pmic_is_pm803())\r
-    {\r
-#if defined(CONFIG_BOARD_CRANEG_A0)\r
-        gpio_direction_output(HAL_GPIO_86);\r
-        gpio_set_value(HAL_GPIO_86, 1);\r
-#endif\r
-    }\r
-    else\r
-           PmicTorchLightCtrl(10);\r
-}\r
-\r
-void TorchlightSwitchOff(void)\r
-{\r
-    if(Pmic_is_pm803())\r
-    {\r
-#if defined(CONFIG_BOARD_CRANEG_A0)\r
-        gpio_direction_output(HAL_GPIO_86);\r
-        gpio_set_value(HAL_GPIO_86, 0);\r
-#endif\r
-    }\r
-    else\r
-           PmicTorchLightCtrl(0);\r
-}\r
-\r
-void LcdBacklightSwitchOn(void)\r
-{\r
-    backlight_set_brightness(g_mciLcdBrightnessLevel);\r
-    raw_uart_log("LcdBacklightSwitchOn_###:%d!\r\n",g_mciLcdBrightnessLevel);\r
-    //PmicLcdBackLightEnable();\r
-}\r
-\r
-void LcdBacklightSwitchOff(void)\r
-{\r
-    backlight_set_brightness(0);\r
-    raw_uart_log("LcdBacklightSwitchOff_###!\r\n");\r
-    //PmicLcdBackLightDisable();\r
-}\r
-\r
-void CameraPwdn0OnOff(unsigned int on_off)\r
-{\r
-       gpio_direction_output(HAL_GPIO_69);\r
-       if(1==on_off)\r
-               gpio_set_value(HAL_GPIO_69, 1);\r
-       else\r
-               gpio_set_value(HAL_GPIO_69, 0);\r
-}\r
-\r
-void CameraPwdn1OnOff(unsigned int on_off)\r
-{\r
-       gpio_direction_output(HAL_GPIO_61);\r
-       if(1==on_off)\r
-               gpio_set_value(HAL_GPIO_61, 1);\r
-       else\r
-               gpio_set_value(HAL_GPIO_61, 0);\r
-}\r
-\r
-void CameraPwdn2OnOff(unsigned int on_off)\r
-{\r
-       gpio_direction_output(HAL_GPIO_66);\r
-       if(1==on_off)\r
-               gpio_set_value(HAL_GPIO_66, 1);\r
-       else\r
-               gpio_set_value(HAL_GPIO_66, 0);\r
-}\r
-\r
-\r
-void CameraRstOnOff(unsigned int on_off)\r
-{\r
-       gpio_direction_output(HAL_GPIO_70);\r
-       if(1==on_off)\r
-               gpio_set_value(HAL_GPIO_70, 1);\r
-       else\r
-               gpio_set_value(HAL_GPIO_70, 0);\r
-}\r
-\r
-void BtLdoEnonoff(unsigned int on_off)\r
-{\r
-       gpio_direction_output(HAL_GPIO_16);\r
-       if(1==on_off)\r
-               gpio_set_value(HAL_GPIO_16, 1);\r
-       else\r
-               gpio_set_value(HAL_GPIO_16, 0);\r
-}\r
-\r
-void KeypadLedonoff(unsigned int on_off)\r
-{\r
-    if (Pmic_is_pm812()){\r
-           gpio_direction_output(HAL_GPIO_1);\r
-           if(1==on_off)\r
-                   gpio_set_value(HAL_GPIO_1, 1);\r
-           else\r
-                   gpio_set_value(HAL_GPIO_1, 0);\r
-    }\r
-       else if(Pmic_is_pm803()){\r
-#if defined(CONFIG_BOARD_CUSTOM_S) || defined(CONFIG_BOARD_CRANEG_A0)\r
-               gpio_direction_output(HAL_GPIO_81);\r
-           if(1==on_off)\r
-           {\r
-                   gpio_set_value(HAL_GPIO_81, 1);\r
-           }\r
-           else\r
-           {\r
-                   gpio_set_value(HAL_GPIO_81, 0);\r
-           }\r
-#endif\r
-       }\r
-       else{\r
-        if(1==on_off)\r
-            PmickeypadbacklightEnable();\r
-        else\r
-            PmickeypadbacklightDisable();\r
-     }\r
-}\r
-\r
-void KeypadBlackLightSwitchOn(void)\r
-{\r
-    //PmickeypadbacklightEnable();\r
-    KeypadLedonoff(1);\r
-}\r
-\r
-void KeypadBlackLightSwitchOff(void)\r
-{\r
-    //PmickeypadbacklightDisable();\r
-    KeypadLedonoff(0);\r
-}\r
-\r
-void ChargerEnonoff(unsigned int on_off)\r
-{\r
-       gpio_direction_output(HAL_GPIO_70);\r
-       if(1==on_off)\r
-               gpio_set_value(HAL_GPIO_70, 1);\r
-       else\r
-               gpio_set_value(HAL_GPIO_70, 0);\r
-}\r
-\r
-void VibratorSetLevel(unsigned int level)\r
-{\r
-#if defined(CONFIG_BOARD_CUSTOM_S)\r
-    if(Pmic_is_pm803())\r
-    {\r
-        gpio_direction_output(HAL_GPIO_86);\r
-        if(level)\r
-            gpio_set_value(HAL_GPIO_86, 1);\r
-        else\r
-            gpio_set_value(HAL_GPIO_86, 0);\r
-    }\r
-    else\r
-        PmicVibrateSetLevel(level);\r
-#else\r
-       //to be updated by cp released.\r
-       if(Pmic_is_pm812())\r
-               PM812_PwmSetLevel(level);\r
-       else{\r
-               PmicVibrateSetLevel(level);\r
-       }\r
-#endif\r
-}\r
-\r
-void VibratorSwitchOn(void)\r
-{\r
-       raw_uart_log("VibratorSwitchOn.\n");\r
-    if(Pmic_is_pm803())\r
-    {\r
-#if defined(CONFIG_BOARD_CUSTOM_S) || defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)\r
-        gpio_direction_output(Vibrator_GPIO);\r
-        gpio_set_value(Vibrator_GPIO, 1);\r
-#endif\r
-    }\r
-    else\r
-        PmicVibrateSetLevel(VIBRATOR_LEVEL3);\r
-}\r
-\r
-void VibratorSwitchOff(void)\r
-{\r
-       raw_uart_log("VibratorSwitchOff.\n");\r
-    if(Pmic_is_pm803())\r
-    {\r
-#if defined(CONFIG_BOARD_CUSTOM_S) || defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)\r
-        gpio_direction_output(Vibrator_GPIO);\r
-        gpio_set_value(Vibrator_GPIO, 0);\r
-#endif\r
-    }\r
-    else\r
-        PmicVibrateSetLevel(VIBRATOR_LEVEL0);\r
-}\r
-\r
-void Evb1601_Pm802ChargerEnonoff(unsigned int on_off)\r
-{\r
-       gpio_direction_output(Evb1601_Pm802ChargerEn_GPIO);\r
-       if(1==on_off)\r
-               gpio_set_value(Evb1601_Pm802ChargerEn_GPIO, 1);\r
-       else\r
-               gpio_set_value(Evb1601_Pm802ChargerEn_GPIO, 0);\r
-}\r
-\r
-void Evb1601_Pm802Backlightonoff(unsigned int on_off)\r
-{\r
-       gpio_direction_output(Evb1601_Pm802Backlight_GPIO);\r
-       if(1==on_off)\r
-               gpio_set_value(Evb1601_Pm802Backlight_GPIO, 1);\r
-       else\r
-               gpio_set_value(Evb1601_Pm802Backlight_GPIO, 0);\r
-}\r
-\r
-U32 Evb1601_Pm802GetChargerStatus(void)\r
-{\r
-       U32 status;\r
-       gpio_direction_input(Evb1601_Pm802ChargerSta_GPIO);\r
-       status = gpio_get_value(Evb1601_Pm802ChargerSta_GPIO);\r
-       return status;\r
-}\r
-\r
-static U32 GChargerEnableGpioStatus = 0;\r
-void ChargerEnableGpioonoff(unsigned int on_off)\r
-{\r
-       gpio_direction_output(ChargerEnable_GPIO);\r
-       if(0==on_off)\r
-               gpio_set_value(ChargerEnable_GPIO, 1);\r
-       else\r
-               gpio_set_value(ChargerEnable_GPIO, 0);\r
-    GChargerEnableGpioStatus = on_off;\r
-}\r
-\r
-U32 GetChargerEnableGpioStatus(void)\r
-{\r
-    //raw_uart_log("GetChargerEnableGpioStatus %d\n",GChargerEnableGpioStatus);\r
-       return GChargerEnableGpioStatus;\r
-}\r
-\r
-U32 GetGpioChargerStatus(void)\r
-{\r
-       U32 status;\r
-       gpio_direction_input(ChargerSta_GPIO);\r
-       status = gpio_get_value(ChargerSta_GPIO);\r
-       return status;\r
-}\r
-\r
-U32 GetChargeStatus(void)\r
-{\r
-       U32 status;\r
-    if(Pmic_is_pm813()){\r
-        status = Pmic_if_charge_full();\r
-       }else if(Pmic_is_pm813s()){\r
-               return (pmic_get_charger_fsm() == FSM_TERM); \r
-    }else if(Pmic_is_pm802()){\r
-//#if defined(CONFIG_BOARD_CRANEM_EVB)\r
-               if(cus_is_board_cranem_evb())\r
-               {\r
-                       status = GetGpioChargerStatus();//Pm803_Eta4256GetChargerStatus();\r
-               }\r
-       //#else\r
-               else\r
-               {\r
-                       status = Evb1601_Pm802GetChargerStatus();\r
-               }\r
-//#endif\r
-    }else if(Pmic_is_pm803()){\r
-           status = GetGpioChargerStatus();//Pm803_Eta4256GetChargerStatus();\r
-    }\r
-       else{\r
-           ChargerStsPinmuxCfg();\r
-           gpio_direction_input(HAL_GPIO_57);\r
-           status = gpio_get_value(HAL_GPIO_57);\r
-    }\r
-       return status;\r
-}\r
-\r
-void ForceChargerFinished(BOOL stop)\r
-{\r
-   if(Pmic_is_pm802()){\r
-    //need add gpio\r
-//#if defined(CONFIG_BOARD_CRANEM_EVB)\r
-               if(cus_is_board_cranem_evb())\r
-               {\r
-                       if(stop)\r
-                       ChargerEnableGpioonoff(0);\r
-                       else\r
-                               ChargerEnableGpioonoff(1);\r
-               }\r
-       //#else\r
-               else\r
-               {\r
-               if(stop)\r
-                       Evb1601_Pm802ChargerEnonoff(0);\r
-                       else\r
-                               Evb1601_Pm802ChargerEnonoff(1);\r
-               }\r
-//#endif\r
-       }else if(Pmic_is_pm803()){\r
-           if(stop)\r
-               ChargerEnableGpioonoff(0);\r
-               else\r
-                       ChargerEnableGpioonoff(1);\r
-       }else if(Pmic_is_pm812()){\r
-           gpio_direction_output(pm812_Charger_enable);\r
-           if(stop)    \r
-                   gpio_set_value(pm812_Charger_enable,1);\r
-           else\r
-                   gpio_set_value(pm812_Charger_enable,0);\r
-    }else {\r
-        Pmic_ChargerFinished(stop);\r
-    }\r
-}\r
-\r
-BOOL get_lcdbacklight_status(void)\r
-{\r
-    if(Pmic_is_pm803())\r
-        return get_BackLightStatus();\r
-    else\r
-           return get_pmic_lcdbacklight_status();\r
-}\r
-\r
-BOOL get_keypadbacklight_status(void)\r
-{\r
-    if(Pmic_is_pm803())\r
-        return gpio_get_value(HAL_GPIO_81);\r
-    else\r
-           return get_pmic_keypadbacklight_status();\r
-}\r
-BOOL get_vibrator_status(void)\r
-{\r
-    if(Pmic_is_pm803())\r
-       return gpio_get_value(Vibrator_GPIO);\r
-    else\r
-           return get_pmic_vibrator_status();\r
-}\r
-BOOL get_torchlight_status(void)\r
-{\r
-    if(Pmic_is_pm803())\r
-        return gpio_get_value(HAL_GPIO_86);\r
-    else\r
-           return get_pmic_torchlight_status();\r
-}\r
-\r
-#if defined(CONFIG_FM_WITH_EXTERNAL_ANT)\r
-void  EnFmAntenanInit(void)\r
-{\r
-       gpio_direction_output(GPIO_EN_FM);\r
-       gpio_set_value(GPIO_EN_FM,0);\r
-}\r
-\r
-void EnFmAntenan(unsigned int value)\r
-{\r
-       gpio_direction_output(GPIO_EN_FM);\r
-       if(value)\r
-       {\r
-               gpio_set_value(GPIO_EN_FM,1);\r
-       }\r
-       else\r
-       {\r
-               gpio_set_value(GPIO_EN_FM,0);\r
-       }\r
-}\r
-#endif\r
-\r
-#ifdef CONFIG_WIFI_SUPPORT\r
-void WifiInit(void)\r
-{\r
-       sdio_init(WIFI_SDIO_SLOT2, WIFI_PWR_EN, WIFI_INT_HOST, \r
-               WIFI_PWR_RESET, WIFI_HOST_WAKE_WIFI, WIFI_32K_SELECT);\r
-}\r
-#endif\r
-void GpioCusConfig(void)\r
-{\r
-#if defined(CONFIG_EXT_PA_SUPPORT)\r
-    SpeakerExtPaInit();\r
-    AudioHAL_AifBindSpeakerPA_CB(SpeakerExtPaEnable);\r
-#endif\r
-\r
-#if defined(CONFIG_FM_WITH_EXTERNAL_ANT)\r
-       EnFmAntenanInit();\r
-#endif\r
-\r
-#ifdef CONFIG_LOCK_KEY_SUPPORT\r
-       LockInit();\r
-#endif\r
-#if defined(CONFIG_BOARD_CUSTOM_S) || defined(CONFIG_BOARD_CRANE_1601_EVB) || defined(CONFIG_BOARD_CRANEG_A0)\r
-       if(Pmic_is_pm802() || Pmic_is_pm803())\r
-       {\r
-               set_sdcard_power_gpio(SD_PW_GPIO);\r
-       }\r
-#endif\r
-#if defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)\r
-    if(Pmic_is_pm803())\r
-    {\r
-        Craneg_pm803Pinmuxcfg();\r
-        SpeakerExtPaInit();\r
-        AudioHAL_AifBindSpeakerPA_CB(SpeakerExtPaEnable);\r
-    }\r
-#endif\r
-       return;\r
-}\r
-\r
-#if defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)\r
-void CameraIOVddOnOff(unsigned int on_off)\r
-{\r
-    Craneg_pm803_camera_power_Pinmuxcfg();\r
-       gpio_direction_output(HAL_GPIO_54);\r
-       if(1==on_off)\r
-               gpio_set_value(HAL_GPIO_54, 1);\r
-       else\r
-               gpio_set_value(HAL_GPIO_54, 0);\r
-}\r
-\r
-void CameraAVddOnOff(unsigned int on_off)\r
-{\r
-    Craneg_pm803_camera_power_Pinmuxcfg();\r
-       gpio_direction_output(HAL_GPIO_36);\r
-       if(1==on_off)\r
-               gpio_set_value(HAL_GPIO_36, 1);\r
-       else\r
-               gpio_set_value(HAL_GPIO_36, 0);\r
-}\r
-#endif\r
+#include "plat_config_defs.h"
+#include "plat_types.h"
+#include "intc_api.h"
+#include "gpio_api.h"
+#include "pmic_api.h"
+
+#include "ui_log_api.h"
+
+#include "event.h"
+#include "ui_os_message.h"
+#include "ui_os_api.h"
+#include "mfpr_api.h"
+#include "base_prv.h"
+#include "device_cus.h"
+
+enum {
+       VIBRATOR_LEVEL0= 0,
+       VIBRATOR_LEVEL1= 1,
+       VIBRATOR_LEVEL2,
+       VIBRATOR_LEVEL3,
+       VIBRATOR_LEVEL4,
+       VIBRATOR_LEVEL5,
+};
+
+//wifi pin config
+#define WIFI_SDIO_SLOT1                        1
+#define WIFI_SDIO_SLOT2                        2
+#define WIFI_PWR_EN                            83
+#define WIFI_INT_HOST                  34
+#define WIFI_PWR_RESET                 -1
+#define WIFI_HOST_WAKE_WIFI            -1
+#define WIFI_32K_SELECT                        1
+
+#define Evb1601_Pm802ChargerEn_GPIO HAL_GPIO_82
+#define Evb1601_Pm802Backlight_GPIO HAL_GPIO_84
+#define Evb1601_Pm802ChargerSta_GPIO HAL_GPIO_83
+
+#define pm812_Charger_enable 70 //gpio70  need config from evb
+extern void ChargerStsPinmuxCfg(void);
+extern void CameraFlashPinmuxcfg(void);
+extern void PM812_PwmSetLevel(UINT8 level);
+extern void set_sdcard_power_gpio(UINT8 num);
+extern HANDLE get_dev_mon_task(void);
+extern void backlight_set_brightness(uint8_t brightness);
+extern int sdio_init(int sd_slot, int wifi_pwr_en, int wifi_int_host, int wifi_pwr_reset, 
+                                                                       int host_wakeup_wifi, int sys_clk_32k);
+extern UINT8 g_mciLcdBrightnessLevel;
+
+#ifdef CONFIG_LCD_DUAL_PANEL_SUPPORT
+volatile unsigned int hallval = 0;
+static OS_HISR hall_hisr_ref;
+static u8 g_gpio_timerid = INVALID_TIMER_ID;
+extern BOOL sub_lcd_flag;
+void Os_Create_HISR(VOID** hisr, char* name, VOID (*hisr_entry)(VOID), unsigned char priority);
+INT32 Os_Activate_HISR(VOID** hisr);
+INT32 Os_Delete_HISR(VOID** hisr);
+#endif
+
+#if defined(CONFIG_BOARD_CRANEG_A0)
+extern void Craneg_pm803_camera_power_Pinmuxcfg(void);
+extern void Craneg_pm803Pinmuxcfg(void);
+#endif
+
+#if defined(CONFIG_BOARD_CUSTOM_B_V01) || defined(CONFIG_BOARD_CUSTOM_B_V02)
+#define GPIO_LOCK   HAL_GPIO_84
+#define GPIO_EXT_PA    HAL_GPIO_85
+#define GPIO_EN_FM     HAL_GPIO_64
+#endif
+#if defined(CONFIG_BOARD_CUSTOM_X)
+#define GPIO_EXT_PA    HAL_GPIO_82
+#define GPIO_EN_FM     HAL_GPIO_81
+#endif
+#if defined(CONFIG_BOARD_CUSTOM_S)
+#define GPIO_EXT_PA    HAL_GPIO_33
+#elif defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)
+#if defined(CONFIG_BOARD_SIMWARE_W61_V2)
+#define GPIO_EXT_PA    HAL_GPIO_34
+#elif defined(CONFIG_BOARD_SIMWARE_W71) || defined(CONFIG_BOARD_SIMWARE_A90) || defined(CONFIG_BOARD_SIMWARE_A90SH) || defined(CONFIG_BOARD_SIMWARE_H81)
+#define GPIO_EXT_PA HAL_GPIO_28
+#else
+#define GPIO_EXT_PA    HAL_GPIO_75
+#endif
+#else
+#define GPIO_EXT_PA HAL_GPIO_QTY
+#endif
+
+#if defined(CONFIG_BOARD_CUSTOM_V)
+#define GPIO_EN_FM     HAL_GPIO_82
+#endif
+
+#if defined(CONFIG_BOARD_CUSTOM_S)
+#define ChargerEnable_GPIO HAL_GPIO_54
+#define ChargerSta_GPIO HAL_GPIO_53
+#elif defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)
+#if defined(CONFIG_BOARD_SIMWARE_W61_V2)
+#define ChargerEnable_GPIO HAL_GPIO_3
+#define ChargerSta_GPIO HAL_GPIO_4
+#elif defined(CONFIG_BOARD_SIMWARE_W71)
+#define ChargerEnable_GPIO HAL_GPIO_52
+#define ChargerSta_GPIO HAL_GPIO_51
+#elif defined(CONFIG_BOARD_SIMWARE_A90) || defined(CONFIG_BOARD_SIMWARE_A90SH) || defined(CONFIG_BOARD_SIMWARE_H81)
+#define ChargerEnable_GPIO HAL_GPIO_3
+#define ChargerSta_GPIO HAL_GPIO_2
+#else
+#define ChargerEnable_GPIO HAL_GPIO_82
+#define ChargerSta_GPIO HAL_GPIO_85
+#endif
+#else
+#define ChargerEnable_GPIO HAL_GPIO_14
+#define ChargerSta_GPIO HAL_GPIO_13
+#endif
+
+#if defined(CONFIG_BOARD_CUSTOM_S)
+#define SD_PW_GPIO     70
+#elif defined(CONFIG_BOARD_CRANE_1601_EVB)
+#define SD_PW_GPIO     75
+#elif defined(CONFIG_BOARD_CRANEG_A0)
+#define SD_PW_GPIO     70
+#else
+#define SD_PW_GPIO     255
+#endif
+
+#if defined(CONFIG_BOARD_CUSTOM_S)
+#define Vibrator_GPIO HAL_GPIO_86
+#elif defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)
+#if defined(CONFIG_BOARD_SIMWARE_W61_V2)
+#define Vibrator_GPIO HAL_GPIO_6
+#elif defined(CONFIG_BOARD_SIMWARE_W71) || defined(CONFIG_BOARD_SIMWARE_A90) || defined(CONFIG_BOARD_SIMWARE_A90SH) || defined(CONFIG_BOARD_SIMWARE_H81)
+#define Vibrator_GPIO HAL_GPIO_124
+#else
+#define Vibrator_GPIO HAL_GPIO_32
+#endif
+#else
+#define Vibrator_GPIO 128
+#endif
+
+#if defined(CONFIG_LCD_DUAL_PANEL_SUPPORT)
+void HallSwitch(uint32 on_off)
+{
+    UI_EVENT ev;
+    ev.nEventId = EV_DM_IOCTL_IND;
+    ev.nParam1  = on_off;
+    ev.nParam2  = 1;
+    ev.nParam3  = 0;
+    //UOS_SendEvent(get_dev_mon_task(), &ev, UOS_WAIT_FOREVER, UOS_EVENT_PRI_NORMAL);
+    
+    if (on_off)
+        sub_lcd_flag = 0;
+    else
+        sub_lcd_flag = 1;
+    dm_SendSwitchLcdMessage(&ev);
+}
+
+void Hall_Detect_Timer(void)
+{
+       unsigned int  val;
+
+       val = gpio_get_value(HAL_GPIO_75);
+
+       if(val == hallval){
+               raw_uart_log("hall status changed, now switch lcd.\n");
+               HallSwitch(val);
+       }
+
+       gpio_enable_edge_detection(HAL_GPIO_75, GPIO_TWO_EDGE); 
+}
+
+static void hallHisr(void)
+{
+       gpio_disable_edge_detection(HAL_GPIO_75, GPIO_TWO_EDGE);
+       hallval = gpio_get_value(HAL_GPIO_75);
+       UOS_StartFunctionTimer_single(g_gpio_timerid, MS_TO_TICKS(300), Hall_Detect_Timer, NULL, "hall detect timer");
+}
+
+void CLAM_EINT_HISR(void)
+{
+       OS_Activate_HISR(&hall_hisr_ref);
+       return;
+}
+
+void Hall_Create_Timer(void)
+{
+       if(g_gpio_timerid == INVALID_TIMER_ID)
+               g_gpio_timerid = UOS_get_FunctionTimer();
+
+       return;
+}
+
+void  HALL_EINT_Registration(void)
+{
+    gpio_direction_input(HAL_GPIO_75);
+    gpio_irq_config(HAL_GPIO_75, GPIO_TWO_EDGE, CLAM_EINT_HISR);
+}
+
+void  HallEnInit(void)
+{
+       Hall_Create_Timer();
+       HALL_EINT_Registration();
+       OS_Create_HISR(&hall_hisr_ref, "HALL_HISR", hallHisr, 2);
+}
+
+unsigned int GetMainLcdOn(void)
+{
+      gpio_direction_input(HAL_GPIO_75);
+       return gpio_get_value(HAL_GPIO_75);
+}
+#endif
+
+#if defined(CONFIG_LOCK_KEY_SUPPORT)
+void Lock_irq_hand(void)
+{ 
+       raw_uart_log("lock_isr-lock_lisr!\r\n");
+       if(gpio_get_value(GPIO_LOCK))
+       {
+               //raw_uart_log("gpio_get_value=1!\r\n");
+       }
+       else
+       {
+               //raw_uart_log("gpio_get_value=0!\r\n");
+       }
+}
+
+void LockInit(void)
+{
+       raw_uart_log("LockInit_###!\r\n");
+       GpioSetDirection(GPIO_LOCK,GPIO_IN_PIN);//GPIO_IN_PIN-0  HAL_GPIO_14-14
+       GpioBindInterruptCallback(GPIO_LOCK,Lock_irq_hand);
+    GpioEnableEdgeDetection(GPIO_LOCK, (GPIOTransitionType)GPIO_RISE_EDGE);
+    GpioEnableEdgeDetection(GPIO_LOCK, (GPIOTransitionType)GPIO_FALL_EDGE);
+       raw_uart_log("LockInit_Done!\r\n");
+}
+#endif
+
+void SpeakerExtPaEnable(uint32 on)
+{
+       UI_EVENT ev;
+       ev.nEventId = EV_DM_IOCTL_IND;
+    ev.nParam1  = on;
+       ev.nParam2  = 0;
+    ev.nParam3  = 0;
+       UOS_SendEvent(get_dev_mon_task(), &ev, UOS_WAIT_FOREVER, UOS_EVENT_PRI_NORMAL);
+}
+
+void SpeakerExtPaInit(void)
+{
+       gpio_direction_output(GPIO_EXT_PA);
+       gpio_set_value(GPIO_EXT_PA, 0);
+}
+
+void EnableSpeakerPA(uint32 on)
+{
+       int i = 0;
+       volatile int j = 0;
+
+       if(0 == on) {
+               gpio_set_value(GPIO_EXT_PA, 0);
+               //raw_uart_log("test ext pa gpio on: %d\r\n",on);
+       } else {
+               //raw_uart_log("test ext pa gpio on: %d\r\n",on);
+               for (i = 0; i < on; ++i) {
+                       gpio_set_value(GPIO_EXT_PA, 0);
+                       for (j = 0; j < 80; ++j);
+                       gpio_set_value(GPIO_EXT_PA, 1); 
+                       for (j = 0; j < 80; ++j);
+               }
+       }
+}
+
+void CameraFlashPowerOnOff(unsigned char on_off)
+{
+    if (Pmic_is_pm812()){
+           CameraFlashPinmuxcfg();
+           gpio_direction_output(HAL_GPIO_78);
+           if(0==on_off)
+            gpio_set_value(HAL_GPIO_78, 0);
+           else
+                   gpio_set_value(HAL_GPIO_78, 1);
+    }else if(Pmic_is_pm803()){
+#if defined(CONFIG_BOARD_CRANEG_A0)
+        gpio_direction_output(HAL_GPIO_86);
+           if(0==on_off)
+            gpio_set_value(HAL_GPIO_86, 0);
+           else
+                   gpio_set_value(HAL_GPIO_86, 1);  
+#endif
+    }else
+        PmicTorchLightCtrl(on_off);
+}
+
+void TorchlightSwitch(unsigned char on_off)
+{
+     if(Pmic_is_pm803()){
+#if defined(CONFIG_BOARD_CRANEG_A0)
+        gpio_direction_output(HAL_GPIO_86);
+           if(on_off)
+            gpio_set_value(HAL_GPIO_86, 1);
+           else
+            gpio_set_value(HAL_GPIO_86, 0);
+#endif
+    }else {
+           if(on_off)
+                   PmicTorchLightCtrl(10);
+           else
+                   PmicTorchLightCtrl(0);
+    }
+}
+
+void TorchlightSwitchOn(void)
+{
+    if(Pmic_is_pm803())
+    {
+#if defined(CONFIG_BOARD_CRANEG_A0)
+        gpio_direction_output(HAL_GPIO_86);
+        gpio_set_value(HAL_GPIO_86, 1);
+#endif
+    }
+    else
+           PmicTorchLightCtrl(10);
+}
+
+void TorchlightSwitchOff(void)
+{
+    if(Pmic_is_pm803())
+    {
+#if defined(CONFIG_BOARD_CRANEG_A0)
+        gpio_direction_output(HAL_GPIO_86);
+        gpio_set_value(HAL_GPIO_86, 0);
+#endif
+    }
+    else
+           PmicTorchLightCtrl(0);
+}
+
+void LcdBacklightSwitchOn(void)
+{
+    backlight_set_brightness(g_mciLcdBrightnessLevel);
+    raw_uart_log("LcdBacklightSwitchOn_###:%d!\r\n",g_mciLcdBrightnessLevel);
+    //PmicLcdBackLightEnable();
+}
+
+void LcdBacklightSwitchOff(void)
+{
+    backlight_set_brightness(0);
+    raw_uart_log("LcdBacklightSwitchOff_###!\r\n");
+    //PmicLcdBackLightDisable();
+}
+
+void CameraPwdn0OnOff(unsigned int on_off)
+{
+       gpio_direction_output(HAL_GPIO_69);
+       if(1==on_off)
+               gpio_set_value(HAL_GPIO_69, 1);
+       else
+               gpio_set_value(HAL_GPIO_69, 0);
+}
+
+void CameraPwdn1OnOff(unsigned int on_off)
+{
+       gpio_direction_output(HAL_GPIO_61);
+       if(1==on_off)
+               gpio_set_value(HAL_GPIO_61, 1);
+       else
+               gpio_set_value(HAL_GPIO_61, 0);
+}
+
+void CameraPwdn2OnOff(unsigned int on_off)
+{
+       gpio_direction_output(HAL_GPIO_66);
+       if(1==on_off)
+               gpio_set_value(HAL_GPIO_66, 1);
+       else
+               gpio_set_value(HAL_GPIO_66, 0);
+}
+
+
+void CameraRstOnOff(unsigned int on_off)
+{
+       gpio_direction_output(HAL_GPIO_70);
+       if(1==on_off)
+               gpio_set_value(HAL_GPIO_70, 1);
+       else
+               gpio_set_value(HAL_GPIO_70, 0);
+}
+
+void BtLdoEnonoff(unsigned int on_off)
+{
+       gpio_direction_output(HAL_GPIO_16);
+       if(1==on_off)
+               gpio_set_value(HAL_GPIO_16, 1);
+       else
+               gpio_set_value(HAL_GPIO_16, 0);
+}
+
+void KeypadLedonoff(unsigned int on_off)
+{
+    if (Pmic_is_pm812()){
+           gpio_direction_output(HAL_GPIO_1);
+           if(1==on_off)
+                   gpio_set_value(HAL_GPIO_1, 1);
+           else
+                   gpio_set_value(HAL_GPIO_1, 0);
+    }
+       else if(Pmic_is_pm803()){
+#if defined(CONFIG_BOARD_CUSTOM_S) || defined(CONFIG_BOARD_CRANEG_A0)
+               gpio_direction_output(HAL_GPIO_81);
+           if(1==on_off)
+           {
+                   gpio_set_value(HAL_GPIO_81, 1);
+           }
+           else
+           {
+                   gpio_set_value(HAL_GPIO_81, 0);
+           }
+#endif
+       }
+       else{
+        if(1==on_off)
+            PmickeypadbacklightEnable();
+        else
+            PmickeypadbacklightDisable();
+     }
+}
+
+void KeypadBlackLightSwitchOn(void)
+{
+    //PmickeypadbacklightEnable();
+    KeypadLedonoff(1);
+}
+
+void KeypadBlackLightSwitchOff(void)
+{
+    //PmickeypadbacklightDisable();
+    KeypadLedonoff(0);
+}
+
+void ChargerEnonoff(unsigned int on_off)
+{
+       gpio_direction_output(HAL_GPIO_70);
+       if(1==on_off)
+               gpio_set_value(HAL_GPIO_70, 1);
+       else
+               gpio_set_value(HAL_GPIO_70, 0);
+}
+
+void VibratorSetLevel(unsigned int level)
+{
+#if defined(CONFIG_BOARD_CUSTOM_S)
+    if(Pmic_is_pm803())
+    {
+        gpio_direction_output(HAL_GPIO_86);
+        if(level)
+            gpio_set_value(HAL_GPIO_86, 1);
+        else
+            gpio_set_value(HAL_GPIO_86, 0);
+    }
+    else
+        PmicVibrateSetLevel(level);
+#else
+       //to be updated by cp released.
+       if(Pmic_is_pm812())
+               PM812_PwmSetLevel(level);
+       else{
+               PmicVibrateSetLevel(level);
+       }
+#endif
+}
+
+void VibratorSwitchOn(void)
+{
+       raw_uart_log("VibratorSwitchOn.\n");
+    if(Pmic_is_pm803())
+    {
+#if defined(CONFIG_BOARD_CUSTOM_S) || defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)
+        gpio_direction_output(Vibrator_GPIO);
+        gpio_set_value(Vibrator_GPIO, 1);
+#endif
+    }
+    else
+        PmicVibrateSetLevel(VIBRATOR_LEVEL3);
+}
+
+void VibratorSwitchOff(void)
+{
+       raw_uart_log("VibratorSwitchOff.\n");
+    if(Pmic_is_pm803())
+    {
+#if defined(CONFIG_BOARD_CUSTOM_S) || defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)
+        gpio_direction_output(Vibrator_GPIO);
+        gpio_set_value(Vibrator_GPIO, 0);
+#endif
+    }
+    else
+        PmicVibrateSetLevel(VIBRATOR_LEVEL0);
+}
+
+void Evb1601_Pm802ChargerEnonoff(unsigned int on_off)
+{
+       gpio_direction_output(Evb1601_Pm802ChargerEn_GPIO);
+       if(1==on_off)
+               gpio_set_value(Evb1601_Pm802ChargerEn_GPIO, 1);
+       else
+               gpio_set_value(Evb1601_Pm802ChargerEn_GPIO, 0);
+}
+
+void Evb1601_Pm802Backlightonoff(unsigned int on_off)
+{
+       gpio_direction_output(Evb1601_Pm802Backlight_GPIO);
+       if(1==on_off)
+               gpio_set_value(Evb1601_Pm802Backlight_GPIO, 1);
+       else
+               gpio_set_value(Evb1601_Pm802Backlight_GPIO, 0);
+}
+
+U32 Evb1601_Pm802GetChargerStatus(void)
+{
+       U32 status;
+       gpio_direction_input(Evb1601_Pm802ChargerSta_GPIO);
+       status = gpio_get_value(Evb1601_Pm802ChargerSta_GPIO);
+       return status;
+}
+
+static U32 GChargerEnableGpioStatus = 0;
+void ChargerEnableGpioonoff(unsigned int on_off)
+{
+       gpio_direction_output(ChargerEnable_GPIO);
+       if(0==on_off)
+               gpio_set_value(ChargerEnable_GPIO, 1);
+       else
+               gpio_set_value(ChargerEnable_GPIO, 0);
+    GChargerEnableGpioStatus = on_off;
+}
+
+U32 GetChargerEnableGpioStatus(void)
+{
+    //raw_uart_log("GetChargerEnableGpioStatus %d\n",GChargerEnableGpioStatus);
+       return GChargerEnableGpioStatus;
+}
+
+U32 GetGpioChargerStatus(void)
+{
+       U32 status;
+       gpio_direction_input(ChargerSta_GPIO);
+       status = gpio_get_value(ChargerSta_GPIO);
+       return status;
+}
+
+U32 GetChargeStatus(void)
+{
+       U32 status;
+    if(Pmic_is_pm813()){
+        status = Pmic_if_charge_full();
+       }else if(Pmic_is_pm813s()){
+               return (pmic_get_charger_fsm() == FSM_TERM); 
+    }else if(Pmic_is_pm802()){
+//#if defined(CONFIG_BOARD_CRANEM_EVB)
+               if(cus_is_board_cranem_evb())
+               {
+                       status = GetGpioChargerStatus();//Pm803_Eta4256GetChargerStatus();
+               }
+       //#else
+               else
+               {
+                       status = Evb1601_Pm802GetChargerStatus();
+               }
+//#endif
+    }else if(Pmic_is_pm803()){
+           status = GetGpioChargerStatus();//Pm803_Eta4256GetChargerStatus();
+    }
+       else{
+           ChargerStsPinmuxCfg();
+           gpio_direction_input(HAL_GPIO_57);
+           status = gpio_get_value(HAL_GPIO_57);
+    }
+       return status;
+}
+
+void ForceChargerFinished(BOOL stop)
+{
+   if(Pmic_is_pm802()){
+    //need add gpio
+//#if defined(CONFIG_BOARD_CRANEM_EVB)
+               if(cus_is_board_cranem_evb())
+               {
+                       if(stop)
+                       ChargerEnableGpioonoff(0);
+                       else
+                               ChargerEnableGpioonoff(1);
+               }
+       //#else
+               else
+               {
+               if(stop)
+                       Evb1601_Pm802ChargerEnonoff(0);
+                       else
+                               Evb1601_Pm802ChargerEnonoff(1);
+               }
+//#endif
+       }else if(Pmic_is_pm803()){
+           if(stop)
+               ChargerEnableGpioonoff(0);
+               else
+                       ChargerEnableGpioonoff(1);
+       }else if(Pmic_is_pm812()){
+           gpio_direction_output(pm812_Charger_enable);
+           if(stop)    
+                   gpio_set_value(pm812_Charger_enable,1);
+           else
+                   gpio_set_value(pm812_Charger_enable,0);
+    }else {
+        Pmic_ChargerFinished(stop);
+    }
+}
+
+BOOL get_lcdbacklight_status(void)
+{
+    if(Pmic_is_pm803())
+        return get_BackLightStatus();
+    else
+           return get_pmic_lcdbacklight_status();
+}
+
+BOOL get_keypadbacklight_status(void)
+{
+    if(Pmic_is_pm803())
+        return gpio_get_value(HAL_GPIO_81);
+    else
+           return get_pmic_keypadbacklight_status();
+}
+BOOL get_vibrator_status(void)
+{
+    if(Pmic_is_pm803())
+       return gpio_get_value(Vibrator_GPIO);
+    else
+           return get_pmic_vibrator_status();
+}
+BOOL get_torchlight_status(void)
+{
+    if(Pmic_is_pm803())
+        return gpio_get_value(HAL_GPIO_86);
+    else
+           return get_pmic_torchlight_status();
+}
+
+#if defined(CONFIG_FM_WITH_EXTERNAL_ANT)
+void  EnFmAntenanInit(void)
+{
+       gpio_direction_output(GPIO_EN_FM);
+       gpio_set_value(GPIO_EN_FM,0);
+}
+
+void EnFmAntenan(unsigned int value)
+{
+       gpio_direction_output(GPIO_EN_FM);
+       if(value)
+       {
+               gpio_set_value(GPIO_EN_FM,1);
+       }
+       else
+       {
+               gpio_set_value(GPIO_EN_FM,0);
+       }
+}
+#endif
+
+#ifdef CONFIG_WIFI_SUPPORT
+void WifiInit(void)
+{
+       sdio_init(WIFI_SDIO_SLOT2, WIFI_PWR_EN, WIFI_INT_HOST, 
+               WIFI_PWR_RESET, WIFI_HOST_WAKE_WIFI, WIFI_32K_SELECT);
+}
+#endif
+void GpioCusConfig(void)
+{
+#if defined(CONFIG_EXT_PA_SUPPORT)
+    SpeakerExtPaInit();
+    AudioHAL_AifBindSpeakerPA_CB(SpeakerExtPaEnable);
+#endif
+
+#if defined(CONFIG_FM_WITH_EXTERNAL_ANT)
+       EnFmAntenanInit();
+#endif
+
+#ifdef CONFIG_LOCK_KEY_SUPPORT
+       LockInit();
+#endif
+#if defined(CONFIG_BOARD_CUSTOM_S) || defined(CONFIG_BOARD_CRANE_1601_EVB) || defined(CONFIG_BOARD_CRANEG_A0)
+       if(Pmic_is_pm802() || Pmic_is_pm803())
+       {
+               set_sdcard_power_gpio(SD_PW_GPIO);
+       }
+#endif
+#if defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)
+    if(Pmic_is_pm803())
+    {
+        Craneg_pm803Pinmuxcfg();
+        SpeakerExtPaInit();
+        AudioHAL_AifBindSpeakerPA_CB(SpeakerExtPaEnable);
+    }
+#endif
+       return;
+}
+
+#if defined(CONFIG_BOARD_CRANEG_A0) || defined(CONFIG_BOARD_CRANE_EVB_Z2)
+void CameraIOVddOnOff(unsigned int on_off)
+{
+    Craneg_pm803_camera_power_Pinmuxcfg();
+       gpio_direction_output(HAL_GPIO_54);
+       if(1==on_off)
+               gpio_set_value(HAL_GPIO_54, 1);
+       else
+               gpio_set_value(HAL_GPIO_54, 0);
+}
+
+void CameraAVddOnOff(unsigned int on_off)
+{
+       Craneg_pm803_camera_power_Pinmuxcfg();
+#if CONFIG_BOARD_SIMWARE_H81
+       gpio_direction_output(HAL_GPIO_121);
+       if(1==on_off)
+               gpio_set_value(HAL_GPIO_121, 1);
+       else
+               gpio_set_value(HAL_GPIO_121, 0);
+#else
+       gpio_direction_output(HAL_GPIO_36);
+       if(1==on_off)
+               gpio_set_value(HAL_GPIO_36, 1);
+       else
+               gpio_set_value(HAL_GPIO_36, 0);
+#endif
+}
+ #endif
index 00a2293..0998303 100644 (file)
@@ -1248,8 +1248,12 @@ void Craneg_pm803Pinmuxcfg(void)
 
 uint32 mfp_camera_cfg_craneg_pm803[] = {
 
+#if CONFIG_BOARD_SIMWARE_H81
+    MFP_REG(GPIO_121) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_LOW | MFP_SLEEP_NONE | MFP_LPM_EDGE_NONE, /*gpio for avdd_en*/
+#else
     MFP_REG(GPIO_36) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_LOW | MFP_SLEEP_NONE | MFP_LPM_EDGE_NONE, /*gpio for avdd_en*/
     MFP_REG(GPIO_54) | MFP_AF0 | MFP_DRIVE_MEDIUM | MFP_PULL_LOW | MFP_SLEEP_NONE | MFP_LPM_EDGE_NONE, /*gpio for iovdd_en*/
+#endif
        MFP_EOC
 };
 
index e2d74a4..f1fd50a 100644 (file)
@@ -1151,7 +1151,9 @@ void camera_ldo_cfg(unsigned int on_off,LDO_CHANNEL channel,Camera_Pwr_Val ldoVa
                 Ningbo_LDO_Set_Enable(NINGBO_LDO13_ENABLE_REG,0);
             else if(Pmic_is_pm803())
             {
-#if defined(CONFIG_BOARD_CRANEG_A0)
+#if defined(CONFIG_BOARD_SIMWARE_H81)
+                GuilinLite_Ldo_7_set(0);
+#elif defined(CONFIG_BOARD_CRANEG_A0)
                 CameraIOVddOnOff(0);
 #endif
             }
@@ -1160,7 +1162,10 @@ void camera_ldo_cfg(unsigned int on_off,LDO_CHANNEL channel,Camera_Pwr_Val ldoVa
         } else {
             if(Pmic_is_pm803())
             {
-#if defined(CONFIG_BOARD_CRANEG_A0)
+#if defined(CONFIG_BOARD_SIMWARE_H81)
+                GuilinLite_Ldo_7_set_1_8();
+                GuilinLite_Ldo_7_set(1);
+#elif defined(CONFIG_BOARD_CRANEG_A0)
                 CameraIOVddOnOff(1);
 #endif
             }
@@ -1265,7 +1270,8 @@ BOOL pm813_battery_current_direction(void)
 //{
 //    return pm813_force_charger_state_get();
 //}
-\rUINT32 pm813_get_batteryId_vol(void)
+
+UINT32 pm813_get_batteryId_vol(void)
 {
        return pm813_get_batid_meas_vol_mv();
 }
index 59f41f7..41b6f89 100644 (file)
@@ -49,6 +49,11 @@ enum cam_interface_lane {
 #define CAMERA_PWDN1 HAL_GPIO_61
 #define CAMERA_PWDN2 HAL_GPIO_118
 #define CAMERA_RST HAL_GPIO_70
+#elif defined (CONFIG_BOARD_SIMWARE_H81)
+#define CAMERA_PWDN0 HAL_GPIO_70
+#define CAMERA_PWDN1 HAL_GPIO_69
+#define CAMERA_PWDN2 HAL_GPIO_66
+#define CAMERA_RST HAL_GPIO_70
 #else
 #define CAMERA_PWDN0 HAL_GPIO_69
 #define CAMERA_PWDN1 HAL_GPIO_61
index 2c6a906..258082a 100644 (file)
@@ -1520,7 +1520,7 @@ void gc032a_set_gpio_78(int onoff)
 
 }
 
-#if 1 /* ghh modify for auto adapt crane and craneM */
+#if 0 /* ghh modify for auto adapt crane and craneM */
 struct crane_sensor_data crane_GC032a_spi;
 #endif
 
@@ -1535,7 +1535,7 @@ int GC032a_s_power(int on)
 {
     CAMLOGI("GC032a_s_power: %s CONFIG_CAM_HW_VERSION=0x%x", on?"on":"off",CONFIG_CAM_HW_VERSION);
     if(CONFIG_CAM_HW_VERSION == CAM_HW_VERSION_4) {
-    #if 1 /* ghh modify for auto adapt crane and craneM */
+    #if 0 /* ghh modify for auto adapt crane and craneM */
         if (CHIP_IS_CRANEM || CHIP_IS_CRANEL)
         {
             crane_GC032a_spi.res = CraneM_GC032a_resolution;
index 469cf46..2e7cd14 100644 (file)
@@ -13,10 +13,10 @@ CONFIG_WATCH_UI=y
 CONFIG_BUILD_CAMERA_TARGET=y
 CONFIG_BUILD_GC030A=n
 CONFIG_GC030A_AS_BACK_CAMERA=n
-CONFIG_BUILD_GC032A=n
+CONFIG_BUILD_GC032A=y
 CONFIG_GC032A_AS_BACK_CAMERA=n
 CONFIG_BUILD_GC2145=n
-CONFIG_BUILD_BF30A2=y
+CONFIG_BUILD_BF30A2=n
 CONFIG_ENABLE_CAM_FULLSIZE_STREAM=n
 CONFIG_ENABLE_CAM_ONLINE_JPEG=n
 
index aa188cb..260f46d 100644 (file)
@@ -15,10 +15,10 @@ CONFIG_WATCH_UI=y
 CONFIG_BUILD_CAMERA_TARGET=y
 CONFIG_BUILD_GC030A=n
 CONFIG_GC030A_AS_BACK_CAMERA=n
-CONFIG_BUILD_GC032A=n
+CONFIG_BUILD_GC032A=y
 CONFIG_GC032A_AS_BACK_CAMERA=n
 CONFIG_BUILD_GC2145=n
-CONFIG_BUILD_BF30A2=y
+CONFIG_BUILD_BF30A2=n
 CONFIG_ENABLE_CAM_FULLSIZE_STREAM=n
 CONFIG_ENABLE_CAM_ONLINE_JPEG=n
 
index aed8e0d..89356bb 100644 (file)
@@ -14,6 +14,7 @@
 ..\obj_PMD2NONE\cust-cust.lib 
 ..\obj_PMD2NONE\nota-nota.lib 
 ..\obj_PMD2NONE\framework-framework.lib 
+..\obj_PMD2NONE\test-test.lib 
 ..\obj_PMD2NONE\pcac-pca_components.lib 
 ..\obj_PMD2NONE\aud_sw-Audio.lib 
 \tavor\Arbel\CRANE_SDK_LIB\FP_GENERIC_ALIOS_LTEGSM\3g_ps-dps.lib 
 \3g_ps\rls\tplgsm\bldstore\hsiupdlibdev\build\lib\usbd.lib 
 \3g_ps\rls\tplgsm\bldstore\hsiupdlibdev\build\lib\sac.lib 
 \softutil\softutil\mep_r.a 
-\hal\BT_hoststack\lib\hal-BT_hoststack.lib 
 \aud_sw\lib\libcpaudio.a 
-\framework\build\crane_evb_z2\libhal.a 
+\framework\build\crane_evb\libhal.a 
+\softutil\fotadm\lib\lib_fotadm.a 
+\alios\common\lib\activation.a 
+\alios\common\lib\chip_code.a 
+\alios\common\lib\cjson.a 
+\alios\common\lib\debug.a 
+\alios\common\lib\kernel_init.a 
+\alios\common\lib\kv.a 
+\alios\common\lib\mbedtls.a 
+\alios\common\lib\mcu_asr3601.a 
+\alios\common\lib\osal_aos.a 
+\alios\common\lib\ulog.a 
+\alios\linkkit\lib\identify.a 
+\alios\linkkit\lib\libiot_certs.a 
+\alios\linkkit\lib\libiot_devmodel.a 
+\alios\linkkit\lib\libiot_dynreg.a 
+\alios\linkkit\lib\libiot_infra.a 
+\alios\linkkit\lib\libiot_mqtt.a 
+\alios\linkkit\lib\libiot_sign.a 
+\alios\linkkit\lib\libiot_wrappers.a 
+\alios\upay\lib\alicrypto.a 
+\alios\upay\lib\alipay_iot_device_name.lib 
+\alios\upay\lib\alipay_iot_netcore.lib 
+\alios\upay\lib\alipay_iot_rpc.lib 
+\alios\upay\lib\ALIPAY_IoTPay_network.lib 
+\alios\upay\lib\ALIPAY_IoTPay_network_se.lib 
+\alios\upay\lib\alipay_mbedtls.lib 
+\alios\upay\lib\alipay_qrdecoder.lib 
+\alios\upay\lib\AlipayInsideSESDK.lib 
+\alios\upay\lib\cJSON.lib 
+\alios\upay\lib\id2.a 
+\alios\upay\lib\libkm.a 
+\alios\upay\lib\libprov.a 
+\alios\upay\lib\libsst.a 
+\alios\upay\lib\ls_alipay.a 
+\alios\upay\lib\protobuf-c.lib 
+\alios\upay\lib\upay.a 
 \tavor\Arbel\CRANE_SDK_LIB\FP_GENERIC_ALIOS_LTEGSM\armps.lib 
index 5b30aad..85fec7c 100644 (file)
@@ -82,7 +82,7 @@
         {
           "name": "fota_pkg",
           "format": "raw",
-          "size": "1088KiB"
+          "size": "128KiB"
         },
         {
           "name": "nvm",