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