int max77693_muic_charger_cb(enum cable_type_muic cable_type) { #ifdef CONFIG_BATTERY_MAX77693_CHARGER struct power_supply *psy = power_supply_get_by_name("max77693-charger"); union power_supply_propval value; #endif pr_info("%s: %d\n", __func__, cable_type); switch (cable_type) { case CABLE_TYPE_NONE_MUIC: case CABLE_TYPE_OTG_MUIC: case CABLE_TYPE_JIG_UART_OFF_MUIC: case CABLE_TYPE_MHL_MUIC: is_cable_attached = false; break; case CABLE_TYPE_USB_MUIC: case CABLE_TYPE_JIG_USB_OFF_MUIC: case CABLE_TYPE_JIG_USB_ON_MUIC: is_cable_attached = true; break; case CABLE_TYPE_MHL_VB_MUIC: is_cable_attached = true; break; case CABLE_TYPE_TA_MUIC: case CABLE_TYPE_CARDOCK_MUIC: case CABLE_TYPE_DESKDOCK_MUIC: case CABLE_TYPE_SMARTDOCK_MUIC: case CABLE_TYPE_JIG_UART_OFF_VB_MUIC: is_cable_attached = true; break; default: pr_err("%s: invalid type:%d\n", __func__, cable_type); return -EINVAL; } #ifdef CONFIG_BATTERY_MAX77693_CHARGER if (!psy) { pr_err("%s: fail to get max77693-charger psy\n", __func__); return 0; } value.intval = cable_type; psy->set_property(psy, POWER_SUPPLY_PROP_ONLINE, &value); #endif #ifdef CONFIG_CHARGER_MANAGER if (is_cable_attached) charge_current_set(CABLE_TYPE_TA); #endif #if defined(CONFIG_MACH_SLP_NAPLES) || defined(CONFIG_MACH_MIDAS) #ifndef CONFIG_MACH_GC1 tsp_charger_infom(is_cable_attached); #endif #endif #ifdef CONFIG_JACK_MON jack_event_handler("charger", is_cable_attached); #endif return 0; }
static int muic_charger_cb(enum muic_attached_dev cable_type) { struct power_supply *psy = power_supply_get_by_name("battery"); union power_supply_propval value; pr_info("%s:%s %d\n", MUIC_DEV_NAME, __func__, cable_type); switch (cable_type) { case ATTACHED_DEV_NONE_MUIC: case ATTACHED_DEV_OTG_MUIC: case ATTACHED_DEV_JIG_UART_OFF_MUIC: current_cable_type = POWER_SUPPLY_TYPE_BATTERY; break; case ATTACHED_DEV_USB_MUIC: case ATTACHED_DEV_CDP_MUIC: #if defined(CONFIG_MUIC_SUPPORT_POGO_USB) case ATTACHED_DEV_POGO_USB_MUIC: #endif /* CONFIG_MUIC_SUPPORT_POGO_USB */ case ATTACHED_DEV_JIG_USB_OFF_MUIC: case ATTACHED_DEV_JIG_USB_ON_MUIC: current_cable_type = POWER_SUPPLY_TYPE_USB; break; case ATTACHED_DEV_TA_MUIC: case ATTACHED_DEV_500MA_TA_MUIC: case ATTACHED_DEV_2A_TA_MUIC: #if defined(CONFIG_MUIC_SUPPORT_POGO_TA) case ATTACHED_DEV_POGO_TA_MUIC: #endif /* CONFIG_MUIC_SUPPORT_POGO_TA */ #if defined(CONFIG_MUIC_ADC_ADD_PLATFORM_DEVICE) case ATTACHED_DEV_UNKNOWN_TA_MUIC: #endif /* CONFIG_MUIC_ADC_ADD_PLATFORM_DEVICE */ case ATTACHED_DEV_DESKDOCK_MUIC: case ATTACHED_DEV_CARDOCK_MUIC: case ATTACHED_DEV_JIG_UART_OFF_VB_MUIC: current_cable_type = POWER_SUPPLY_TYPE_MAINS; break; default: pr_err("%s:%s invalid type:%d\n", MUIC_DEV_NAME, __func__, cable_type); return -EINVAL; } #if defined(CONFIG_MACH_WATCH) tsp_charger_infom(current_cable_type != POWER_SUPPLY_TYPE_BATTERY ? true : false ); #endif if (!psy || !psy->set_property) pr_err("%s: fail to get battery psy\n", __func__); else { value.intval = current_cable_type; psy->set_property(psy, POWER_SUPPLY_PROP_ONLINE, &value); } return 0; }
int max77693_muic_charger_cb(enum cable_type_muic cable_type) { struct power_supply *psy = power_supply_get_by_name("battery"); union power_supply_propval value; static enum cable_type_muic previous_cable_type = CABLE_TYPE_NONE_MUIC; pr_info("[BATT] CB enabled %d\n", cable_type); /* others setting */ switch (cable_type) { case CABLE_TYPE_NONE_MUIC: case CABLE_TYPE_OTG_MUIC: case CABLE_TYPE_JIG_UART_OFF_MUIC: case CABLE_TYPE_MHL_MUIC: is_cable_attached = false; break; case CABLE_TYPE_USB_MUIC: case CABLE_TYPE_JIG_USB_OFF_MUIC: case CABLE_TYPE_JIG_USB_ON_MUIC: case CABLE_TYPE_SMARTDOCK_USB_MUIC: is_cable_attached = true; break; case CABLE_TYPE_MHL_VB_MUIC: is_cable_attached = true; break; case CABLE_TYPE_TA_MUIC: case CABLE_TYPE_CARDOCK_MUIC: case CABLE_TYPE_DESKDOCK_MUIC: case CABLE_TYPE_SMARTDOCK_MUIC: case CABLE_TYPE_SMARTDOCK_TA_MUIC: case CABLE_TYPE_AUDIODOCK_MUIC: case CABLE_TYPE_JIG_UART_OFF_VB_MUIC: is_cable_attached = true; break; default: pr_err("%s: invalid type:%d\n", __func__, cable_type); return -EINVAL; } #if defined(CONFIG_MACH_SLP_NAPLES) || defined(CONFIG_MACH_MIDAS) \ || defined(CONFIG_MACH_GC1) || defined(CONFIG_MACH_T0) tsp_charger_infom(is_cable_attached); #endif #if defined(CONFIG_MACH_JA) touchkey_charger_infom(is_cable_attached); #endif /* charger setting */ if (previous_cable_type == cable_type) { pr_info("%s: SKIP cable setting\n", __func__); goto skip; } previous_cable_type = cable_type; switch (cable_type) { case CABLE_TYPE_NONE_MUIC: case CABLE_TYPE_JIG_UART_OFF_MUIC: current_cable_type = POWER_SUPPLY_TYPE_BATTERY; break; case CABLE_TYPE_MHL_VB_MUIC: if (lpcharge) current_cable_type = POWER_SUPPLY_TYPE_USB; else goto skip; break; case CABLE_TYPE_MHL_MUIC: if (lpcharge) { current_cable_type = POWER_SUPPLY_TYPE_BATTERY; } else { goto skip; } break; case CABLE_TYPE_OTG_MUIC: goto skip; case CABLE_TYPE_USB_MUIC: case CABLE_TYPE_JIG_USB_OFF_MUIC: case CABLE_TYPE_JIG_USB_ON_MUIC: case CABLE_TYPE_SMARTDOCK_USB_MUIC: current_cable_type = POWER_SUPPLY_TYPE_USB; break; case CABLE_TYPE_JIG_UART_OFF_VB_MUIC: current_cable_type = POWER_SUPPLY_TYPE_UARTOFF; break; case CABLE_TYPE_TA_MUIC: current_cable_type = POWER_SUPPLY_TYPE_MAINS; break; case CABLE_TYPE_CARDOCK_MUIC: case CABLE_TYPE_DESKDOCK_MUIC: case CABLE_TYPE_SMARTDOCK_MUIC: case CABLE_TYPE_AUDIODOCK_MUIC: case CABLE_TYPE_SMARTDOCK_TA_MUIC: current_cable_type = POWER_SUPPLY_TYPE_MISC; break; default: pr_err("%s: invalid type for charger:%d\n", __func__, cable_type); goto skip; } if (!psy || !psy->set_property) pr_err("%s: fail to get battery psy\n", __func__); else { value.intval = current_cable_type<<ONLINE_TYPE_MAIN_SHIFT; psy->set_property(psy, POWER_SUPPLY_PROP_ONLINE, &value); } skip: #ifdef CONFIG_JACK_MON jack_event_handler("charger", is_cable_attached); #endif return 0; }
int max77693_muic_charger_cb(enum cable_type_muic cable_type) { #if !defined(USE_CHGIN_INTR) #ifdef CONFIG_BATTERY_MAX77693_CHARGER struct power_supply *psy = power_supply_get_by_name("max77693-charger"); union power_supply_propval value; #endif #endif #ifdef CONFIG_CHARGER_MAX77693_BAT struct power_supply *psy = power_supply_get_by_name("battery"); union power_supply_propval value; #endif static enum cable_type_muic previous_cable_type = CABLE_TYPE_NONE_MUIC; struct power_supply *psy_p = power_supply_get_by_name("ps"); pr_info("%s: %d\n", __func__, cable_type); switch (cable_type) { case CABLE_TYPE_NONE_MUIC: case CABLE_TYPE_OTG_MUIC: case CABLE_TYPE_JIG_UART_OFF_MUIC: case CABLE_TYPE_MHL_MUIC: #ifdef CONFIG_MUIC_MAX77693_SUPPORT_PS_CABLE case CABLE_TYPE_POWER_SHARING_MUIC: #endif is_cable_attached = false; break; case CABLE_TYPE_USB_MUIC: case CABLE_TYPE_JIG_USB_OFF_MUIC: case CABLE_TYPE_JIG_USB_ON_MUIC: is_cable_attached = true; break; case CABLE_TYPE_MHL_VB_MUIC: is_cable_attached = true; break; case CABLE_TYPE_TA_MUIC: case CABLE_TYPE_CARDOCK_MUIC: case CABLE_TYPE_DESKDOCK_MUIC: case CABLE_TYPE_SMARTDOCK_MUIC: case CABLE_TYPE_AUDIODOCK_MUIC: case CABLE_TYPE_JIG_UART_OFF_VB_MUIC: is_cable_attached = true; break; default: pr_err("%s: invalid type:%d\n", __func__, cable_type); return -EINVAL; } #if !defined(USE_CHGIN_INTR) #ifdef CONFIG_BATTERY_MAX77693_CHARGER if (!psy || !psy->set_property) { pr_err("%s: fail to get max77693-charger psy\n", __func__); return 0; } value.intval = cable_type; psy->set_property(psy, POWER_SUPPLY_PROP_ONLINE, &value); #endif #endif if (previous_cable_type == cable_type) { pr_info("%s : SKIP cable setting\n", __func__); goto skip_cable_setting; } #ifdef CONFIG_CHARGER_MAX77693_BAT /* charger setting */ switch (cable_type) { case CABLE_TYPE_NONE_MUIC: case CABLE_TYPE_JIG_UART_OFF_MUIC: current_cable_type = POWER_SUPPLY_TYPE_BATTERY; break; case CABLE_TYPE_MHL_VB_MUIC: if (lpcharge) current_cable_type = POWER_SUPPLY_TYPE_USB; else goto skip; break; case CABLE_TYPE_MHL_MUIC: if (lpcharge) { current_cable_type = POWER_SUPPLY_TYPE_BATTERY; } else { goto skip; } break; case CABLE_TYPE_OTG_MUIC: goto skip; case CABLE_TYPE_USB_MUIC: case CABLE_TYPE_JIG_USB_OFF_MUIC: case CABLE_TYPE_JIG_USB_ON_MUIC: case CABLE_TYPE_SMARTDOCK_USB_MUIC: current_cable_type = POWER_SUPPLY_TYPE_USB; break; case CABLE_TYPE_JIG_UART_OFF_VB_MUIC: current_cable_type = POWER_SUPPLY_TYPE_UARTOFF; break; case CABLE_TYPE_TA_MUIC: current_cable_type = POWER_SUPPLY_TYPE_MAINS; break; case CABLE_TYPE_CARDOCK_MUIC: case CABLE_TYPE_DESKDOCK_MUIC: case CABLE_TYPE_SMARTDOCK_MUIC: case CABLE_TYPE_AUDIODOCK_MUIC: case CABLE_TYPE_SMARTDOCK_TA_MUIC: current_cable_type = POWER_SUPPLY_TYPE_MISC; break; #ifdef CONFIG_MUIC_MAX77693_SUPPORT_PS_CABLE case CABLE_TYPE_POWER_SHARING_MUIC: current_cable_type = POWER_SUPPLY_TYPE_POWER_SHARING; break; #endif default: pr_err("%s: invalid type for charger:%d\n", __func__, cable_type); goto skip; } if (!psy || !psy->set_property || !psy_p || !psy_p->set_property) { pr_err("%s: fail to get battery psy\n", __func__); return 0; } else { #ifdef CONFIG_MUIC_MAX77693_SUPPORT_PS_CABLE if (current_cable_type == POWER_SUPPLY_TYPE_POWER_SHARING) { value.intval = current_cable_type; psy_p->set_property(psy_p, POWER_SUPPLY_PROP_ONLINE, &value); } else { if (previous_cable_type == CABLE_TYPE_POWER_SHARING_MUIC) { value.intval = current_cable_type; psy_p->set_property(psy_p, POWER_SUPPLY_PROP_ONLINE, &value); } #endif value.intval = current_cable_type<<ONLINE_TYPE_MAIN_SHIFT; psy->set_property(psy, POWER_SUPPLY_PROP_ONLINE, &value); #ifdef CONFIG_MUIC_MAX77693_SUPPORT_PS_CABLE } #endif } skip: #endif previous_cable_type = cable_type; skip_cable_setting: #if defined(CONFIG_MACH_SLP_NAPLES) \ || defined(CONFIG_MACH_MIDAS) \ || defined(CONFIG_MACH_GC1) \ || defined(CONFIG_MACH_T0) \ || defined(CONFIG_MACH_GD2) #ifndef CONFIG_TOUCHSCREEN_CYPRESS_TMA46X #ifndef CONFIG_MACH_KONA tsp_charger_infom(is_cable_attached); #endif #endif #endif #ifdef CONFIG_JACK_MON jack_event_handler("charger", is_cable_attached); #endif return 0; }
int max77803_muic_charger_cb(enum cable_type_muic cable_type) { struct power_supply *psy = power_supply_get_by_name("battery"); struct power_supply *psy_p = power_supply_get_by_name("ps"); union power_supply_propval value; static enum cable_type_muic previous_cable_type = CABLE_TYPE_NONE_MUIC; pr_info("[BATT] CB enabled(%d), prev_cable(%d)\n", cable_type, previous_cable_type); /* others setting */ switch (cable_type) { case CABLE_TYPE_NONE_MUIC: case CABLE_TYPE_OTG_MUIC: case CABLE_TYPE_JIG_UART_OFF_MUIC: case CABLE_TYPE_MHL_MUIC: case CABLE_TYPE_DESKDOCK_MUIC: case CABLE_TYPE_PS_CABLE_MUIC: is_cable_attached = false; break; case CABLE_TYPE_USB_MUIC: case CABLE_TYPE_JIG_USB_OFF_MUIC: case CABLE_TYPE_JIG_USB_ON_MUIC: case CABLE_TYPE_SMARTDOCK_USB_MUIC: is_cable_attached = true; break; case CABLE_TYPE_MHL_VB_MUIC: is_cable_attached = true; break; case CABLE_TYPE_TA_MUIC: case CABLE_TYPE_LANHUB_MUIC: case CABLE_TYPE_CARDOCK_MUIC: case CABLE_TYPE_DESKDOCK_TA_MUIC: case CABLE_TYPE_SMARTDOCK_MUIC: case CABLE_TYPE_SMARTDOCK_TA_MUIC: case CABLE_TYPE_AUDIODOCK_MUIC: case CABLE_TYPE_JIG_UART_OFF_VB_MUIC: case CABLE_TYPE_CDP_MUIC: case CABLE_TYPE_MMDOCK_MUIC: case CABLE_TYPE_UNSUPPORTED_ID_VB_MUIC: is_cable_attached = true; break; default: pr_err("%s: invalid type:%d\n", __func__, cable_type); return -EINVAL; } #ifdef SYNAPTICS_RMI_INFORM_CHARGER #if defined(CONFIG_V2A) if (0x6 <= system_rev) tsp_charger_infom(is_cable_attached); else #endif synaptics_tsp_charger_infom(cable_type); #elif defined(CONFIG_V1A) || defined(CONFIG_V2A) \ || defined(CONFIG_N1A) || defined(CONFIG_N2A)\ || defined(CONFIG_KLIMT) tsp_charger_infom(is_cable_attached); #endif #if defined(CONFIG_MACH_JA) touchkey_charger_infom(is_cable_attached); #endif #if defined(CONFIG_KLIMT) && defined(TK_INFORM_CHARGER) touchkey_charger_infom(is_cable_attached); #endif /* charger setting */ if (previous_cable_type == cable_type) { pr_info("%s: SKIP cable setting\n", __func__); goto skip_cable_setting; } switch (cable_type) { case CABLE_TYPE_NONE_MUIC: case CABLE_TYPE_JIG_UART_OFF_MUIC: case CABLE_TYPE_DESKDOCK_MUIC: current_cable_type = POWER_SUPPLY_TYPE_BATTERY; break; case CABLE_TYPE_MHL_VB_MUIC: if (lpcharge) current_cable_type = POWER_SUPPLY_TYPE_USB; else goto skip; break; case CABLE_TYPE_MHL_MUIC: if (lpcharge) { current_cable_type = POWER_SUPPLY_TYPE_BATTERY; } else { goto skip; } break; case CABLE_TYPE_OTG_MUIC: goto skip; case CABLE_TYPE_USB_MUIC: case CABLE_TYPE_JIG_USB_OFF_MUIC: case CABLE_TYPE_JIG_USB_ON_MUIC: case CABLE_TYPE_SMARTDOCK_USB_MUIC: current_cable_type = POWER_SUPPLY_TYPE_USB; break; case CABLE_TYPE_JIG_UART_OFF_VB_MUIC: current_cable_type = POWER_SUPPLY_TYPE_UARTOFF; break; case CABLE_TYPE_TA_MUIC: case CABLE_TYPE_CARDOCK_MUIC: case CABLE_TYPE_DESKDOCK_TA_MUIC: case CABLE_TYPE_SMARTDOCK_MUIC: case CABLE_TYPE_SMARTDOCK_TA_MUIC: case CABLE_TYPE_UNSUPPORTED_ID_VB_MUIC: current_cable_type = POWER_SUPPLY_TYPE_MAINS; break; case CABLE_TYPE_AUDIODOCK_MUIC: current_cable_type = POWER_SUPPLY_TYPE_MISC; break; case CABLE_TYPE_CDP_MUIC: current_cable_type = POWER_SUPPLY_TYPE_USB_CDP; break; case CABLE_TYPE_LANHUB_MUIC: current_cable_type = POWER_SUPPLY_TYPE_LAN_HUB; break; case CABLE_TYPE_PS_CABLE_MUIC: current_cable_type = POWER_SUPPLY_TYPE_POWER_SHARING; break; case CABLE_TYPE_MMDOCK_MUIC: return 0; default: pr_err("%s: invalid type for charger:%d\n", __func__, cable_type); goto skip; } if (!psy || !psy->set_property || !psy_p || !psy_p->set_property) { pr_err("%s: fail to get battery/ps psy\n", __func__); } else { if (current_cable_type == POWER_SUPPLY_TYPE_POWER_SHARING) { value.intval = current_cable_type; psy_p->set_property(psy_p, POWER_SUPPLY_PROP_ONLINE, &value); } else { if (previous_cable_type == CABLE_TYPE_PS_CABLE_MUIC) { value.intval = current_cable_type; psy_p->set_property(psy_p, POWER_SUPPLY_PROP_ONLINE, &value); } value.intval = current_cable_type<<ONLINE_TYPE_MAIN_SHIFT; psy->set_property(psy, POWER_SUPPLY_PROP_ONLINE, &value); } } skip: previous_cable_type = cable_type; skip_cable_setting: #ifdef CONFIG_JACK_MON jack_event_handler("charger", is_cable_attached); #endif return 0; }