summaryrefslogtreecommitdiff
path: root/driver/charger/bd99955.h
diff options
context:
space:
mode:
Diffstat (limited to 'driver/charger/bd99955.h')
-rw-r--r--driver/charger/bd99955.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/driver/charger/bd99955.h b/driver/charger/bd99955.h
index e027f8e357..0dc45b29ae 100644
--- a/driver/charger/bd99955.h
+++ b/driver/charger/bd99955.h
@@ -12,13 +12,19 @@
#define I2C_ADDR_CHARGER BD99955_ADDR
/* BD99955 commands to change the command code map */
-enum BD99955_COMMANDS {
+enum bd99955_command {
BD99955_BAT_CHG_COMMAND,
BD99955_EXTENDED_COMMAND,
BD99955_DEBUG_COMMAND,
BD99955_INVALID_COMMAND
};
+enum bd99955_charge_port {
+ BD99955_CHARGE_PORT_VBUS,
+ BD99955_CHARGE_PORT_VCC,
+ BD99955_CHARGE_PORT_NONE,
+};
+
/* Charger parameters */
#define CHARGER_NAME "bd99955"
#define CHARGE_V_MAX 19200
@@ -44,6 +50,8 @@ enum BD99955_COMMANDS {
#define BD99955_CMD_CHGSTM_STATUS 0x00
#define BD99955_CMD_VBAT_VSYS_STATUS 0x01
#define BD99955_CMD_VBUS_VCC_STATUS 0x02
+#define BD99955_CMD_VBUS_VCC_STATUS_VCC_DETECT (1 << 8)
+#define BD99955_CMD_VBUS_VCC_STATUS_VBUS_DETECT (1 << 0)
#define BD99955_CMD_CHGOP_STATUS 0x03
#define BD99955_CMD_WDT_STATUS 0x04
#define BD99955_CMD_CUR_ILIM_VAL 0x05
@@ -52,6 +60,10 @@ enum BD99955_COMMANDS {
#define BD99955_CMD_EXT_ICC_LIM_SET 0x08
#define BD99955_CMD_IOTG_LIM_SET 0x09
#define BD99955_CMD_VIN_CTRL_SET 0x0A
+#define BD99955_CMD_VIN_CTRL_SET_PP_BOTH_THRU (1 << 11)
+#define BD99955_CMD_VIN_CTRL_SET_VBUS_PRIORITY (1 << 7)
+#define BD99955_CMD_VIN_CTRL_SET_VBUS_EN (1 << 6)
+#define BD99955_CMD_VIN_CTRL_SET_VCC_EN (1 << 5)
#define BD99955_CMD_CHGOP_SET1 0x0B
#define BD99955_CMD_CHGOP_SET2 0x0C
#define BD99955_CMD_VBUSCLPS_TH_SET 0x0D
@@ -163,4 +175,14 @@ enum BD99955_COMMANDS {
#define BD99955_CHGOP_SET2_CHG_EN (1 << 7)
#define BD99955_CHGOP_SET2_BATT_LEARN (1 << 8)
+/*
+ * Non-standard interface functions - bd99955 integrates additional
+ * functionality not part of the standard charger interface.
+ */
+
+/* Return true if extpower is present on their input port. */
+int bd99955_extpower_is_present(void);
+/* Select input port from {VCC, VBUS, NONE}. */
+int bd99955_select_input_port(enum bd99955_charge_port port);
+
#endif /* __CROS_EC_BD99955_H */