summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2013-04-29 09:18:18 -0700
committerChromeBot <chrome-bot@google.com>2013-06-19 17:12:36 -0700
commit86a4e8b41c1412e7cf9bdb595c71f2591cb25a86 (patch)
tree3047921884d617afad3610a3155b000008f46787
parentc5d978baacc44220445ad7b5641bbdb7b634cbfa (diff)
downloadchrome-ec-86a4e8b41c1412e7cf9bdb595c71f2591cb25a86.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: I78355651f5f7abc0546fec0c4df8d38ea3549b2d Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/59197 Reviewed-by: Vincent Palatin <vpalatin@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 46b8180fcb..ff7c0fe5b3 100644
--- a/board/spring/board.c
+++ b/board/spring/board.c
@@ -208,6 +208,21 @@ int pmu_board_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);
@@ -222,25 +237,6 @@ int pmu_board_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 */