max1720x: add capacity and voltage retrieval

Bug: 175027562
Signed-off-by: George Lee <[email protected]>
Change-Id: I9b6274503329f1b5951f55bf876133a05661960d
diff --git a/max1720x_battery.c b/max1720x_battery.c
index c239015..fae7410 100644
--- a/max1720x_battery.c
+++ b/max1720x_battery.c
@@ -982,6 +982,42 @@
 	return REGMAP_READ(&chip->regmap, chip->reg_prop_capacity_raw, data);
 }
 
+int max1720x_get_capacity(struct i2c_client *client, int *iic_raw)
+{
+	struct max1720x_chip *chip = i2c_get_clientdata(client);
+	u16 temp;
+	int ret;
+
+	if (!chip)
+		return -ENODEV;
+
+	/* check the rules on reg_prop_capacity_raw */
+	ret = max1720x_get_capacity_raw(chip, &temp);
+	if (ret == 0)
+		*iic_raw = ((int) temp) / 256;
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(max1720x_get_capacity);
+
+int max1720x_get_voltage_now(struct i2c_client *client, int *volt)
+{
+	struct max1720x_chip *chip;
+	u16 temp;
+	int ret;
+
+	chip = i2c_get_clientdata(client);
+	if (!chip)
+		return -ENODEV;
+
+	ret = max17x0x_reg_read(&chip->regmap, MAX17X0X_TAG_vcel, &temp);
+	if (ret == 0)
+		*volt = reg_to_micro_volt(temp);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(max1720x_get_voltage_now);
+
 static int max1720x_get_battery_soc(struct max1720x_chip *chip)
 {
 	u16 data;