void hsusb_chg_notify_over_tempearture(bool OT_flag) { mutex_lock(&OT_flag_lock); if (g_OT_flag != OT_flag) { g_OT_flag = OT_flag; if (g_OT_flag) { msm_chg_usb_i_is_available(0); } else { msm_chg_usb_i_is_available(chg_current); } } mutex_unlock(&OT_flag_lock); }
void hsusb_chg_vbus_draw(unsigned mA) { if (mA) msm_chg_usb_i_is_available(mA); else msm_chg_usb_i_is_not_available(); }
void hsusb_chg_connected(enum chg_type chgtype) { switch (chgtype) { case CHG_TYPE_HOSTPC: pr_debug("Charger Type: HOST PC\n"); msm_chg_usb_charger_connected(0); msm_chg_usb_i_is_available(100); break; case CHG_TYPE_WALL_CHARGER: pr_debug("Charger Type: WALL CHARGER\n"); msm_chg_usb_charger_connected(2); msm_chg_usb_i_is_available(1500); break; case CHG_TYPE_INVALID: pr_debug("Charger Type: DISCONNECTED\n"); msm_chg_usb_i_is_not_available(); msm_chg_usb_charger_disconnected(); break; } }
void hsusb_chg_vbus_draw(unsigned mA) { #if defined(CONFIG_MACH_ARUBA_DUOS_CTC) || defined(CONFIG_MACH_INFINITE_DUOS_CTC) || defined(CONFIG_MACH_ARUBA_OPEN_CHN) printk("%s : intended_set = %d\n" , __func__ , intended_set ); if (intended_set) { intended_set = 0; return; } #endif msm_chg_usb_i_is_available(mA); }
void hsusb_chg_vbus_draw(unsigned mA) { /* Div2-SW2-BSP-FBX-CHG { */ #ifdef CONFIG_BATTERY_FIH_MSM chg_current = mA; mutex_lock(&OT_flag_lock); if (g_OT_flag) msm_chg_usb_i_is_available(0); else #endif /* } Div2-SW2-BSP-FBX-CHG */ msm_chg_usb_i_is_available(mA); /* Div2-SW2-BSP-FBX-CHG { */ #ifdef CONFIG_BATTERY_FIH_MSM mutex_unlock(&OT_flag_lock); #endif /* } Div2-SW2-BSP-FBX-CHG */ }
void hsusb_chg_vbus_draw(unsigned mA) { msm_chg_usb_i_is_available(mA); }
static void chgic_chg_workqueue(struct work_struct *work) { uint32_t type = USB_CHG_TYPE__NONE; unsigned chg = 0; bool retryflg = false; CHGIC_DBG_PRINT("%s: changer_set_mode:%x\n", __func__, changer_set_mode); switch (changer_set_mode) { case KC_CHANGER_NO_ACCESSORY: type = USB_CHG_TYPE__INVALID; break; case KC_CHANGER_USB_MODE: type = USB_CHG_TYPE__NONE; break; case KC_CHANGER_AC_ADAPTER: type = USB_CHG_TYPE__WALLCHARGER; chg = MAX_CHG_VAL; break; case KC_CHANGER_AUDIO_CHG_MIC_MONO: type = USB_CHG_TYPE__MONO_EARPHONE; chg = MAX_CHG_VAL; break; case KC_CHANGER_AUDIO_CHG_STEREO: type = USB_CHG_TYPE__STEREO_EARPHONE; chg = MAX_CHG_VAL; break; default: if (changer_set_mode & CHGIC_MODE_VBUS_MASK) { type = USB_CHG_TYPE__WALLCHARGER; chg = MAX_CHG_VAL; } else { type = USB_CHG_TYPE__INVALID; } break; } if (type != USB_CHG_TYPE__NONE && type != USB_CHG_TYPE__INVALID) { if ((msm_chg_usb_charger_connected(type) < 0) || (msm_chg_usb_i_is_available(chg) < 0)) { retryflg = true; } } else if (type == USB_CHG_TYPE__INVALID) { if ((changer_set_mode_prev != KC_CHANGER_USB_MODE) && (changer_set_mode_prev != KC_CHANGER_NO_ACCESSORY) ) { if ((msm_chg_usb_i_is_not_available() < 0) || (msm_chg_usb_charger_disconnected() < 0)) { retryflg = true; } } } if (retryflg) { msleep(WAIT_START_RETRY); schedule_work(&changer_info->chg_work); } }