|
29 | 29 | #define CACHE_INVALIDATION_TIME_US (3 * SECOND) |
30 | 30 |
|
31 | 31 | static int battery_current_array[4]; |
32 | | -static uint8_t charging_maximum_level = EC_CHARGE_LIMIT_RESTORE; |
33 | 32 | static int old_btp; |
34 | 33 | static int power_on_check_batt; |
35 | 34 |
|
@@ -107,50 +106,6 @@ uint32_t get_system_percentage(void) |
107 | 106 | return pre_os_percentage; |
108 | 107 | } |
109 | 108 |
|
110 | | -static void battery_percentage_control(void) |
111 | | -{ |
112 | | - enum ec_charge_control_mode new_mode; |
113 | | - static int in_percentage_control; |
114 | | - uint32_t batt_os_percentage = get_system_percentage(); |
115 | | - int rv; |
116 | | - |
117 | | - /** |
118 | | - * If the host command EC_CMD_CHARGE_CONTROL set control mode to CHARGE_CONTROL_DISCHARGE |
119 | | - * or CHARGE_CONTROL_IDLE, ignore the battery_percentage_control(); |
120 | | - */ |
121 | | - if (!in_percentage_control && get_chg_ctrl_mode() != CHARGE_CONTROL_NORMAL) |
122 | | - return; |
123 | | - |
124 | | - if (charging_maximum_level == EC_CHARGE_LIMIT_RESTORE) |
125 | | - system_get_bbram(SYSTEM_BBRAM_IDX_CHARGE_LIMIT_MAX, &charging_maximum_level); |
126 | | - |
127 | | - if (charging_maximum_level & CHG_LIMIT_OVERRIDE) { |
128 | | - new_mode = CHARGE_CONTROL_NORMAL; |
129 | | - if (batt_os_percentage == 1000) |
130 | | - charging_maximum_level = charging_maximum_level | 0x64; |
131 | | - } else if (charging_maximum_level < 20) |
132 | | - new_mode = CHARGE_CONTROL_NORMAL; |
133 | | - else if (batt_os_percentage > charging_maximum_level * 10) { |
134 | | - new_mode = CHARGE_CONTROL_DISCHARGE; |
135 | | - in_percentage_control = 1; |
136 | | - } else if (batt_os_percentage == charging_maximum_level * 10) { |
137 | | - new_mode = CHARGE_CONTROL_IDLE; |
138 | | - in_percentage_control = 1; |
139 | | - } else { |
140 | | - new_mode = CHARGE_CONTROL_NORMAL; |
141 | | - in_percentage_control = 0; |
142 | | - } |
143 | | - |
144 | | - set_chg_ctrl_mode(new_mode); |
145 | | -#ifdef CONFIG_PLATFORM_EC_CHARGER_DISCHARGE_ON_AC |
146 | | - rv = charger_discharge_on_ac(new_mode == CHARGE_CONTROL_DISCHARGE); |
147 | | -#endif |
148 | | - if (rv != EC_SUCCESS) |
149 | | - CPRINTS("Failed to discharge."); |
150 | | -} |
151 | | -DECLARE_HOOK(HOOK_AC_CHANGE, battery_percentage_control, HOOK_PRIO_DEFAULT); |
152 | | -DECLARE_HOOK(HOOK_BATTERY_SOC_CHANGE, battery_percentage_control, HOOK_PRIO_DEFAULT); |
153 | | - |
154 | 109 | int get_average_battery_current(void) |
155 | 110 | { |
156 | 111 | int idx; |
@@ -396,53 +351,3 @@ __override int board_cut_off_battery(void) |
396 | 351 |
|
397 | 352 | return EC_RES_ERROR; |
398 | 353 | } |
399 | | - |
400 | | -/*****************************************************************************/ |
401 | | -/* Host command */ |
402 | | - |
403 | | -static enum ec_status cmd_charging_limit_control(struct host_cmd_handler_args *args) |
404 | | -{ |
405 | | - |
406 | | - const struct ec_params_ec_chg_limit_control *p = args->params; |
407 | | - struct ec_response_chg_limit_control *r = args->response; |
408 | | - |
409 | | - if (p->modes & CHG_LIMIT_DISABLE) { |
410 | | - charging_maximum_level = 0; |
411 | | - system_set_bbram(SYSTEM_BBRAM_IDX_CHARGE_LIMIT_MAX, 0); |
412 | | - } |
413 | | - |
414 | | - if (p->modes & CHG_LIMIT_SET_LIMIT) { |
415 | | - if (p->max_percentage < 20) |
416 | | - return EC_RES_ERROR; |
417 | | - |
418 | | - charging_maximum_level = p->max_percentage; |
419 | | - system_set_bbram(SYSTEM_BBRAM_IDX_CHARGE_LIMIT_MAX, charging_maximum_level); |
420 | | - } |
421 | | - |
422 | | - if (p->modes & CHG_LIMIT_OVERRIDE) |
423 | | - charging_maximum_level = charging_maximum_level | CHG_LIMIT_OVERRIDE; |
424 | | - |
425 | | - if (p->modes & CHG_LIMIT_GET_LIMIT) { |
426 | | - system_get_bbram(SYSTEM_BBRAM_IDX_CHARGE_LIMIT_MAX, &charging_maximum_level); |
427 | | - r->max_percentage = charging_maximum_level; |
428 | | - args->response_size = sizeof(*r); |
429 | | - } |
430 | | - |
431 | | - battery_percentage_control(); |
432 | | - |
433 | | - return EC_RES_SUCCESS; |
434 | | -} |
435 | | -DECLARE_HOST_COMMAND(EC_CMD_CHARGE_LIMIT_CONTROL, cmd_charging_limit_control, |
436 | | - EC_VER_MASK(0)); |
437 | | - |
438 | | -static enum ec_status cmd_get_cutoff_status(struct host_cmd_handler_args *args) |
439 | | -{ |
440 | | - struct ec_response_get_cutoff_status *r = args->response; |
441 | | - |
442 | | - r->status = battery_is_cut_off(); |
443 | | - args->response_size = sizeof(*r); |
444 | | - |
445 | | - return EC_RES_SUCCESS; |
446 | | -} |
447 | | -DECLARE_HOST_COMMAND(EC_CMD_GET_CUTOFF_STATUS, cmd_get_cutoff_status, |
448 | | - EC_VER_MASK(0)); |
0 commit comments