summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver/charger/bd99955.c16
-rw-r--r--driver/charger/bd99955.h3
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 */