mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 05:39:54 -04:00
CP: add cp switch enable detect
Sometime charge pump charge eanble read is true but charge pump not switching,So add read switching judge, will auto recovery if no switch Porting from https://gerrit.mot.com/#/c/1968879/ Change-Id: Iba23bfcd7db9cf137e4687b188655a3e50ed2fb4 Signed-off-by: chailu1 <chailu1@lenovo.com> Reviewed-on: https://gerrit.mot.com/1982429 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Haijian Ma <mahj8@motorola.com> Reviewed-by: Huosheng Liao <liaohs@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
bf61e3a4ff
commit
30246fbd4b
3 changed files with 22 additions and 7 deletions
|
|
@ -68,6 +68,7 @@ struct mmi_charger_info {
|
|||
#define MMI_CONV_OCP_FAULT_BIT 12
|
||||
#define MMI_THERM_ALARM_BIT 13
|
||||
#define MMI_THERM_FAULT_BIT 14
|
||||
#define MMI_CP_SWITCH_BIT 18
|
||||
|
||||
struct mmi_charger_error_info {
|
||||
int chrg_err_type;
|
||||
|
|
|
|||
|
|
@ -721,9 +721,11 @@ void mmi_chrg_sm_work_func(struct work_struct *work)
|
|||
case PM_STATE_PPS_TUNNING_CURR:
|
||||
heartbeat_dely_ms = HEARTBEAT_NEXT_STATE_MS;
|
||||
if (chrg_list->cp_master
|
||||
&& !chrg_list->chrg_dev[CP_MASTER]->charger_enabled) {
|
||||
&& (!chrg_list->chrg_dev[CP_MASTER]->charger_enabled
|
||||
|| !(chrg_list->chrg_dev[CP_MASTER]->charger_error.chrg_err_type & (1<< MMI_CP_SWITCH_BIT)))) {
|
||||
mmi_chrg_info(chip,"CP MASTER was disabled, Enter into "
|
||||
"SW directly\n");
|
||||
chip->pps_volt_comp = PPS_INIT_VOLT_COMP;
|
||||
mmi_chrg_sm_move_state(chip, PM_STATE_SW_ENTRY);
|
||||
}else if (vbatt_volt > chrg_step->chrg_step_cv_volt) {
|
||||
if (chip->pd_request_curr - chip->pps_curr_steps
|
||||
|
|
@ -768,9 +770,11 @@ void mmi_chrg_sm_work_func(struct work_struct *work)
|
|||
}
|
||||
|
||||
if (chrg_list->cp_master
|
||||
&& !chrg_list->chrg_dev[CP_MASTER]->charger_enabled) {
|
||||
&& (!chrg_list->chrg_dev[CP_MASTER]->charger_enabled
|
||||
|| !(chrg_list->chrg_dev[CP_MASTER]->charger_error.chrg_err_type & (1<< MMI_CP_SWITCH_BIT)))) {
|
||||
mmi_chrg_info(chip,"CP MASTER was disabled, "
|
||||
"Enter into SW directly\n");
|
||||
chip->pps_volt_comp = PPS_INIT_VOLT_COMP;
|
||||
mmi_chrg_sm_move_state(chip, PM_STATE_SW_ENTRY);
|
||||
} else if (vbatt_volt > chrg_step->chrg_step_cv_volt) {
|
||||
chip->pd_request_volt -= chip->pps_volt_steps;
|
||||
|
|
@ -835,8 +839,10 @@ void mmi_chrg_sm_work_func(struct work_struct *work)
|
|||
chrg_step->chrg_step_cc_curr,
|
||||
chrg_step->chrg_step_cv_volt);
|
||||
if (chrg_list->cp_master
|
||||
&& !chrg_list->chrg_dev[CP_MASTER]->charger_enabled) {
|
||||
&& (!chrg_list->chrg_dev[CP_MASTER]->charger_enabled
|
||||
|| !(chrg_list->chrg_dev[CP_MASTER]->charger_error.chrg_err_type & (1<< MMI_CP_SWITCH_BIT)))) {
|
||||
mmi_chrg_info(chip,"CP MASTER was disabled, Enter into SW directly\n");
|
||||
chip->pps_volt_comp = PPS_INIT_VOLT_COMP;
|
||||
mmi_chrg_sm_move_state(chip, PM_STATE_SW_ENTRY);
|
||||
heartbeat_dely_ms = HEARTBEAT_NEXT_STATE_MS;
|
||||
goto schedule;
|
||||
|
|
@ -968,8 +974,10 @@ void mmi_chrg_sm_work_func(struct work_struct *work)
|
|||
chrg_step->chrg_step_cv_volt,
|
||||
chrg_step->chrg_step_cv_tapper_curr);
|
||||
if (chrg_list->cp_master
|
||||
&& !chrg_list->chrg_dev[CP_MASTER]->charger_enabled) {
|
||||
&& (!chrg_list->chrg_dev[CP_MASTER]->charger_enabled
|
||||
|| !(chrg_list->chrg_dev[CP_MASTER]->charger_error.chrg_err_type & (1<< MMI_CP_SWITCH_BIT)))) {
|
||||
mmi_chrg_info(chip,"CP MASTER was disabled, Enter into SW directly\n");
|
||||
chip->pps_volt_comp = PPS_INIT_VOLT_COMP;
|
||||
mmi_chrg_sm_move_state(chip, PM_STATE_SW_ENTRY);
|
||||
heartbeat_dely_ms = HEARTBEAT_NEXT_STATE_MS;
|
||||
goto schedule;
|
||||
|
|
|
|||
|
|
@ -649,9 +649,11 @@ void mmi_qc3p_chrg_sm_work_func(struct work_struct *work)
|
|||
}
|
||||
|
||||
if (chrg_list->cp_master
|
||||
&& !chrg_list->chrg_dev[CP_MASTER]->charger_enabled) {
|
||||
&& (!chrg_list->chrg_dev[CP_MASTER]->charger_enabled
|
||||
|| !(chrg_list->chrg_dev[CP_MASTER]->charger_error.chrg_err_type & (1<< MMI_CP_SWITCH_BIT)))) {
|
||||
mmi_chrg_info(chip,"CP MASTER was disabled, "
|
||||
"Enter into SW directly\n");
|
||||
chip->qc3p_volt_comp = QC3P_INIT_VOLT_COMP;
|
||||
mmi_chrg_qc3p_sm_move_state(chip, PM_QC3P_STATE_SW_ENTRY);
|
||||
} else if (vbatt_volt > chrg_step->chrg_step_cv_volt) {
|
||||
chip->qc3p_request_volt -= chip->qc3p_volt_steps;
|
||||
|
|
@ -706,8 +708,10 @@ void mmi_qc3p_chrg_sm_work_func(struct work_struct *work)
|
|||
chrg_step->chrg_step_cc_curr,
|
||||
chrg_step->chrg_step_cv_volt);
|
||||
if (chrg_list->cp_master
|
||||
&& !chrg_list->chrg_dev[CP_MASTER]->charger_enabled) {
|
||||
&& (!chrg_list->chrg_dev[CP_MASTER]->charger_enabled
|
||||
|| !(chrg_list->chrg_dev[CP_MASTER]->charger_error.chrg_err_type & (1<< MMI_CP_SWITCH_BIT)))) {
|
||||
mmi_chrg_info(chip,"CP MASTER was disabled, Enter into SW directly\n");
|
||||
chip->qc3p_volt_comp = QC3P_INIT_VOLT_COMP;
|
||||
mmi_chrg_qc3p_sm_move_state(chip, PM_QC3P_STATE_SW_ENTRY);
|
||||
heartbeat_dely_ms = QC3P_HEARTBEAT_NEXT_STATE_MS;
|
||||
goto schedule;
|
||||
|
|
@ -782,8 +786,10 @@ void mmi_qc3p_chrg_sm_work_func(struct work_struct *work)
|
|||
chrg_step->chrg_step_cv_volt,
|
||||
chrg_step->chrg_step_cv_tapper_curr);
|
||||
if (chrg_list->cp_master
|
||||
&& !chrg_list->chrg_dev[CP_MASTER]->charger_enabled) {
|
||||
&& (!chrg_list->chrg_dev[CP_MASTER]->charger_enabled
|
||||
|| !(chrg_list->chrg_dev[CP_MASTER]->charger_error.chrg_err_type & (1<< MMI_CP_SWITCH_BIT)))) {
|
||||
mmi_chrg_info(chip,"CP MASTER was disabled, Enter into SW directly\n");
|
||||
chip->qc3p_volt_comp = QC3P_INIT_VOLT_COMP;
|
||||
mmi_chrg_qc3p_sm_move_state(chip, PM_QC3P_STATE_SW_ENTRY);
|
||||
heartbeat_dely_ms = QC3P_HEARTBEAT_NEXT_STATE_MS;
|
||||
goto schedule;
|
||||
|
|
|
|||
Loading…
Reference in a new issue