mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-30 18:41:11 +00:00
pyro/snappy: Discharge on AC till charger is detected
Follow reef setting. To avoid inrush current from the external charger, enable discharge on AC till the new charger is detected and charge detect delay has passed. BUG=none BRANCH=reef TEST=make buildall Change-Id: Ie4e249a3f8cc3140b99a944e5f252cdbaef4cab3 Signed-off-by: Bruce.Wan <Bruce.Wan@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/423277 Commit-Ready: Keith Tzeng <keith.tzeng@quantatw.com> Tested-by: Keith Tzeng <keith.tzeng@quantatw.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
#include "battery.h"
|
||||
#include "battery_smart.h"
|
||||
#include "bd9995x.h"
|
||||
#include "charge_ramp.h"
|
||||
#include "charge_state.h"
|
||||
#include "console.h"
|
||||
#include "ec_commands.h"
|
||||
@@ -245,11 +246,17 @@ int charger_profile_override(struct charge_state_data *curr)
|
||||
*
|
||||
* To overcome this issue enable the battery learning operation
|
||||
* and suspend USB charging and DC/DC converter.
|
||||
*
|
||||
* And also to avoid inrush current from the external charger, enable
|
||||
* discharge on AC till the new charger is detected and charge detect
|
||||
* delay has passed.
|
||||
*/
|
||||
disch_on_ac = curr->batt.is_present == BP_YES &&
|
||||
disch_on_ac = (curr->batt.is_present == BP_YES &&
|
||||
!battery_is_cut_off() &&
|
||||
!(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
|
||||
curr->batt.status & STATUS_FULLY_CHARGED;
|
||||
(!chg_ramp_is_detected() &&
|
||||
curr->batt.state_of_charge > 2);
|
||||
|
||||
charger_discharge_on_ac(disch_on_ac);
|
||||
|
||||
|
||||
@@ -568,6 +568,14 @@ int board_set_active_charge_port(int charge_port)
|
||||
case CHARGE_PORT_NONE:
|
||||
bd9995x_port_select = 0;
|
||||
bd9995x_port = BD9995X_CHARGE_PORT_BOTH;
|
||||
|
||||
/*
|
||||
* To avoid inrush current from the external charger, enable
|
||||
* discharge on AC till the new charger is detected and
|
||||
* charge detect delay has passed.
|
||||
*/
|
||||
if (charge_get_percent() > 2)
|
||||
charger_discharge_on_ac(1);
|
||||
break;
|
||||
default:
|
||||
panic("Invalid charge port\n");
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "battery.h"
|
||||
#include "battery_smart.h"
|
||||
#include "bd9995x.h"
|
||||
#include "charge_ramp.h"
|
||||
#include "charge_state.h"
|
||||
#include "console.h"
|
||||
#include "ec_commands.h"
|
||||
@@ -173,11 +174,17 @@ int charger_profile_override(struct charge_state_data *curr)
|
||||
*
|
||||
* To overcome this issue enable the battery learning operation
|
||||
* and suspend USB charging and DC/DC converter.
|
||||
*
|
||||
* And also to avoid inrush current from the external charger, enable
|
||||
* discharge on AC till the new charger is detected and charge detect
|
||||
* delay has passed.
|
||||
*/
|
||||
disch_on_ac = curr->batt.is_present == BP_YES &&
|
||||
disch_on_ac = (curr->batt.is_present == BP_YES &&
|
||||
!battery_is_cut_off() &&
|
||||
!(curr->batt.flags & BATT_FLAG_WANT_CHARGE) &&
|
||||
curr->batt.status & STATUS_FULLY_CHARGED;
|
||||
(!chg_ramp_is_detected() &&
|
||||
curr->batt.state_of_charge > 2);
|
||||
|
||||
charger_discharge_on_ac(disch_on_ac);
|
||||
|
||||
|
||||
@@ -567,6 +567,14 @@ int board_set_active_charge_port(int charge_port)
|
||||
case CHARGE_PORT_NONE:
|
||||
bd9995x_port_select = 0;
|
||||
bd9995x_port = BD9995X_CHARGE_PORT_BOTH;
|
||||
|
||||
/*
|
||||
* To avoid inrush current from the external charger, enable
|
||||
* discharge on AC till the new charger is detected and
|
||||
* charge detect delay has passed.
|
||||
*/
|
||||
if (charge_get_percent() > 2)
|
||||
charger_discharge_on_ac(1);
|
||||
break;
|
||||
default:
|
||||
panic("Invalid charge port\n");
|
||||
|
||||
Reference in New Issue
Block a user