static kal_uint32 charging_get_battery_status(void *data) { kal_uint32 status = STATUS_OK; upmu_set_baton_tdet_en(1); upmu_set_rg_baton_en(1); *(kal_bool*)(data) = upmu_get_rgs_baton_undet(); return status; }
static kal_uint32 charging_get_battery_status(void *data) { kal_bool status = KAL_TRUE; #ifdef CONFIG_LGE_PM_BATTERY_PRESENT upmu_set_baton_tdet_en(1); upmu_set_rg_baton_en(1); if (upmu_get_rgs_baton_undet()) status = KAL_FALSE; #endif *(kal_bool*)(data) = status; return STATUS_OK; }
static kal_uint32 charging_enable(void *data) { int status; int enable = *(int*)(data); int rc = 0; if (enable == g_charging_enabled && !g_charging_setting_chagned) return STATUS_OK; /* Do not disable charging when battery disconnected */ if (!enable && upmu_get_rgs_baton_undet()) return STATUS_OK; if (enable) { status = POWER_SUPPLY_STATUS_CHARGING; } else { status = POWER_SUPPLY_STATUS_NOT_CHARGING; } rc = set_property(POWER_SUPPLY_PROP_STATUS, status); if (rc) { battery_xlog_printk(BAT_LOG_CRTI, "[PowerSupply] failed to %s charging.(%d)\n", (enable ? "start" : "stop"), rc); return STATUS_UNSUPPORTED; } g_charging_enabled = enable; /* clear charging setting */ if (!g_charging_enabled) { g_charging_current = 0; g_charging_current_limit = 0; g_charging_voltage = 0; } g_charging_setting_chagned = 0; battery_xlog_printk(BAT_LOG_CRTI, "[PowerSupply] %s charging.\n", (g_charging_enabled ? "start" : "stop")); return STATUS_OK; }