mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-09 13:12:37 -05:00
erosq: Initial PM support for "hw4" variant
(They renamed the battery from 'battery' to 'axp_battery') Change-Id: Ic42c31e1d5c01eafc3fe01b144d9f22d88933e04
This commit is contained in:
parent
41abd8e32f
commit
edbcf0b0f4
3 changed files with 56 additions and 6 deletions
|
|
@ -28,17 +28,34 @@
|
|||
#include "power.h"
|
||||
#include "panic.h"
|
||||
#include "sysfs.h"
|
||||
#include "tick.h"
|
||||
|
||||
const char * const sysfs_bat_voltage =
|
||||
"/sys/class/power_supply/battery/voltage_now";
|
||||
const char * const sysfs_bat_voltage[2] = {
|
||||
"/sys/class/power_supply/battery/voltage_now",
|
||||
"/sys/class/power_supply/axp_battery/voltage_now",
|
||||
};
|
||||
|
||||
const char * const sysfs_bat_capacity =
|
||||
"/sys/class/power_supply/battery/capacity";
|
||||
const char * const sysfs_bat_capacity[2] = {
|
||||
"/sys/class/power_supply/battery/capacity",
|
||||
"/sys/class/power_supply/axp_battery/capacity",
|
||||
};
|
||||
|
||||
const char * const sysfs_bat_status[2] = {
|
||||
"/sys/class/power_supply/battery/status",
|
||||
"/sys/class/power_supply/axp_battery/status",
|
||||
};
|
||||
|
||||
static int hwver = 0;
|
||||
|
||||
unsigned int erosq_power_get_battery_voltage(void)
|
||||
{
|
||||
int battery_voltage;
|
||||
sysfs_get_int(sysfs_bat_voltage, &battery_voltage);
|
||||
int x = sysfs_get_int(sysfs_bat_voltage[hwver], &battery_voltage);
|
||||
|
||||
if (!x) {
|
||||
hwver ^= 1;
|
||||
sysfs_get_int(sysfs_bat_voltage[hwver], &battery_voltage);
|
||||
}
|
||||
|
||||
return battery_voltage/1000;
|
||||
}
|
||||
|
|
@ -46,7 +63,33 @@ unsigned int erosq_power_get_battery_voltage(void)
|
|||
unsigned int erosq_power_get_battery_capacity(void)
|
||||
{
|
||||
int battery_capacity;
|
||||
sysfs_get_int(sysfs_bat_capacity, &battery_capacity);
|
||||
int x = sysfs_get_int(sysfs_bat_capacity[hwver], &battery_capacity);
|
||||
|
||||
if (!x) {
|
||||
hwver ^= 1;
|
||||
sysfs_get_int(sysfs_bat_capacity[hwver], &battery_capacity);
|
||||
}
|
||||
|
||||
return battery_capacity;
|
||||
}
|
||||
|
||||
/* We get called multiple times per tick, let's cut that back! */
|
||||
static long last_tick = 0;
|
||||
static bool last_power = false;
|
||||
|
||||
bool charging_state(void)
|
||||
{
|
||||
if ((current_tick - last_tick) > HZ/2 ) {
|
||||
char buf[12] = {0};
|
||||
int x = sysfs_get_string(sysfs_bat_status[hwver], buf, sizeof(buf));
|
||||
|
||||
if (!x) {
|
||||
hwver ^= 1;
|
||||
sysfs_get_string(sysfs_bat_status[hwver], buf, sizeof(buf));
|
||||
}
|
||||
|
||||
last_tick = current_tick;
|
||||
last_power = (strncmp(buf, "Charging", 8) == 0);
|
||||
}
|
||||
return last_power;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue