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 }
static kal_uint32 charging_hw_init(void *data) { kal_uint32 status = STATUS_OK; static bool charging_init_flag = KAL_FALSE; mt_set_gpio_mode(gpio_number,gpio_on_mode); mt_set_gpio_dir(gpio_number,gpio_on_dir); mt_set_gpio_out(gpio_number,gpio_on_out); #if defined(MTK_WIRELESS_CHARGER_SUPPORT) mt_set_gpio_mode(wireless_charger_gpio_number,0); // 0:GPIO mode mt_set_gpio_dir(wireless_charger_gpio_number,0); // 0: input, 1: output #endif battery_log(BAT_LOG_FULL, "gpio_number=0x%x,gpio_on_mode=%d,gpio_off_mode=%d\n", gpio_number, gpio_on_mode, gpio_off_mode); upmu_set_rg_usbdl_set(0); //force leave USBDL mode upmu_set_rg_usbdl_rst(1); //force leave USBDL mode #if defined(HIGH_BATTERY_VOLTAGE_SUPPORT) fan5405_reg_config_interface(0x06,0x77); // ISAFE = 1250mA, VSAFE = 4.34V #else fan5405_reg_config_interface(0x06,0x70); #endif fan5405_reg_config_interface(0x00,0xC0); //kick chip watch dog fan5405_reg_config_interface(0x01,0xb8); //TE=1, CE=0, HZ_MODE=0, OPA_MODE=0 fan5405_reg_config_interface(0x05,0x03); if ( !charging_init_flag ) { fan5405_reg_config_interface(0x04,0x1A); //146mA charging_init_flag = KAL_TRUE; } return status; }
/* Charger Control Interface Handler */ static kal_uint32 charging_hw_init(void *data) { static int hw_initialized = 0; if (hw_initialized) return STATUS_OK; upmu_set_rg_usbdl_set(0); //force leave USBDL mode upmu_set_rg_usbdl_rst(1); //force leave USBDL mode hw_initialized = 1; battery_xlog_printk(BAT_LOG_FULL, "[PowerSupply] initialized.\n"); return STATUS_OK; }
static kal_uint32 charging_hw_init(void *data) { kal_uint32 status = STATUS_OK; static bool charging_init_flag = KAL_FALSE; #ifdef USING_TFA9890_EXTAMP printk("[LHJ_TFA9890][%s][L%d]Tfa9890 found:%d",__func__,__LINE__,Tfa9890_IsFound()); if(Tfa9890_IsFound()) { //gpio_number = GPIO15; } else { gpio_number = GPIO19; } #endif mt_set_gpio_mode(gpio_number,gpio_on_mode); mt_set_gpio_dir(gpio_number,gpio_on_dir); mt_set_gpio_out(gpio_number,gpio_on_out); battery_xlog_printk(BAT_LOG_FULL, "gpio_number=0x%x,gpio_on_mode=%d,gpio_off_mode=%d\n", gpio_number, gpio_on_mode, gpio_off_mode); upmu_set_rg_usbdl_set(0); //force leave USBDL mode upmu_set_rg_usbdl_rst(1); //force leave USBDL mode #if defined(HIGH_BATTERY_VOLTAGE_SUPPORT) fan5405_reg_config_interface(0x06,0x67);//modify by lifeng for zhangshouchuang request // ISAFE = 1250mA, VSAFE = 4.34V #else fan5405_reg_config_interface(0x06,0x70); #endif fan5405_reg_config_interface(0x00,0xC0); //kick chip watch dog fan5405_reg_config_interface(0x01,0xC8);//0xF8 fan5405_reg_config_interface(0x02,0xAA);//4.34V // 苏 勇 2014年05月20日 15:55:09 fan5405_reg_config_interface(0x02,0xae);//4.36V //fan5405_reg_config_interface(0x04,0x78); //set IOCHARGE 1000MA // 苏 勇 2014年05月19日 17:59:16 fan5405_reg_config_interface(0x04,0x7D); //修改截止充电电流为200ma fan5405_reg_config_interface(0x04,0x7a); //修改截止充电电流为9.9/82=120.7ma fan5405_reg_config_interface(0x05,0x04);//VSP=4.533v if ( !charging_init_flag ) { // fan5405_config_interface_liao(0x04,0x1A); //146mA charging_init_flag = KAL_TRUE; } return status; }
static kal_uint32 charging_hw_init(void *data) { kal_uint32 status = STATUS_OK; #if defined(MTK_WIRELESS_CHARGER_SUPPORT) mt_set_gpio_mode(wireless_charger_gpio_number,0); // 0:GPIO mode mt_set_gpio_dir(wireless_charger_gpio_number,0); // 0: input, 1: output #endif upmu_set_rg_chrwdt_td(0x0); // CHRWDT_TD, 4s upmu_set_rg_chrwdt_int_en(1); // CHRWDT_INT_EN upmu_set_rg_chrwdt_en(1); // CHRWDT_EN upmu_set_rg_chrwdt_wr(1); // CHRWDT_WR upmu_set_rg_vcdt_mode(0); //VCDT_MODE upmu_set_rg_vcdt_hv_en(1); //VCDT_HV_EN upmu_set_rg_usbdl_set(0); //force leave USBDL mode upmu_set_rg_usbdl_rst(1); //force leave USBDL mode upmu_set_rg_bc11_bb_ctrl(1); //BC11_BB_CTRL upmu_set_rg_bc11_rst(1); //BC11_RST upmu_set_rg_csdac_mode(1); //CSDAC_MODE upmu_set_rg_vbat_ov_en(1); //VBAT_OV_EN #ifdef HIGH_BATTERY_VOLTAGE_SUPPORT upmu_set_rg_vbat_ov_vth(0x2); //VBAT_OV_VTH, 4.4V, #else upmu_set_rg_vbat_ov_vth(0x1); //VBAT_OV_VTH, 4.3V, #endif upmu_set_rg_baton_en(1); //BATON_EN //Tim, for TBAT //upmu_set_rg_buf_pwd_b(1); //RG_BUF_PWD_B upmu_set_rg_baton_ht_en(0); //BATON_HT_EN upmu_set_rg_ulc_det_en(1); // RG_ULC_DET_EN=1 upmu_set_rg_low_ich_db(1); // RG_LOW_ICH_DB=000001'b return status; }
static kal_uint32 charging_hw_init(void *data) { kal_uint32 status = STATUS_OK; static bool charging_init_flag = KAL_FALSE; mt_set_gpio_mode(gpio_number,gpio_on_mode); mt_set_gpio_dir(gpio_number,gpio_on_dir); mt_set_gpio_out(gpio_number,gpio_on_out); battery_xlog_printk(BAT_LOG_FULL, "gpio_number=0x%x,gpio_on_mode=%d,gpio_off_mode=%d\n", gpio_number, gpio_on_mode, gpio_off_mode); upmu_set_rg_usbdl_set(0); //force leave USBDL mode upmu_set_rg_usbdl_rst(1); //force leave USBDL mode fan5402_reg_config_interface(0x00,0xC0); //kick chip watch dog fan5402_reg_config_interface(0x01,0xb8); //TE=1, CE=0, HZ_MODE=0, OPA_MODE=0 if ( !charging_init_flag ) { fan5402_reg_config_interface(0x04,0x1A); //146mA charging_init_flag = KAL_TRUE; } return status; }