summaryrefslogtreecommitdiff
path: root/driver/charger
diff options
context:
space:
mode:
Diffstat (limited to 'driver/charger')
-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 */