Example #1
0
void p1_lpm_mode_check(struct chg_data *chg)
{

    if(get_boot_charger_info())
    {
        printk("%s : VDCIN (%d)\n", __func__, get_charging_status(chg));
        if(get_charging_status(chg)) {
            charging_mode_set(chg, 1);
        }
        else {
            if (pm_power_off)
                pm_power_off();
        }
    }
    else
    {
        charging_mode_set(chg, 0);
    }
}
static void chargeled_update() {
    static int last_charge_status = BATTERY_STATUS_UNKNOWN;
    int charge_status;

    charge_status = get_charging_status();
    if (charge_status <= 0 || charge_status == last_charge_status)
        return;

    last_charge_status = charge_status;
    update_led(charge_status);
}
int battery_charging(void)
{
    char	str[128];
    int i = 0, j = 5, first_up = 1;
    int sleep_val = 0;
    int tmp=-1, charging_percentage=-2;

#ifdef	CONFIG_UBI_SUPPORT    
    run_command ("ubi part system", 0);    
    run_command ("ubifsmount system", 0);
    //run_command ("ubifsls", 0);
#endif

    set_charging_mode(1);

    while(1)
    {
        if(!is_ac_connected())
        {
            printf("Ac adapter removed!!!\n");
            power_down();
            printf("Power Down!\n");
            hang();
        }
		//printf("33333333333333333333333\n");
        //if(powerkey_scan() || any_key_pressed())
        if (any_key_pressed())
        {
			if(sleep_val >= 7)
            {
                run_command("lcd bl on", 0);
            }
            sleep_val = 0;
        }
        if(powerkey_hold(1000))
        {
            return  0;
        } 

		if(j >= 5)
		{
			if(j >= 5) j = 0;
	        if(sleep_val++ < 7)
		    {
		        if(get_charging_status())
		        {
#ifdef	CONFIG_UBI_SUPPORT
		            sprintf(str, "ubifsload ${loadaddr} resource/battery_pic/%d.bmp", (bat_pic_num-1));
#else
		            sprintf(str, "nand read ${loadaddr} %x %x",
		                bat_pic_start+bat_pic_size*(bat_pic_num-1), bat_pic_size);
#endif
		            run_command(str, 0);
		            sprintf(str, "bmp display ${loadaddr} %d %d", bat_pic_x, bat_pic_y);
		            if(run_command(str, 0))
		        	{
		//						AsciiPrintf("Battery Charging...", 260, 200, 0x00ff00);
		//						AsciiPrintf("Press POWER will plug into the ANDROID world!", 130, 240, 0x00ff00);
					}
		            if(first_up)
		            {
		                run_command ("lcd bl on", 0);
		                first_up = 0;
		            }
		            if(tmp != 100)
		            {
		                tmp = charging_percentage = 100;
		                //lcd_printf("\b\b\b\b%3d% ", charging_percentage);
		            }
		        }
		        else
			    {
#ifdef	CONFIG_UBI_SUPPORT
			        sprintf(str, "ubifsload ${loadaddr} resource/battery_pic/%d.bmp", i);
#else
			        sprintf(str, "nand read ${loadaddr} %x %x",
			        bat_pic_start+bat_pic_size*i, bat_pic_size);
#endif
			        run_command(str, 0);
			        sprintf(str, "bmp display ${loadaddr} %d %d", bat_pic_x, bat_pic_y);
			        if(run_command(str, 0))
			    	{
			//						AsciiPrintf("Battery Charging...", 260, 200, 0x00ff00);
			//						AsciiPrintf("Press POWER will plug into the ANDROID world!", 130, 240, 0x00ff00);
					}
			        if(first_up)
			        {
			            run_command ("lcd bl on", 0);
			            first_up = 0;
			        }
			        
			        i = (i+1)%bat_pic_num;

			        charging_percentage = get_charging_percentage();
			        if(tmp != charging_percentage)
			        {
			            tmp = charging_percentage;
			            //lcd_printf("\b\b\b\b%3d% ", charging_percentage);
			        }
			    }
		        if(sleep_val >= 7)
		        {
		            tmp = -1;
		            run_command("lcd bl off", 0);
		        }
		    }
		}
		if(tick_delay(50))
        {
            return  1;
        }
		j++;
    }
}
int battery_charging(void)
{
    char	str[128];
    int i = 0, first_up = 1;
    int sleep_val = 0;
    int tmp=-1, charging_percentage=-2;

    set_charging_mode(1);

    for(i=0; i<26; i++)
    {
        lcd_printf("\n");
    }
    for(i=0; i<52; i++)
    {
        lcd_printf(" ");
    }
    i = 0;
    while(1)
    {
        if(!is_ac_connected)
        {
            printf("Ac adapter removed!!!\n");
            power_unhold();
            printf("Power Down!\n");
            hang();
        }
        if(any_key_pressed())
        {
            if(sleep_val >= 7)
            {
                run_command("lcd bl on", 0);
            }
            sleep_val = 0;
        }
        if(powerkey_hold(1000))
        {
            return  0;
        }
        if(sleep_val++ < 7)
        {
            if(get_charging_status())
            {
#ifdef	CONFIG_UBI_SUPPORT
                sprintf(str, "ubifsload ${loadaddr} resource/battery_pic/%d.bmp", (bat_pic_num-1));
#else
                sprintf(str, "nand read ${loadaddr} %x %x",
                    bat_pic_start+bat_pic_size*(bat_pic_num-1), bat_pic_size);
#endif
                run_command(str, 0);
                sprintf(str, "bmp display ${loadaddr} %d %d", bat_pic_x, bat_pic_y);
                run_command(str, 0);
                if(first_up)
                {
                    run_command ("lcd bl on", 0);
                    first_up = 0;
                }
                if(tmp != 100)
                {
                    tmp = charging_percentage = 100;
                    //lcd_printf("\b\b\b\b%3d% ", charging_percentage);
                }
            }
            else
            {
#ifdef	CONFIG_UBI_SUPPORT
                sprintf(str, "ubifsload ${loadaddr} resource/battery_pic/%d.bmp", i);
#else
                sprintf(str, "nand read ${loadaddr} %x %x",
                    bat_pic_start+bat_pic_size*i, bat_pic_size);
#endif
                run_command(str, 0);
                sprintf(str, "bmp display ${loadaddr} %d %d", bat_pic_x, bat_pic_y);
                run_command(str, 0);
                if(first_up)
                {
                    run_command ("lcd bl on", 0);
                    first_up = 0;
                }
                
                i = (i+1)%bat_pic_num;

                charging_percentage = get_charging_percentage();
                if(tmp != charging_percentage)
                {
                    tmp = charging_percentage;
                    //lcd_printf("\b\b\b\b%3d% ", charging_percentage);
                }
            }
            if(sleep_val >= 7)
            {
                tmp = -1;
                run_command("lcd bl off", 0);
            }
        }
        if(sdelay(1))
        {
            return  1;
        }
    }
}