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; }
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; }