Skip to content

Commit

Permalink
drivers: sbs_gauge: Add support for additional properties
Browse files Browse the repository at this point in the history
Fuel Gauge mode, status, charge current, charge voltage, design
capacity and design voltage are added.

Signed-off-by: Rajavardhan Gundi <rajavardhan.gundi@intel.com>
  • Loading branch information
rgundi authored and nashif committed Feb 20, 2023
1 parent 0a5e4e4 commit 09d8123
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 1 deletion.
25 changes: 25 additions & 0 deletions drivers/fuel_gauge/sbs_gauge/sbs_gauge.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,31 @@ static int sbs_gauge_get_prop(const struct device *dev, struct fuel_gauge_get_pr
rc = sbs_cmd_reg_read(dev, SBS_GAUGE_CMD_VOLTAGE, &val);
prop->value.voltage = val * 1000;
break;
case FUEL_GAUGE_MODE:
rc = sbs_cmd_reg_read(dev, SBS_GAUGE_CMD_BATTERY_MODE, &val);
prop->value.mode = val;
break;
case FUEL_GAUGE_CHARGE_CURRENT:
rc = sbs_cmd_reg_read(dev, SBS_GAUGE_CMD_CHG_CURRENT, &val);
prop->value.chg_current = val;
break;
case FUEL_GAUGE_CHARGE_VOLTAGE:
rc = sbs_cmd_reg_read(dev, SBS_GAUGE_CMD_CHG_VOLTAGE, &val);
prop->value.chg_voltage = val;
break;
case FUEL_GAUGE_STATUS:
rc = sbs_cmd_reg_read(dev, SBS_GAUGE_CMD_FLAGS, &val);
prop->value.fg_status = val;
break;
case FUEL_GAUGE_DESIGN_CAPACITY:
rc = sbs_cmd_reg_read(dev, SBS_GAUGE_CMD_NOM_CAPACITY, &val);
prop->value.design_cap = val;
break;
case FUEL_GAUGE_DESIGN_VOLTAGE:
rc = sbs_cmd_reg_read(dev, SBS_GAUGE_CMD_DESIGN_VOLTAGE, &val);
prop->value.design_volt = val;
break;

default:
rc = -ENOTSUP;
}
Expand Down
26 changes: 25 additions & 1 deletion include/zephyr/drivers/fuel_gauge.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,21 @@ extern "C" {
#define FUEL_GAUGE_TEMPERATURE FUEL_GAUGE_STATE_OF_CHARGE + 1
/** Battery voltage (uV) */
#define FUEL_GAUGE_VOLTAGE FUEL_GAUGE_TEMPERATURE + 1
/** Battery Mode (flags) */
#define FUEL_GAUGE_MODE FUEL_GAUGE_VOLTAGE + 1
/** Battery desired Max Charging Current (mA) */
#define FUEL_GAUGE_CHARGE_CURRENT FUEL_GAUGE_MODE + 1
/** Battery desired Max Charging Voltage (mV) */
#define FUEL_GAUGE_CHARGE_VOLTAGE FUEL_GAUGE_CHARGE_CURRENT + 1
/** Alarm, Status and Error codes (flags) */
#define FUEL_GAUGE_STATUS FUEL_GAUGE_CHARGE_VOLTAGE + 1
/** Design Capacity (mAh or 10mWh) */
#define FUEL_GAUGE_DESIGN_CAPACITY FUEL_GAUGE_STATUS + 1
/** Design Voltage (mV) */
#define FUEL_GAUGE_DESIGN_VOLTAGE FUEL_GAUGE_DESIGN_CAPACITY + 1

/** Reserved to demark end of common fuel gauge properties */
#define FUEL_GAUGE_COMMON_COUNT FUEL_GAUGE_VOLTAGE + 1
#define FUEL_GAUGE_COMMON_COUNT FUEL_GAUGE_DESIGN_VOLTAGE + 1
/**
* Reserved to demark downstream custom properties - use this value as the actual value may change
* over future versions of this API
Expand Down Expand Up @@ -115,6 +127,18 @@ struct fuel_gauge_get_property {
uint16_t temperature;
/** FUEL_GAUGE_VOLTAGE */
int voltage;
/** FUEL_GAUGE_MODE */
uint16_t mode;
/** FUEL_GAUGE_CHARGE_CURRENT */
uint16_t chg_current;
/** FUEL_GAUGE_CHARGE_VOLTAGE */
uint16_t chg_voltage;
/** FUEL_GAUGE_STATUS */
uint16_t fg_status;
/** FUEL_GAUGE_DESIGN_CAPACITY */
uint16_t design_cap;
/** FUEL_GAUGE_DESIGN_VOLTAGE */
uint16_t design_volt;
} value;
};

Expand Down

0 comments on commit 09d8123

Please sign in to comment.