+}
+static int rk_adc_battery_poweron_status(struct rk30_adc_battery_data *bat)
+{
+ int status;
+ int otg_status = 0;
+ struct rk30_adc_battery_platform_data *pdata = bat->pdata;
+
+ if (get_ac_status(bat) ){
+ bat->bat_status = POWER_SUPPLY_STATUS_CHARGING;
+ bat -> ac_charging = 1;
+ if (is_charge_ok(bat) == 1){
+ bat->bat_status = POWER_SUPPLY_STATUS_FULL;
+ bat->bat_capacity = 100;
+ }
+ power_supply_changed(&bat ->ac);
+
+ }
+#if defined (CONFIG_BATTERY_RK30_USB_CHARGE)
+ otg_status = dwc_otg_check_dpdm();
+ if( 0 != otg_status ){
+ bat->bat_status = POWER_SUPPLY_STATUS_CHARGING;
+ if (is_charge_ok(bat) == 1){
+ bat->bat_status = POWER_SUPPLY_STATUS_FULL;
+ bat->bat_capacity = 100;
+ }
+ }
+
+ if(otg_status == 1){
+ bat->usb_charging = 1;
+ if(bat -> pdata ->control_usb_charging)
+ bat -> pdata ->control_usb_charging(0);
+ }else if(otg_status == 2){
+ bat->usb_charging = 0;
+ bat -> ac_charging = 1;
+ if(bat -> pdata ->control_usb_charging)
+ bat -> pdata ->control_usb_charging(1);
+ }else{
+ bat->usb_charging = 0;
+ }
+ printk("charge_status = %d\n",otg_status);
+#endif
+ power_supply_changed(&bat ->ac);
+#if defined (CONFIG_BATTERY_RK30_USB_CHARGE)
+ power_supply_changed(&bat ->usb);
+#endif
+ if((bat -> ac_charging == 1)||(bat->usb_charging == 1)){
+ bat ->old_charge_level =1;
+ bat->charge_level = 1;
+ status =1;
+ }else{
+ bat ->old_charge_level =0;
+ bat->charge_level = 0;
+ status =0;
+ }
+ return status;
+
+