diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2013-04-29 09:18:18 -0700 |
---|---|---|
committer | Vincent Palatin <vpalatin@chromium.org> | 2013-05-23 14:05:59 -0700 |
commit | 1ef88e65a07d868b3998438c1981053b9de11b0d (patch) | |
tree | 3d063b9785a962436ca4a8822985ad14dae840bd | |
parent | 5d0b5ea0b7bf271ec3ebd06fd43f79fbea43acd1 (diff) | |
download | chrome-ec-1ef88e65a07d868b3998438c1981053b9de11b0d.tar.gz |
spring: new TPS65090 parameters to avoid cap ringing
Starting DVT, Spring boards have updated hardware to prevent cap ringing
when a charger is plugged.
Adjust T01, T12, T23 and T34 current limit to 87.5% as expected by this
mechanism.
Push all termination voltages to 2.1v as the actual temperature range is
not related to the real charge temperature.
On pre-DVT boards, this will just reduce the max charging rate by 12.5%.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BRANCH=spring
BUG=chrome-os-partner:18987
TEST=on Spring EVT, use "pmu" command on the EC console and see
registers 0x5 to 0x9 contain : "3e 5e be fe ff"
Original-Change-Id: Ie078a38251cd2cb50ee605c34a6818bf994d148d
Reviewed-on: https://gerrit.chromium.org/gerrit/49484
Commit-Queue: Jon Salz <jsalz@chromium.org>
Reviewed-by: Jon Salz <jsalz@chromium.org>
Tested-by: Jon Salz <jsalz@chromium.org>
(cherry picked from commit 4122b222859db34cb6eee827cba4988df458d916)
Change-Id: I6354818ae2e69a1dd0c1dd57eb419b13dc5ff458
Reviewed-on: https://gerrit.chromium.org/gerrit/56504
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r-- | board/spring/board.c | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/board/spring/board.c b/board/spring/board.c index 2abc1d8425..b6e4ccd415 100644 --- a/board/spring/board.c +++ b/board/spring/board.c @@ -274,6 +274,21 @@ int board_pmu_init(void) { int failure = 0; + /* + * Adjust charging parameters to match the expectations + * of the hardware fixing the cap ringing on DVT+ machines. + */ + failure |= pmu_set_term_current(RANGE_T01, TERM_I0875); + failure |= pmu_set_term_current(RANGE_T12, TERM_I0875); + failure |= pmu_set_term_current(RANGE_T23, TERM_I0875); + failure |= pmu_set_term_current(RANGE_T34, TERM_I0875); + failure |= pmu_set_term_current(RANGE_T40, TERM_I1000); + failure |= pmu_set_term_voltage(RANGE_T01, TERM_V2100); + failure |= pmu_set_term_voltage(RANGE_T12, TERM_V2100); + failure |= pmu_set_term_voltage(RANGE_T23, TERM_V2100); + failure |= pmu_set_term_voltage(RANGE_T34, TERM_V2100); + failure |= pmu_set_term_voltage(RANGE_T40, TERM_V2100); + /* Set fast charging timeout to 6 hours*/ if (!failure) failure = pmu_set_fastcharge(TIMEOUT_6HRS); @@ -288,25 +303,6 @@ int board_pmu_init(void) if (!failure) failure = pmu_low_current_charging(1); - /* - * High temperature charging - * termination voltage: 2.1V - * termination current: 100% - */ - if (!failure) - failure = pmu_set_term_voltage(RANGE_T34, TERM_V2100); - if (!failure) - failure = pmu_set_term_current(RANGE_T34, TERM_I1000); - /* - * Standard temperature charging - * termination voltage: 2.1V - * termination current: 100% - */ - if (!failure) - failure = pmu_set_term_voltage(RANGE_T23, TERM_V2100); - if (!failure) - failure = pmu_set_term_current(RANGE_T23, TERM_I1000); - return failure ? EC_ERROR_UNKNOWN : EC_SUCCESS; } #endif /* CONFIG_BOARD_PMU_INIT */ |