sn5s330: disable under voltage protection

We need to disable under voltage protection because it prevents us from
enabling the sink path when there is not Vbus on the connector side. We
need to enable the sink path before we hibernate otherwise there is no
power power to get to the charger which will then assert ACOK. Without
this we won't wake up with the ACOK wake when USB power is inserted.

BRANCH=none
BUG=b:79948623
TEST=bip wakes with USB power insertion

Change-Id: Idf16a92dacde63cf943ef68b0258b320d11de44c
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1070867
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@chromium.org>
This commit is contained in:
Jett Rink
2018-05-23 16:17:17 -06:00
committed by chrome-bot
parent 15bddb51eb
commit ae82b79667
2 changed files with 10 additions and 1 deletions

View File

@@ -268,8 +268,16 @@ static int sn5s330_init(int port)
/*
* Indicate we are using PP2 configuration 2 and enable OVP comparator
* for CC lines.
*
* Also, turn off under-voltage protection for incoming Vbus as it would
* prevent us from enabling SNK path before we hibernate the ec. We
* need to enable the SNK path so USB power will assert ACOK and wake
* the EC up went inserting USB power. We always turn off under-voltage
* protection because the battery charger will boost the voltage up
* to the needed battery voltage either way (and it will have its own
* low voltage protection).
*/
regval = SN5S330_OVP_EN_CC | SN5S330_PP2_CONFIG;
regval = SN5S330_OVP_EN_CC | SN5S330_PP2_CONFIG | SN5S330_CONFIG_UVP;
status = i2c_write8(i2c_port, i2c_addr, SN5S330_FUNC_SET9, regval);
if (status) {
CPRINTS("ppc p%d: Failed to set FUNC_SET9!", port);

View File

@@ -103,6 +103,7 @@ enum sn5s330_pp_idx {
/* FUNC_SET_9 */
#define SN5S330_PP2_CONFIG (1 << 2)
#define SN5S330_OVP_EN_CC (1 << 4)
#define SN5S330_CONFIG_UVP (1 << 5)
/* INT_STATUS_REG3 */
#define SN5S330_VBUS_GOOD (1 << 0)