mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-07 05:35:02 -05:00
hosted: consolidate sysfs-based battery measurement code
Several hosted targets read their battery state from a fixed sysfs path. Get rid of the duplicated code by handling this common case in power-linux.c. Some targets use non-standard units in sysfs instead of the typical microvolts / microamps, so allow the scale factors to be overridden by the target. Change-Id: I31dc4ffc7a2d2c066d00a74070f9f9849c1663d0
This commit is contained in:
parent
7ffdf50ba5
commit
806b71b2ed
20 changed files with 74 additions and 454 deletions
|
|
@ -153,21 +153,18 @@ target/hosted/power-linux.c
|
||||||
#if defined(AGPTEK_ROCKER) && !defined(SIMULATOR)
|
#if defined(AGPTEK_ROCKER) && !defined(SIMULATOR)
|
||||||
target/hosted/agptek/button-agptek.c
|
target/hosted/agptek/button-agptek.c
|
||||||
target/hosted/agptek/debug-agptek.c
|
target/hosted/agptek/debug-agptek.c
|
||||||
target/hosted/agptek/power-agptek.c
|
|
||||||
target/hosted/agptek/powermgmt-agptek.c
|
target/hosted/agptek/powermgmt-agptek.c
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SURFANS_F28) && !defined(SIMULATOR)
|
#if defined(SURFANS_F28) && !defined(SIMULATOR)
|
||||||
target/hosted/surfans/button-f28.c
|
target/hosted/surfans/button-f28.c
|
||||||
target/hosted/surfans/debug-f28.c
|
target/hosted/surfans/debug-f28.c
|
||||||
target/hosted/surfans/power-f28.c
|
|
||||||
target/hosted/surfans/powermgmt-f28.c
|
target/hosted/surfans/powermgmt-f28.c
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined(XDUOO_X3II) || defined(XDUOO_X20)) && !defined(SIMULATOR)
|
#if (defined(XDUOO_X3II) || defined(XDUOO_X20)) && !defined(SIMULATOR)
|
||||||
target/hosted/xduoo/button-xduoo.c
|
target/hosted/xduoo/button-xduoo.c
|
||||||
target/hosted/xduoo/debug-xduoo.c
|
target/hosted/xduoo/debug-xduoo.c
|
||||||
target/hosted/xduoo/power-xduoo.c
|
|
||||||
target/hosted/xduoo/powermgmt-xduoo.c
|
target/hosted/xduoo/powermgmt-xduoo.c
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -180,7 +177,6 @@ target/hosted/button-devinput.c
|
||||||
target/hosted/fiio/buttonlight-fiio.c
|
target/hosted/fiio/buttonlight-fiio.c
|
||||||
target/hosted/fiio/button-fiio.c
|
target/hosted/fiio/button-fiio.c
|
||||||
target/hosted/fiio/debug-fiio.c
|
target/hosted/fiio/debug-fiio.c
|
||||||
target/hosted/fiio/power-fiio.c
|
|
||||||
target/hosted/fiio/powermgmt-fiio.c
|
target/hosted/fiio/powermgmt-fiio.c
|
||||||
target/hosted/fiio/system-fiio.c
|
target/hosted/fiio/system-fiio.c
|
||||||
target/hosted/fiio/usb-fiio.c
|
target/hosted/fiio/usb-fiio.c
|
||||||
|
|
@ -233,7 +229,6 @@ target/hosted/sysfs.c
|
||||||
target/hosted/power-linux.c
|
target/hosted/power-linux.c
|
||||||
target/hosted/backlight-unix.c
|
target/hosted/backlight-unix.c
|
||||||
target/hosted/anbernic/instant_play.c
|
target/hosted/anbernic/instant_play.c
|
||||||
target/hosted/anbernic/power-rgnano.c
|
|
||||||
target/hosted/anbernic/button-rgnano.c
|
target/hosted/anbernic/button-rgnano.c
|
||||||
target/hosted/anbernic/powermgmt-rgnano.c
|
target/hosted/anbernic/powermgmt-rgnano.c
|
||||||
#endif /* RG_NANO */
|
#endif /* RG_NANO */
|
||||||
|
|
|
||||||
|
|
@ -125,6 +125,14 @@
|
||||||
#define BATTERY_CAPACITY_MAX 1100 /* max. capacity selectable */
|
#define BATTERY_CAPACITY_MAX 1100 /* max. capacity selectable */
|
||||||
#define BATTERY_CAPACITY_INC 0 /* capacity increment */
|
#define BATTERY_CAPACITY_INC 0 /* capacity increment */
|
||||||
|
|
||||||
|
/* Voltage reported in millivolts */
|
||||||
|
#define BATTERY_VOLTAGE_SCALE_MUL 1
|
||||||
|
#define BATTERY_VOLTAGE_SCALE_DIV 1
|
||||||
|
|
||||||
|
/* Capacity reported as a value 0-5, 20% increments */
|
||||||
|
#define BATTERY_LEVEL_SCALE_MUL 20
|
||||||
|
#define BATTERY_LEVEL_SCALE_DIV 1
|
||||||
|
|
||||||
/* ROLO */
|
/* ROLO */
|
||||||
#define BOOTFILE_EXT "m3k"
|
#define BOOTFILE_EXT "m3k"
|
||||||
#define BOOTFILE "rockbox." BOOTFILE_EXT
|
#define BOOTFILE "rockbox." BOOTFILE_EXT
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,10 @@
|
||||||
#define BATTERY_CAPACITY_MAX 1050 /* max. capacity selectable */
|
#define BATTERY_CAPACITY_MAX 1050 /* max. capacity selectable */
|
||||||
#define BATTERY_CAPACITY_INC 0 /* capacity increment */
|
#define BATTERY_CAPACITY_INC 0 /* capacity increment */
|
||||||
|
|
||||||
|
/* Voltage reported in millivolts */
|
||||||
|
#define BATTERY_VOLTAGE_SCALE_MUL 1
|
||||||
|
#define BATTERY_VOLTAGE_SCALE_DIV 1
|
||||||
|
|
||||||
/* Define this for LCD backlight available */
|
/* Define this for LCD backlight available */
|
||||||
#define BACKLIGHT_RG_NANO
|
#define BACKLIGHT_RG_NANO
|
||||||
#define HAVE_BACKLIGHT
|
#define HAVE_BACKLIGHT
|
||||||
|
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* __________ __ ___.
|
|
||||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
||||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
||||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
||||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
||||||
* \/ \/ \/ \/ \/
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 by Marcin Bukat
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
||||||
* KIND, either express or implied.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "system.h"
|
|
||||||
#include "power-agptek.h"
|
|
||||||
#include "power.h"
|
|
||||||
#include "panic.h"
|
|
||||||
#include "sysfs.h"
|
|
||||||
|
|
||||||
const char * const sysfs_bat_voltage =
|
|
||||||
"/sys/class/power_supply/battery/voltage_now";
|
|
||||||
|
|
||||||
unsigned int agptek_power_get_battery_voltage(void)
|
|
||||||
{
|
|
||||||
int battery_voltage;
|
|
||||||
sysfs_get_int(sysfs_bat_voltage, &battery_voltage);
|
|
||||||
|
|
||||||
return battery_voltage/1000;
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* __________ __ ___.
|
|
||||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
||||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
||||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
||||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
||||||
* \/ \/ \/ \/ \/
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 by Marcin Bukat
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
||||||
* KIND, either express or implied.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
#ifndef _POWER_AGPTEK_H_
|
|
||||||
#define _POWER_AGPTEK_H_
|
|
||||||
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
unsigned int agptek_power_get_battery_voltage(void);
|
|
||||||
#endif /* _POWER_AGPTEK_H_ */
|
|
||||||
|
|
@ -19,7 +19,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "powermgmt.h"
|
#include "powermgmt.h"
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
#include "power-agptek.h"
|
|
||||||
|
|
||||||
unsigned short battery_level_disksafe = 3470;
|
unsigned short battery_level_disksafe = 3470;
|
||||||
|
|
||||||
|
|
@ -37,8 +36,3 @@ unsigned short percent_to_volt_charge[11] =
|
||||||
{
|
{
|
||||||
3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196
|
3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196
|
||||||
};
|
};
|
||||||
|
|
||||||
int _battery_voltage(void)
|
|
||||||
{
|
|
||||||
return agptek_power_get_battery_voltage();
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* __________ __ ___.
|
|
||||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
||||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
||||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
||||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
||||||
* \/ \/ \/ \/ \/
|
|
||||||
*
|
|
||||||
* Copyright (C) 2025 Hairo R. Carela
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
||||||
* KIND, either express or implied.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "system.h"
|
|
||||||
#include "power-rgnano.h"
|
|
||||||
#include "power.h"
|
|
||||||
#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;
|
|
||||||
sysfs_get_int(sysfs_bat_level, &battery_level);
|
|
||||||
|
|
||||||
return battery_level;
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* __________ __ ___.
|
|
||||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
||||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
||||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
||||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
||||||
* \/ \/ \/ \/ \/
|
|
||||||
*
|
|
||||||
* Copyright (C) 2025 Hairo R. Carela
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
||||||
* KIND, either express or implied.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
#ifndef _POWER_RGNANO_H_
|
|
||||||
#define _POWER_RGNANO_H_
|
|
||||||
|
|
||||||
#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_ */
|
|
||||||
|
|
@ -20,7 +20,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "powermgmt.h"
|
#include "powermgmt.h"
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
#include "power-rgnano.h"
|
|
||||||
|
|
||||||
/* System handles powering off at 2% */
|
/* System handles powering off at 2% */
|
||||||
unsigned short battery_level_disksafe = 0;
|
unsigned short battery_level_disksafe = 0;
|
||||||
|
|
@ -39,18 +38,3 @@ unsigned short percent_to_volt_charge[11] =
|
||||||
{
|
{
|
||||||
3512, 3729, 3795, 3831, 3865, 3906, 3953, 4010, 4072, 4150, 4186
|
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();
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* __________ __ ___.
|
|
||||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
||||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
||||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
||||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
||||||
* \/ \/ \/ \/ \/
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 by Marcin Bukat
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
||||||
* KIND, either express or implied.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "system.h"
|
|
||||||
#include "power.h"
|
|
||||||
#include "panic.h"
|
|
||||||
#include "sysfs.h"
|
|
||||||
#include "usb.h"
|
|
||||||
|
|
||||||
#include "power-fiio.h"
|
|
||||||
|
|
||||||
const char * const sysfs_bat_voltage =
|
|
||||||
"/sys/class/power_supply/battery/voltage_now";
|
|
||||||
|
|
||||||
const char * const sysfs_bat_capacity =
|
|
||||||
"/sys/class/power_supply/battery/capacity";
|
|
||||||
|
|
||||||
unsigned int fiio_power_get_battery_voltage(void)
|
|
||||||
{
|
|
||||||
int battery_voltage;
|
|
||||||
sysfs_get_int(sysfs_bat_voltage, &battery_voltage);
|
|
||||||
|
|
||||||
return battery_voltage;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned int fiio_power_get_battery_capacity(void)
|
|
||||||
{
|
|
||||||
int battery_capacity;
|
|
||||||
sysfs_get_int(sysfs_bat_capacity, &battery_capacity);
|
|
||||||
|
|
||||||
return battery_capacity * 20;
|
|
||||||
}
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* __________ __ ___.
|
|
||||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
||||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
||||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
||||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
||||||
* \/ \/ \/ \/ \/
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 by Marcin Bukat
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
||||||
* KIND, either express or implied.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
#ifndef _POWER_FIIO_H_
|
|
||||||
#define _POWER_FIIO_H_
|
|
||||||
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
unsigned int fiio_power_get_battery_voltage(void);
|
|
||||||
unsigned int fiio_power_get_battery_capacity(void);
|
|
||||||
#endif /* _POWER_FIIO_H_ */
|
|
||||||
|
|
@ -19,7 +19,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "powermgmt.h"
|
#include "powermgmt.h"
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
#include "power-fiio.h"
|
|
||||||
|
|
||||||
unsigned short battery_level_disksafe = 3470;
|
unsigned short battery_level_disksafe = 3470;
|
||||||
|
|
||||||
|
|
@ -37,15 +36,3 @@ unsigned short percent_to_volt_charge[11] =
|
||||||
{
|
{
|
||||||
3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196
|
3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196
|
||||||
};
|
};
|
||||||
|
|
||||||
int _battery_voltage(void)
|
|
||||||
{
|
|
||||||
return fiio_power_get_battery_voltage();
|
|
||||||
}
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
int _battery_level(void)
|
|
||||||
{
|
|
||||||
return fiio_power_get_battery_capacity();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@
|
||||||
#include "usb.h"
|
#include "usb.h"
|
||||||
#include "sysfs.h"
|
#include "sysfs.h"
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
#include "power-fiio.h"
|
|
||||||
|
|
||||||
#ifdef HAVE_MULTIDRIVE
|
#ifdef HAVE_MULTIDRIVE
|
||||||
void cleanup_rbhome(void);
|
void cleanup_rbhome(void);
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,38 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef BATTERY_DEV_NAME
|
#ifdef BATTERY_DEV_NAME
|
||||||
#define BATTERY_STATUS_PATH "/sys/class/power_supply/" BATTERY_DEV_NAME "/status"
|
# define BATTERY_SYSFS_PATH "/sys/class/power_supply/" BATTERY_DEV_NAME
|
||||||
|
# define BATTERY_STATUS_PATH BATTERY_SYSFS_PATH "/status"
|
||||||
|
# define BATTERY_VOLTAGE_PATH BATTERY_SYSFS_PATH "/voltage_now"
|
||||||
|
# define BATTERY_CURRENT_PATH BATTERY_SYSFS_PATH "/current_now"
|
||||||
|
# define BATTERY_LEVEL_PATH BATTERY_SYSFS_PATH "/capacity"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Voltage is normally in microvolts */
|
||||||
|
#ifndef BATTERY_VOLTAGE_SCALE_MUL
|
||||||
|
# define BATTERY_VOLTAGE_SCALE_MUL 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BATTERY_VOLTAGE_SCALE_DIV
|
||||||
|
# define BATTERY_VOLTAGE_SCALE_DIV 1000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Current is normally in microamps */
|
||||||
|
#ifndef BATTERY_CURRENT_SCALE_MUL
|
||||||
|
# define BATTERY_CURRENT_SCALE_MUL 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BATTERY_CURRENT_SCALE_DIV
|
||||||
|
# define BATTERY_CURRENT_SCALE_DIV 1000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Level is normally in whole percentage points (0-100) */
|
||||||
|
#ifndef BATTERY_LEVEL_SCALE_MUL
|
||||||
|
# define BATTERY_LEVEL_SCALE_MUL 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BATTERY_LEVEL_SCALE_DIV
|
||||||
|
# define BATTERY_LEVEL_SCALE_DIV 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define POWER_STATUS_PATH "/sys/class/power_supply/" POWER_DEV_NAME "/online"
|
#define POWER_STATUS_PATH "/sys/class/power_supply/" POWER_DEV_NAME "/online"
|
||||||
|
|
@ -55,6 +86,36 @@ bool charging_state(void)
|
||||||
}
|
}
|
||||||
return last_power;
|
return last_power;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (CONFIG_BATTERY_MEASURE & VOLTAGE_MEASURE)
|
||||||
|
int _battery_voltage(void)
|
||||||
|
{
|
||||||
|
int voltage = 0;
|
||||||
|
sysfs_get_int(BATTERY_VOLTAGE_PATH, &voltage);
|
||||||
|
|
||||||
|
return (voltage * BATTERY_VOLTAGE_SCALE_MUL) / BATTERY_VOLTAGE_SCALE_DIV;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (CONFIG_BATTERY_MEASURE & CURRENT_MEASURE)
|
||||||
|
int _battery_current(void)
|
||||||
|
{
|
||||||
|
int current = 0;
|
||||||
|
sysfs_get_int(BATTERY_CURRENT_PATH, ¤t);
|
||||||
|
|
||||||
|
return (current * BATTERY_CURRENT_SCALE_MUL) / BATTERY_CURRENT_SCALE_DIV;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (CONFIG_BATTERY_MEASURE & PERCENTAGE_MEASURE)
|
||||||
|
int _battery_level(void)
|
||||||
|
{
|
||||||
|
int level = 0;
|
||||||
|
sysfs_get_int(BATTERY_LEVEL_PATH, &level);
|
||||||
|
|
||||||
|
return (level * BATTERY_LEVEL_SCALE_MUL) / BATTERY_LEVEL_SCALE_DIV;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
unsigned int power_input_status(void)
|
unsigned int power_input_status(void)
|
||||||
|
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* __________ __ ___.
|
|
||||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
||||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
||||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
||||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
||||||
* \/ \/ \/ \/ \/
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 by Marcin Bukat
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
||||||
* KIND, either express or implied.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "system.h"
|
|
||||||
#include "power-f28.h"
|
|
||||||
#include "power.h"
|
|
||||||
#include "panic.h"
|
|
||||||
#include "sysfs.h"
|
|
||||||
|
|
||||||
const char * const sysfs_bat_voltage =
|
|
||||||
"/sys/class/power_supply/battery/voltage_now";
|
|
||||||
|
|
||||||
unsigned int f28_power_get_battery_voltage(void)
|
|
||||||
{
|
|
||||||
int battery_voltage;
|
|
||||||
sysfs_get_int(sysfs_bat_voltage, &battery_voltage);
|
|
||||||
|
|
||||||
return battery_voltage/1000;
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* __________ __ ___.
|
|
||||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
||||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
||||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
||||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
||||||
* \/ \/ \/ \/ \/
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 by Marcin Bukat
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
||||||
* KIND, either express or implied.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
#ifndef _POWER_F28_H_
|
|
||||||
#define _POWER_F28_H_
|
|
||||||
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
unsigned int f28_power_get_battery_voltage(void);
|
|
||||||
#endif /* _POWER_F28_H_ */
|
|
||||||
|
|
@ -19,7 +19,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "powermgmt.h"
|
#include "powermgmt.h"
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
#include "power-f28.h"
|
|
||||||
|
|
||||||
// XXX all of this... blabla
|
// XXX all of this... blabla
|
||||||
// max voltage is 4360 apparently
|
// max voltage is 4360 apparently
|
||||||
|
|
@ -40,8 +39,3 @@ unsigned short percent_to_volt_charge[11] =
|
||||||
{
|
{
|
||||||
3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196
|
3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196
|
||||||
};
|
};
|
||||||
|
|
||||||
int _battery_voltage(void)
|
|
||||||
{
|
|
||||||
return f28_power_get_battery_voltage();
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* __________ __ ___.
|
|
||||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
||||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
||||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
||||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
||||||
* \/ \/ \/ \/ \/
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 by Marcin Bukat
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
||||||
* KIND, either express or implied.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include "system.h"
|
|
||||||
#include "power-xduoo.h"
|
|
||||||
#include "power.h"
|
|
||||||
#include "panic.h"
|
|
||||||
#include "sysfs.h"
|
|
||||||
|
|
||||||
const char * const sysfs_bat_voltage =
|
|
||||||
"/sys/class/power_supply/battery/voltage_now";
|
|
||||||
|
|
||||||
const char * const sysfs_bat_capacity =
|
|
||||||
"/sys/class/power_supply/battery/capacity";
|
|
||||||
|
|
||||||
unsigned int xduoo_power_get_battery_voltage(void)
|
|
||||||
{
|
|
||||||
int battery_voltage;
|
|
||||||
sysfs_get_int(sysfs_bat_voltage, &battery_voltage);
|
|
||||||
|
|
||||||
return battery_voltage/1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned int xduoo_power_get_battery_capacity(void)
|
|
||||||
{
|
|
||||||
int battery_capacity;
|
|
||||||
sysfs_get_int(sysfs_bat_capacity, &battery_capacity);
|
|
||||||
|
|
||||||
return battery_capacity;
|
|
||||||
}
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
/***************************************************************************
|
|
||||||
* __________ __ ___.
|
|
||||||
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
||||||
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
||||||
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
||||||
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
||||||
* \/ \/ \/ \/ \/
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 by Marcin Bukat
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation; either version 2
|
|
||||||
* of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
||||||
* KIND, either express or implied.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
#ifndef _POWER_XDUOO_H_
|
|
||||||
#define _POWER_XDUOO_H_
|
|
||||||
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
unsigned int xduoo_power_get_battery_voltage(void);
|
|
||||||
unsigned int xduoo_power_get_battery_capacity(void);
|
|
||||||
#endif /* _POWER_XDUOO_H_ */
|
|
||||||
|
|
@ -19,7 +19,6 @@
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "powermgmt.h"
|
#include "powermgmt.h"
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
#include "power-xduoo.h"
|
|
||||||
|
|
||||||
unsigned short battery_level_disksafe = 3443; /* 5% */
|
unsigned short battery_level_disksafe = 3443; /* 5% */
|
||||||
|
|
||||||
|
|
@ -37,17 +36,3 @@ unsigned short percent_to_volt_charge[11] =
|
||||||
{
|
{
|
||||||
3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196
|
3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(XDUOO_X3II)
|
|
||||||
int _battery_voltage(void)
|
|
||||||
{
|
|
||||||
return xduoo_power_get_battery_voltage();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(XDUOO_X20)
|
|
||||||
int _battery_level(void)
|
|
||||||
{
|
|
||||||
return xduoo_power_get_battery_capacity();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue