예제 #1
0
파일: switch_charging.c 프로젝트: djun/m463
void select_charging_curret_bcct(void)
{
	set_bat_charging_current_limit(MED12C_CHARGER_CURRENT / 100);
	if (BMT_status.charger_type == STANDARD_HOST) {
            	g_temp_input_CC_value = USB_CHARGER_CURRENT;
            	g_temp_CC_value = USB_CHARGER_CURRENT;
	}else if( (BMT_status.charger_type == STANDARD_CHARGER) ||
             (BMT_status.charger_type == CHARGING_HOST) ) {
		g_temp_input_CC_value = STANDARD_CHARGER_CURRENT;
	 } else {
		g_temp_input_CC_value = CHARGE_CURRENT_500_00_MA;
	 }
}
static void 
mtk_cl_bcct_set_bcct_limit(void)
{
  // TODO: optimize
  int i = 0;
  int min_limit = 65535;
  for (; i < MAX_NUM_INSTANCE_MTK_COOLER_BCCT; i++)
  {
    unsigned long curr_state;

    MTK_CL_BCCT_GET_CURR_STATE(curr_state, cl_bcct_state[i]);
    if (1 == curr_state)
    {
      int limit;
      MTK_CL_BCCT_GET_LIMIT(limit, cl_bcct_state[i]);
      if ((min_limit > limit) && (limit > 0))
        min_limit = limit;
    }
  }

  if (min_limit != cl_bcct_cur_limit)
  {
    cl_bcct_cur_limit = min_limit;
#if 1
    if (65535 <= cl_bcct_cur_limit)
    {
      set_bat_charging_current_limit(-1);
      mtk_cooler_bcct_dprintk_always("mtk_cl_bcct_set_bcct_limit() limit=-1\n");
    }
    else
    {
      set_bat_charging_current_limit(cl_bcct_cur_limit);
      mtk_cooler_bcct_dprintk_always("mtk_cl_bcct_set_bcct_limit() limit=%d\n", cl_bcct_cur_limit);
    }
    
    mtk_cooler_bcct_dprintk_always("mtk_cl_bcct_set_bcct_limit() real limit=%d\n", get_bat_charging_current_level());
#endif
  }
}