diff --git a/drivers/power/battery_gauge.c b/drivers/power/battery_gauge.c index 66fe97bb38..2f6ea839b4 100644 --- a/drivers/power/battery_gauge.c +++ b/drivers/power/battery_gauge.c @@ -328,6 +328,26 @@ static int bat_gauge_ioctl(FAR struct file *filep, } break; + case BATIOC_CURRENT: + { + FAR b16_t *ptr = (FAR b16_t *)((uintptr_t)arg); + if (ptr) + { + ret = dev->ops->current(dev, ptr); + } + } + break; + + case BATIOC_TEMPERATURE: + { + FAR b8_t *ptr = (FAR b8_t *)((uintptr_t)arg); + if (ptr) + { + ret = dev->ops->temp(dev, ptr); + } + } + break; + default: _err("ERROR: Unrecognized cmd: %d\n", cmd); ret = -ENOTTY; diff --git a/include/nuttx/power/battery_gauge.h b/include/nuttx/power/battery_gauge.h index c1e074f06e..5fa2fd489e 100644 --- a/include/nuttx/power/battery_gauge.h +++ b/include/nuttx/power/battery_gauge.h @@ -99,6 +99,14 @@ struct battery_gauge_operations_s /* Battery capacity */ int (*capacity)(struct battery_gauge_dev_s *dev, b16_t *value); + + /* Battery current */ + + int (*current)(struct battery_gauge_dev_s *dev, b16_t *value); + + /* Battery temp */ + + int (*temp)(struct battery_gauge_dev_s *dev, b8_t *value); }; /* This structure defines the battery driver state structure */