static kal_uint32 charging_set_cv_voltage(void *data) { kal_uint32 status = STATUS_OK; kal_uint16 register_value; kal_uint32 cv_value = *(kal_uint32 *)(data); register_value = charging_parameter_to_value(VBAT_CV_VTH, GETARRAYNUM(VBAT_CV_VTH) ,*(kal_uint32 *)(data)); #if 0 bq24158_set_oreg(register_value); #else //PCB workaround if(mt6325_upmu_get_swcid() == PMIC6325_E1_CID_CODE) { #if defined(CV_E1_INTERNAL) bq24158_set_oreg(0x19); #else bq24158_set_oreg(0xF); #endif battery_xlog_printk(BAT_LOG_CRTI,"[charging_set_cv_voltage] set low CV by 6325 E1\n"); } else { if(is_mt6311_exist()) { if(mt6311_get_chip_id()==PMIC6311_E1_CID_CODE) { #if defined(CV_E1_INTERNAL) bq24158_set_oreg(0x19); #else bq24158_set_oreg(0xF); #endif battery_xlog_printk(BAT_LOG_CRTI,"[charging_set_cv_voltage] set low CV by 6311 E1\n"); } else { bq24158_set_oreg(register_value); } } else { bq24158_set_oreg(register_value); } } #endif return status; }
static kal_uint32 charging_set_cv_voltage(void *data) { kal_uint32 status = STATUS_OK; kal_uint16 register_value; kal_uint32 cv_value = *(kal_uint32 *)(data); kal_uint32 array_size; kal_uint32 set_chr_cv; array_size = GETARRAYNUM(VBAT_CV_VTH); set_chr_cv = bmt_find_closest_level(VBAT_CV_VTH, array_size, cv_value); register_value = charging_parameter_to_value(VBAT_CV_VTH, GETARRAYNUM(VBAT_CV_VTH), set_chr_cv); #if 0 ncp1854_set_ctrl_vbat(register_value); #else //PCB workaround if(mt6325_upmu_get_swcid() == PMIC6325_E1_CID_CODE) { ncp1854_set_ctrl_vbat(0x14); //3.8v battery_xlog_printk(BAT_LOG_CRTI,"[charging_set_cv_voltage] set low CV by 6325 E1\n"); } else { if(is_mt6311_exist()) { if(mt6311_get_chip_id()==PMIC6311_E1_CID_CODE) { ncp1854_set_ctrl_vbat(0x14); //3.8v battery_xlog_printk(BAT_LOG_CRTI,"[charging_set_cv_voltage] set low CV by 6311 E1\n"); } else { ncp1854_set_ctrl_vbat(register_value); } } else { ncp1854_set_ctrl_vbat(register_value); } } #endif return status; }
static kal_uint32 charging_set_cv_voltage(void *data) { kal_uint32 status = STATUS_OK; kal_uint32 array_size; kal_uint32 set_cv_voltage; kal_uint16 register_value; kal_uint32 cv_value = *(kal_uint32 *)(data); static kal_int16 pre_register_value = -1; #if defined(HIGH_BATTERY_VOLTAGE_SUPPORT) //highest of voltage will be 4.3V, because powerpath limitation if(cv_value >= BATTERY_VOLT_04_300000_V) cv_value = 4304000; #endif //use nearest value if(BATTERY_VOLT_04_200000_V == cv_value) cv_value = 4208000; array_size = GETARRAYNUM(VBAT_CV_VTH); set_cv_voltage = bmt_find_closest_level(VBAT_CV_VTH, array_size, cv_value); register_value = charging_parameter_to_value(VBAT_CV_VTH, array_size, set_cv_voltage); //PCB workaround if(mt6325_upmu_get_swcid() == PMIC6325_E1_CID_CODE) { #if defined(CV_E1_INTERNAL) bq24196_set_vreg(0x1F);//4.0v #else bq24196_set_vreg(0x14);//3.8v #endif battery_log(BAT_LOG_CRTI, "[charging_set_cv_voltage] set low CV by 6325 E1\n"); } else { if(is_mt6311_exist()) { if(mt6311_get_chip_id()==PMIC6311_E1_CID_CODE) { #if defined(CV_E1_INTERNAL) bq24196_set_vreg(0x1F);//4.0v #else bq24196_set_vreg(0x14);//3.8v #endif battery_log(BAT_LOG_CRTI, "[charging_set_cv_voltage] set low CV by 6311 E1\n"); } else { if (pre_register_value != register_value) { battery_log(BAT_LOG_CRTI, "[charging_set_cv_voltage] disable charging\n"); bq24196_set_chg_config(0); } bq24196_set_vreg(register_value); if (pre_register_value != register_value) bq24196_set_chg_config(1); pre_register_value = register_value; } } else { bq24196_set_vreg(register_value); } } return status; }