| /******************************************************************************* |
| * Copyright (C) 2016, ZIXC Corporation. |
| * |
| * File Name: hal_led.c |
| * File Mark: |
| * Description: This file contains the hal layer routines for i2c driver. |
| * Others: |
| * Version: V1.0 |
| * Author: yx |
| * Date: 2014-07-03 |
| * History 1: |
| * Date: |
| * Version: |
| * Author: |
| * Modification: |
| * History 2: |
| ******************************************************************************/ |
| |
| /**************************************************************************** |
| * Include files |
| ****************************************************************************/ |
| |
| #include <common.h> |
| //#include "drvs_general.h" |
| //#include "drvs_i2c.h" |
| #include <linux/types.h> |
| #include <power.h> |
| #include <zx234290.h> |
| #include <led.h> |
| #include <lcd.h> |
| //#include <lcd_blg.h> |
| #include <charge.h> |
| #include <zx234502.h> |
| #include <partition_table.h> |
| #include <linux/mtd/compat.h> |
| /**************************************************************************** |
| * Local Macros |
| ****************************************************************************/ |
| |
| |
| /**************************************************************************** |
| * Local Types |
| ****************************************************************************/ |
| |
| /**************************************************************************** |
| * Local Constants |
| ****************************************************************************/ |
| extern volatile T_ZDrvLcd_Info s_lcd_info; |
| |
| /**************************************************************************** |
| * Function: peripheral_init |
| * Description: init the peripheral include pmu\charger\led\lcd etc. |
| * Parameters: |
| * Input: |
| * |
| * Output: |
| * |
| * Returns: |
| * int |
| * |
| * |
| * Others: |
| ***************************************************************************/ |
| int peripheral_init(void) |
| { |
| int ret = 0; |
| ret = power_init(); |
| /*led*/ |
| zx29_led_init(); |
| /*lcd*/ |
| //ret |= zDrvLcd_Initiate(); |
| #if 0 |
| usb_charger_init(); |
| #endif |
| zx234502_charger_enable(); |
| |
| /* jtagµ÷ÊÔ */ |
| #if 0 |
| jtag_init(); |
| #endif |
| |
| return ret ; |
| } |
| |
| /**************************************************************************** |
| * Function: Show_UpdateWait |
| * Description: show the logo when the local updataing through lcd/led etc. |
| * Parameters: |
| * Input: |
| * |
| * Output: |
| * |
| * |
| * Returns: |
| * int |
| * |
| * |
| * Others: |
| ***************************************************************************/ |
| int Show_UpdateWait(void) |
| { |
| int ret = 0; |
| /*led*/ |
| |
| /*lcd*/ |
| ; |
| return ret; |
| } |
| |
| /**************************************************************************** |
| * Function: Show_UpdateSucc |
| * Description: show the logo when the local updataing through lcd/led etc. |
| * Parameters: |
| * Input: |
| * |
| * Output: |
| * |
| * |
| * Returns: |
| * int |
| * |
| * |
| * Others: |
| ***************************************************************************/ |
| int Show_UpdateSucc(void) |
| { |
| int ret = 0; |
| /*led*/ |
| |
| /*lcd*/ |
| ; |
| return ret; |
| } |
| |
| /**************************************************************************** |
| * Function: Show_UpdateFail |
| * Description: show the logo when the local updataing through lcd/led etc. |
| * Parameters: |
| * Input: |
| * |
| * Output: |
| * |
| * |
| * Returns: |
| * int |
| * |
| * |
| * Others: |
| ***************************************************************************/ |
| int Show_UpdateFail(void) |
| { |
| int ret = 0; |
| /*led*/ |
| |
| /*lcd*/ |
| ; |
| return ret; |
| } |
| |
| /**************************************************************************** |
| * Function: Show_LowPower |
| * Description: show the logo when the local updataing through lcd/led etc. |
| * Parameters: |
| * Input: |
| * |
| * Output: |
| * |
| * |
| * Returns: |
| * int |
| * |
| * |
| * Others: |
| ***************************************************************************/ |
| int Show_LowPower(void) |
| { |
| int ret = 0; |
| |
| /*led*/ |
| zx29_led_PowerOnLedOn(); |
| |
| /*lcd*/ |
| zDrvLcd_ShowLowBattery(); |
| |
| udelay(300); |
| zx29_led_PowerOnLedOff(); |
| |
| /*lcd*/ |
| if (strcmp(s_lcd_info.lcm_info.name,"mifi_no_lcd") == 0) |
| { |
| zDrvLcd_TurnBacklightOnOff(0); |
| } |
| else |
| { |
| zDrvLcd_TurnBacklightOnOff(1); |
| } |
| |
| return ret; |
| } |
| |
| /**************************************************************************** |
| * Function: Show_No_Battery |
| * Description: show the logo when the local updataing through lcd/led etc. |
| * Parameters: |
| * Input: |
| * |
| * Output: |
| * |
| * |
| * Returns: |
| * int |
| * |
| * |
| * Others: |
| ***************************************************************************/ |
| int Show_No_Battery(void) |
| { |
| int ret = 0; |
| /*led*/ |
| zx29_led_PowerOnLedOn(); |
| |
| /*lcd*/ |
| zDrvLcd_ShowNoBattery(); |
| |
| udelay(300); |
| /*led*/ |
| zx29_led_PowerOnLedOff(); |
| |
| if (strcmp(s_lcd_info.lcm_info.name,"mifi_no_lcd") == 0) |
| { |
| zDrvLcd_TurnBacklightOnOff(0); |
| } |
| else |
| { |
| zDrvLcd_TurnBacklightOnOff(1); |
| } |
| |
| return ret; |
| } |
| |
| /**************************************************************************** |
| * Function: Show_PowerOn_Normal |
| * Description: show the logo when the local updataing through lcd/led etc. |
| * Parameters: |
| * Input: |
| * |
| * Output: |
| * |
| * |
| * Returns: |
| * int |
| * |
| * |
| * Others: |
| ***************************************************************************/ |
| int Show_PowerOn_Normal(void) |
| { |
| int ret = 0; |
| /*led*/ |
| zx29_led_PowerOnLedOn(); |
| |
| /*lcd*/ |
| zDrvLcd_PowerOnLogo(); |
| udelay(300); |
| zx29_led_PowerOnLedOff(); |
| |
| if (strcmp(s_lcd_info.lcm_info.name,"mifi_no_lcd") == 0) |
| { |
| zDrvLcd_TurnBacklightOnOff(0); |
| } |
| else |
| { |
| zDrvLcd_TurnBacklightOnOff(1); |
| } |
| |
| return ret; |
| } |
| |
| /**************************************************************************** |
| * Function: Show_PowerOn_Normal |
| * Description: show the logo when the local updataing through lcd/led etc. |
| * Parameters: |
| * Input: |
| * |
| * Output: |
| * |
| * |
| * Returns: |
| * int |
| * |
| * |
| * Others: |
| ***************************************************************************/ |
| |
| int Show_PowerOn_Fota(void) |
| { |
| int ret = 0; |
| /*led*/ |
| zx29_led_PowerOnLedOn(); |
| |
| /*lcd*/ |
| zDrvLcd_ShowUpdateWait(); |
| |
| udelay(300); |
| zx29_led_PowerOnLedOff(); |
| |
| if (strcmp(s_lcd_info.lcm_info.name,"mifi_no_lcd") == 0) |
| { |
| zDrvLcd_TurnBacklightOnOff(0); |
| } |
| else |
| { |
| zDrvLcd_TurnBacklightOnOff(1); |
| } |
| |
| return ret; |
| } |
| |
| |
| /**************************************************************************** |
| * Function: Show_Charging |
| * Description: show the logo when the local updataing through lcd/led etc. |
| * Parameters: |
| * Input: |
| * |
| * Output: |
| * |
| * |
| * Returns: |
| * int |
| * |
| * |
| * Others: |
| ***************************************************************************/ |
| int Show_Charging(void) |
| { |
| int ret = 0; |
| /*led*/ |
| zx29_led_PowerOnLedOn(); |
| |
| /*lcd*/ |
| zDrvLcd_ShowCharging(); |
| udelay(300); |
| zx29_led_PowerOnLedOff(); |
| |
| if (strcmp(s_lcd_info.lcm_info.name,"mifi_no_lcd") == 0) |
| { |
| zDrvLcd_TurnBacklightOnOff(0); |
| } |
| else |
| { |
| zDrvLcd_TurnBacklightOnOff(1); |
| } |
| |
| return ret; |
| } |
| |
| /**************************************************************************** |
| * Function: zx_get_vbat_voltage |
| * Description: . |
| * Parameters: |
| * Input: |
| * |
| * Output: |
| * |
| * |
| * Returns: |
| * int |
| * |
| * |
| * Others: |
| ***************************************************************************/ |
| int zx_get_vbat_voltage(void) |
| { |
| // int ret = 0; |
| |
| return zx234290_get_adc1_voltage(); |
| } |
| |
| /**************************************************************************** |
| * Function: zx_get_battery_Status |
| * Description: |
| * Parameters: |
| * Input: |
| * |
| * Output: |
| * |
| * |
| * Returns: |
| * int |
| * |
| * |
| * Others: |
| ***************************************************************************/ |
| unsigned int zx_get_battery_Status(void) |
| { |
| #if 0 |
| int ret = 0; |
| int boost_flag = 1; |
| |
| zx234502_battery_status(&boost_flag); |
| if(boost_flag){ |
| return 0;/*battery uninstall*/ |
| } |
| else |
| return 1;/*battery install*/ |
| #else |
| int ret = 0; |
| int battery_status = 0; |
| |
| ret = zx234290_get_adc2_voltage(); |
| if (ret < 0) |
| { |
| printf("\t[zx234290_get_adc2_voltage] return [%d] in [%s]\n", ret, __FUNCTION__); |
| return ret; |
| } |
| |
| battery_status = (ret < 1770); |
| |
| #if 0 |
| if (battery_status) |
| printf("\t[%s] get %d and return battery connected\n", __FUNCTION__, ret); |
| else |
| printf("\t[%s] get %d and return battery disconnected\n", __FUNCTION__, ret); |
| #endif |
| |
| return battery_status; |
| #endif |
| } |
| |