rgnano: Voltage and current measure support

Battery time estimation works now.

This commit also changes the mksquashfs path to FUNKEY_SDK_PATH.

Change-Id: Ic0aa4c40011b0716f1c36c014377eaccb486e841
This commit is contained in:
Hairo R. Carela 2025-08-23 13:44:25 -04:00
parent 97ebba1fbd
commit 6f107430f4
5 changed files with 61 additions and 3 deletions

View file

@ -29,9 +29,32 @@
#include "panic.h"
#include "sysfs.h"
const char * const sysfs_bat_voltage =
"/sys/class/power_supply/axp20x-battery/voltage_now";
const char * const sysfs_bat_current =
"/sys/class/power_supply/axp20x-battery/current_now";
const char * const sysfs_bat_level =
"/sys/class/power_supply/axp20x-battery/capacity";
unsigned int rgnano_power_get_battery_voltage(void)
{
int battery_voltage;
sysfs_get_int(sysfs_bat_voltage, &battery_voltage);
return battery_voltage;
}
unsigned int rgnano_power_get_battery_current(void)
{
int battery_current;
sysfs_get_int(sysfs_bat_current, &battery_current);
/* Current is in microamps */
return (battery_current / 1000);
}
unsigned int rgnano_power_get_battery_capacity(void)
{
int battery_level;

View file

@ -23,5 +23,7 @@
#include <stdbool.h>
#include "config.h"
unsigned int rgnano_power_get_battery_voltage(void);
unsigned int rgnano_power_get_battery_current(void);
unsigned int rgnano_power_get_battery_capacity(void);
#endif /* _POWER_RGNANO_H_ */

View file

@ -22,6 +22,34 @@
#include "power.h"
#include "power-rgnano.h"
/* System handles powering off at 2% */
unsigned short battery_level_disksafe = 0;
unsigned short battery_level_shutoff = 0;
/* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */
/* read from /sys/class/power_supply/axp20x-battery/voltage_now */
/* in 5s intervals and averaged out */
unsigned short percent_to_volt_discharge[11] =
{
3400, 3597, 3665, 3701, 3736, 3777, 3824, 3882, 3944, 4023, 4162
};
/* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */
unsigned short percent_to_volt_charge[11] =
{
3512, 3729, 3795, 3831, 3865, 3906, 3953, 4010, 4072, 4150, 4186
};
int _battery_voltage(void)
{
return rgnano_power_get_battery_voltage();
}
int _battery_current(void)
{
return rgnano_power_get_battery_current();
}
int _battery_level(void)
{
return rgnano_power_get_battery_capacity();