summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2013-04-29 09:18:18 -0700
committerChromeBot <chrome-bot@google.com>2013-05-23 07:32:02 -0700
commit4122b222859db34cb6eee827cba4988df458d916 (patch)
treedca63e0984ab7eb05e2753e1fe8fbe9fb11318cd
parent0543d7f7a22543cee3993c65c7aeb261615940b3 (diff)
downloadchrome-ec-4122b222859db34cb6eee827cba4988df458d916.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" 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>
-rw-r--r--board/spring/board.c34
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 */