diff options
-rw-r--r-- | driver/charger/bd99955.c | 16 | ||||
-rw-r--r-- | driver/charger/bd99955.h | 3 |
2 files changed, 9 insertions, 10 deletions
diff --git a/driver/charger/bd99955.c b/driver/charger/bd99955.c index e2d968c7f6..713a90be1c 100644 --- a/driver/charger/bd99955.c +++ b/driver/charger/bd99955.c @@ -285,14 +285,8 @@ int charger_get_status(int *status) int charger_set_mode(int mode) { int rv; - int enable; - if (mode & CHARGE_FLAG_INHIBIT_CHARGE) - enable = 0; - else - enable = 1; - - rv = bd99955_charger_enable(enable); + rv = bd99955_charger_enable(mode & CHARGE_FLAG_INHIBIT_CHARGE ? 0 : 1); if (rv) return rv; @@ -435,13 +429,17 @@ int bd99955_select_input_port(enum bd99955_charge_port port) if (port == BD99955_CHARGE_PORT_NONE) { reg &= ~(BD99955_CMD_VIN_CTRL_SET_VBUS_EN | - BD99955_CMD_VIN_CTRL_SET_VBUS_EN); + BD99955_CMD_VIN_CTRL_SET_VCC_EN); } else if (port == BD99955_CHARGE_PORT_VBUS) { reg |= BD99955_CMD_VIN_CTRL_SET_VBUS_EN; reg &= ~BD99955_CMD_VIN_CTRL_SET_VCC_EN; } else if (port == BD99955_CHARGE_PORT_VCC) { reg |= BD99955_CMD_VIN_CTRL_SET_VCC_EN; reg &= ~BD99955_CMD_VIN_CTRL_SET_VBUS_EN; + } else if (port == BD99955_CHARGE_PORT_BOTH) { + /* Enable both the ports for PG3 */ + reg |= BD99955_CMD_VIN_CTRL_SET_VBUS_EN | + BD99955_CMD_VIN_CTRL_SET_VCC_EN; } else { /* Invalid charge port */ panic("Invalid charge port"); @@ -500,7 +498,7 @@ static int console_command_bd99955(int argc, char **argv) rw = argv[1][0]; if (rw == 'w' && argc < 5) - return EC_ERROR_PARAM_COUNT; + return EC_ERROR_PARAM_COUNT; else if (rw != 'w' && rw != 'r') return EC_ERROR_PARAM1; diff --git a/driver/charger/bd99955.h b/driver/charger/bd99955.h index cd9bfdfff5..0f3e4aa48d 100644 --- a/driver/charger/bd99955.h +++ b/driver/charger/bd99955.h @@ -22,6 +22,7 @@ enum bd99955_command { enum bd99955_charge_port { BD99955_CHARGE_PORT_VBUS, BD99955_CHARGE_PORT_VCC, + BD99955_CHARGE_PORT_BOTH, BD99955_CHARGE_PORT_NONE, }; @@ -210,7 +211,7 @@ enum bd99955_charge_port { /* Return true if extpower is present on their input port. */ int bd99955_extpower_is_present(void); -/* Select input port from {VCC, VBUS, NONE}. */ +/* Select input port from {VCC, VBUS, VCC&VBUS, NONE}. */ int bd99955_select_input_port(enum bd99955_charge_port port); #endif /* __CROS_EC_BD99955_H */ |