diff options
author | Shawn Nematbakhsh <shawnn@chromium.org> | 2017-01-31 10:48:31 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-02-02 19:09:52 -0800 |
commit | f08109522dab20b9621489ccf04e98c26c30cd3f (patch) | |
tree | db3a002c7833c46244b1550150e7a7d2b3e1b367 /driver | |
parent | 7e2f31f537c8e6bbf149d086543ead937fc9f329 (diff) | |
download | chrome-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.c | 21 | ||||
-rw-r--r-- | driver/charger/bd9995x.h | 2 |
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 */ |