diff options
-rw-r--r-- | driver/ppc/sn5s330.c | 10 | ||||
-rw-r--r-- | driver/ppc/sn5s330.h | 1 |
2 files changed, 10 insertions, 1 deletions
diff --git a/driver/ppc/sn5s330.c b/driver/ppc/sn5s330.c index 4971ab798e..c20a665f75 100644 --- a/driver/ppc/sn5s330.c +++ b/driver/ppc/sn5s330.c @@ -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); diff --git a/driver/ppc/sn5s330.h b/driver/ppc/sn5s330.h index 2e4b36cbca..7d3ba6103e 100644 --- a/driver/ppc/sn5s330.h +++ b/driver/ppc/sn5s330.h @@ -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) |