Example #1
0
static int battery_monitor_fleeting_wakeup_handler( unsigned long arg ) 
{
    int ret = 0;
    int is_full = 0;
    int charge_current_adc = 0;

    get_system_status_in_sleep( &sec_bci.battery.battery_level_ptg,
                &sec_bci.battery.battery_level_vol,
                &sec_bci.battery.battery_temp, 
                &charge_current_adc );

	if( sec_bci.charger.is_charging && (sec_bci.battery.battery_level_ptg >= 90 || sec_bci.battery.battery_level_vol >= 4050))
	{
	    if ( device_config->MONITORING_CHG_CURRENT )
	        is_full = check_full_charge_using_chg_current( charge_current_adc );
	    else
	        is_full = _check_full_charge_dur_sleep_();
	}

    if ( is_full )
    {
        sec_bci.charger.full_charge_dur_sleep = 0x1;
        ret = -1;
    }
    else
    {
        sec_bci.charger.full_charge_dur_sleep = 0x0;
        ret = battery_monitor_core( CHARGE_DUR_SLEEP );
    }

    if ( ret >= 0 )
        request_gptimer12( &batt_gptimer_12 );

    return ret;
}
Example #2
0
static int battery_monitor_fleeting_wakeup_handler( unsigned long arg ) 
// ----------------------------------------------------------------------------
// Description    : 
// Input Argument :  
// Return Value   :
{
	int ret = 0;
	int is_full = 0;
	int charge_current_adc = 0;

	//struct battery_device_info *di = (struct battery_device_info *) arg;

	//printk("? %s\n", di->dev->kobj.name);
	//printk("opp: %d\n", resource_get_level("vdd1_opp"));
	
	get_system_status_in_sleep( &sec_bci.battery.battery_level_ptg,
				&sec_bci.battery.battery_level_vol,
				&sec_bci.battery.battery_temp, 
				&charge_current_adc );

	if ( sec_bci.charger.is_charging )
	{
		if ( device_config->MONITORING_CHG_CURRENT )
			is_full = check_full_charge_using_chg_current( charge_current_adc );
		else
			is_full = _check_full_charge_dur_sleep_();
	}


	if ( is_full )
	{
		sec_bci.charger.full_charge_dur_sleep = 0x1;
		ret = -1;
	}
	else
	{
		sec_bci.charger.full_charge_dur_sleep = 0x0;
		ret = battery_monitor_core( CHARGE_DUR_SLEEP );
	}

	if ( ret >= 0 )
		request_gptimer12( &batt_gptimer_12 );

#if 0
	debug_fleeting_counter++;
	printk( "<br> monitor BATT.(%d%%, %dmV, %d*) - %d\n", 
	sec_bci.battery.battery_level_ptg,
	sec_bci.battery.battery_level_vol,
	sec_bci.battery.battery_temp,
	debug_fleeting_counter );
#endif

	return ret;

}