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>
This commit is contained in:
Vincent Palatin
2013-04-29 09:18:18 -07:00
committed by ChromeBot
parent c5d978baac
commit 86a4e8b41c

View File

@@ -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 */