diff options
-rw-r--r-- | driver/charger/bd99955.c | 8 | ||||
-rw-r--r-- | driver/charger/bd99955.h | 10 | ||||
-rw-r--r-- | include/config.h | 9 |
3 files changed, 27 insertions, 0 deletions
diff --git a/driver/charger/bd99955.c b/driver/charger/bd99955.c index 82457e732b..8d2aaedc7f 100644 --- a/driver/charger/bd99955.c +++ b/driver/charger/bd99955.c @@ -621,6 +621,7 @@ int charger_set_voltage(int voltage) static void bd99995_init(void) { int reg; + int power_save_mode = BD99955_PWR_SAVE_OFF; const struct battery_info *bi = battery_get_info(); /* Enable BC1.2 detection on VCC */ @@ -693,6 +694,13 @@ static void bd99995_init(void) ch_raw_write16(BD99955_CMD_ITRICH_SET, bi->precharge_current & 0x07C0, BD99955_EXTENDED_COMMAND); + + /* Power save mode when VBUS/VCC is removed. */ +#ifdef CONFIG_BD99955_POWER_SAVE_MODE + power_save_mode = CONFIG_BD99955_POWER_SAVE_MODE; +#endif + ch_raw_write16(BD99955_CMD_SMBREG, power_save_mode, + BD99955_EXTENDED_COMMAND); } DECLARE_HOOK(HOOK_INIT, bd99995_init, HOOK_PRIO_INIT_EXTPOWER); diff --git a/driver/charger/bd99955.h b/driver/charger/bd99955.h index 2d67a8a389..a3ab4266df 100644 --- a/driver/charger/bd99955.h +++ b/driver/charger/bd99955.h @@ -288,6 +288,16 @@ enum bd99955_charge_port { #define BD99955_CMD_OTPREG0 0x7A #define BD99955_CMD_OTPREG1 0x7B #define BD99955_CMD_SMBREG 0x7C +/* Normal functionality - power save mode disabled. */ +#define BD99955_PWR_SAVE_OFF 0 +/* BGATE ON w/ PROCHOT# monitored only system voltage. */ +#define BD99955_PWR_SAVE_LOW 0x1 +/* BGATE ON w/ PROCHOT# monitored only system voltage every 1ms. */ +#define BD99955_PWR_SAVE_MED 0x2 +/* BGATE ON w/o PROCHOT# monitoring. */ +#define BD99955_PWR_SAVE_HIGH 0x5 +/* BGATE OFF */ +#define BD99955_PWR_SAVE_MAX 0x6 #define BD99955_CMD_DEBUG_MODE_SET 0x7F /* Map PD port number to charge port number */ diff --git a/include/config.h b/include/config.h index df972df887..72ea36dc8c 100644 --- a/include/config.h +++ b/include/config.h @@ -380,6 +380,15 @@ #undef CONFIG_BD99955_PRIMARY_CHARGE_PORT_VCC /* + * BD99955 Power Save Mode + * + * Which power save mode should the charger enter when VBUS is removed. Check + * driver/bd99955.h for the power save settings. By default, no power save mode + * is enabled. + */ +#undef CONFIG_BD99955_POWER_SAVE_MODE + +/* * If the battery temperature sense pin is connected to charger, * get the battery temperature from the charger. */ |