diff --git a/drivers/power/battery_gauge.c b/drivers/power/battery_gauge.c index eecfefc2f75..13a9daa8ca0 100644 --- a/drivers/power/battery_gauge.c +++ b/drivers/power/battery_gauge.c @@ -201,6 +201,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 47d4f142c22..de9f5df9292 100644 --- a/include/nuttx/power/battery_gauge.h +++ b/include/nuttx/power/battery_gauge.h @@ -109,6 +109,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 */