summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2017-01-31 10:48:31 -0800
committerchrome-bot <chrome-bot@chromium.org>2017-02-02 19:09:52 -0800
commitf08109522dab20b9621489ccf04e98c26c30cd3f (patch)
treedb3a002c7833c46244b1550150e7a7d2b3e1b367 /driver
parent7e2f31f537c8e6bbf149d086543ead937fc9f329 (diff)
downloadchrome-ec-f08109522dab20b9621489ccf04e98c26c30cd3f.tar.gz
charge_ramp: Specify port number in board_is_vbus_too_low()
charge_ramp needs to make a decision based upon the VBUS level on one specific port - the port that is ramping. The VBUS level on any other charge ports (if present) is not relevant. BUG=chrome-os-partner:54099 BRANCH=reef, gru TEST=With subsequent patches, verify charge_ramp success with a variety of BC1.2 chargers. Change-Id: Ie0a51a577e2b7491222560cd08dd5321ff3b7975 Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/435561 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Vijay P Hiremath <vijay.p.hiremath@intel.com> Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r--driver/charger/bd9995x.c21
-rw-r--r--driver/charger/bd9995x.h2
2 files changed, 10 insertions, 13 deletions
diff --git a/driver/charger/bd9995x.c b/driver/charger/bd9995x.c
index 33ff4c78af..df69f348e8 100644
--- a/driver/charger/bd9995x.c
+++ b/driver/charger/bd9995x.c
@@ -867,25 +867,22 @@ int charger_discharge_on_ac(int enable)
BD9995X_EXTENDED_COMMAND);
}
-int charger_get_vbus_level(void)
+int charger_get_vbus_voltage(int port)
{
- int vbus_val;
- int vcc_val;
- int rv;
+ uint8_t read_reg;
+ int voltage;
- rv = ch_raw_read16(BD9995X_CMD_VBUS_VAL, &vbus_val,
- BD9995X_EXTENDED_COMMAND);
+ read_reg = (bd9995x_pd_port_to_chg_port(port) ==
+ BD9995X_CHARGE_PORT_VBUS) ? BD9995X_CMD_VBUS_VAL :
+ BD9995X_CMD_VCC_VAL;
- rv += ch_raw_read16(BD9995X_CMD_VCC_VAL, &vcc_val,
- BD9995X_EXTENDED_COMMAND);
-
- return rv ? 0 : MAX(vbus_val, vcc_val);
+ return ch_raw_read16(read_reg, &voltage, BD9995X_EXTENDED_COMMAND) ?
+ 0 : voltage;
}
-
/*** Non-standard interface functions ***/
-int bd9995x_is_vbus_provided(int port)
+int bd9995x_is_vbus_provided(enum bd9995x_charge_port port)
{
int reg;
diff --git a/driver/charger/bd9995x.h b/driver/charger/bd9995x.h
index a5ce174aea..6140fb2971 100644
--- a/driver/charger/bd9995x.h
+++ b/driver/charger/bd9995x.h
@@ -344,7 +344,7 @@ static inline enum bd9995x_charge_port bd9995x_pd_port_to_chg_port(int port)
*/
/* Is VBUS provided or external power present */
-int bd9995x_is_vbus_provided(int port);
+int bd9995x_is_vbus_provided(enum bd9995x_charge_port port);
/* Select or deselect input port from {VCC, VBUS, VCC&VBUS}. */
int bd9995x_select_input_port(enum bd9995x_charge_port port, int select);
/* Get input current limit for BC1.2 suppliers */