powermgmt: Add battery current measurement

This allows targets to report the actual discharging or
charging current if they are able to.

Change-Id: I0b538e6ac94346f1434e45f83c8da8c1260a53a3
This commit is contained in:
Aidan MacDonald 2021-11-30 14:16:13 +00:00
parent 923f92cb12
commit ad05c872fe
4 changed files with 52 additions and 8 deletions

View file

@ -208,6 +208,8 @@
Usually application ports, and only
if the estimation is better that ours
(which it probably is) */
#define CURRENT_MEASURE 8 /* Target can report battery charge and/or
* discharge current */
/* CONFIG_LCD */
#define LCD_SSD1815 1 /* as used by Sansa M200 and others */
#define LCD_S1D15E06 3 /* as used by iRiver H100 series */

View file

@ -94,6 +94,11 @@ void powermgmt_init(void) INIT_ATTR;
#define BATT_AVE_SAMPLES 128
#endif
#ifndef BATT_CURRENT_AVE_SAMPLES
/* TODO may need tweaking */
#define BATT_CURRENT_AVE_SAMPLES 16
#endif
#ifndef POWER_THREAD_STEP_TICKS
/* 2HZ sample rate unless otherwise specified */
#define POWER_THREAD_STEP_TICKS (HZ/2)
@ -118,6 +123,8 @@ int battery_current(void); /* battery current in milliamps
int _battery_level(void); /* percent */
int _battery_time(void); /* minutes */
int _battery_voltage(void); /* voltage in millivolts */
int _battery_current(void); /* (dis)charge current in milliamps */
#if CONFIG_CHARGING >= CHARGING_TARGET
void powermgmt_init_target(void);
void charging_algorithm_close(void);