static kal_uint32 charging_enable(void *data) { kal_uint32 status = STATUS_OK; kal_uint32 enable = *(kal_uint32*)(data); if(KAL_TRUE == enable) { upmu_set_rg_csdac_dly(0x4); // CSDAC_DLY upmu_set_rg_csdac_stp(0x1); // CSDAC_STP upmu_set_rg_csdac_stp_inc(0x1); // CSDAC_STP_INC upmu_set_rg_csdac_stp_dec(0x2); // CSDAC_STP_DEC upmu_set_rg_cs_en(1); // CS_EN, check me upmu_set_rg_hwcv_en(1); upmu_set_rg_vbat_cv_en(1); // CV_EN upmu_set_rg_csdac_en(1); // CSDAC_EN upmu_set_rg_chr_en(1); // CHR_EN if(Enable_BATDRV_LOG == BAT_LOG_FULL) charging_dump_register(NULL); } else { upmu_set_rg_chrwdt_int_en(0); // CHRWDT_INT_EN upmu_set_rg_chrwdt_en(0); // CHRWDT_EN upmu_set_rg_chrwdt_flag_wr(0); // CHRWDT_FLAG upmu_set_rg_csdac_en(0); // CSDAC_EN upmu_set_rg_chr_en(0); // CHR_EN upmu_set_rg_hwcv_en(0); // RG_HWCV_EN } return status; }
void pchr_turn_on_charging (void) { upmu_set_rg_usbdl_set(0); //force leave USBDL mode upmu_set_rg_usbdl_rst(1); //force leave USBDL mode kick_charger_wdt(); upmu_set_rg_cs_vth(0xC); // CS_VTH, 450mA upmu_set_rg_csdac_en(1); // CSDAC_EN upmu_set_rg_chr_en(1); // CHR_EN #ifdef MTK_FAN5405_SUPPORT fan5405_hw_init(); fan5405_turn_on_charging(); fan5405_dump_register(); #endif #ifdef MTK_BQ24196_SUPPORT bq24196_hw_init(); bq24196_charging_enable(0); //disable charging with power path bq24196_dump_register(); #endif #ifdef MTK_BQ24158_SUPPORT bq24158_hw_init(); bq24158_turn_on_charging(); bq24158_dump_register(); #endif }