summaryrefslogtreecommitdiff
path: root/firmware/target/hosted/xduoo
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2021-03-10 18:10:00 -0500
committerSolomon Peachy <pizza@shaftnet.org>2021-03-10 18:29:29 -0500
commit555299af9f0ee71c1ad86a6c6846748861be458b (patch)
tree2237e2991231cf529420f52c10a91912ed94bf06 /firmware/target/hosted/xduoo
parentb3b8310e4e07902a8280a120948f0c32c85e67de (diff)
downloadrockbox-555299af9f0ee71c1ad86a6c6846748861be458b.tar.gz
rockbox-555299af9f0ee71c1ad86a6c6846748861be458b.zip
hosted: Consolidate the code that polls the battery charging status
affects all hiby targets, fiiom3k, and ibasso dx50/dx90 As well as deduplicating a small pile of code, this also implements hysteresis so we're not doing a sysfs read/lookup multiple times back-to-back every time the power management tick fires. Change-Id: I2f7672acbb36341becf67e07960c24c681270d09
Diffstat (limited to 'firmware/target/hosted/xduoo')
-rw-r--r--firmware/target/hosted/xduoo/power-xduoo.c22
-rw-r--r--firmware/target/hosted/xduoo/power-xduoo.h3
-rw-r--r--firmware/target/hosted/xduoo/powermgmt-xduoo.c11
3 files changed, 0 insertions, 36 deletions
diff --git a/firmware/target/hosted/xduoo/power-xduoo.c b/firmware/target/hosted/xduoo/power-xduoo.c
index 97a8dd4779..0b1e2f816e 100644
--- a/firmware/target/hosted/xduoo/power-xduoo.c
+++ b/firmware/target/hosted/xduoo/power-xduoo.c
@@ -35,28 +35,6 @@ const char * const sysfs_bat_voltage =
35const char * const sysfs_bat_capacity = 35const char * const sysfs_bat_capacity =
36 "/sys/class/power_supply/battery/capacity"; 36 "/sys/class/power_supply/battery/capacity";
37 37
38const char * const sysfs_bat_status =
39 "/sys/class/power_supply/battery/status";
40
41const char * const sysfs_pow_supply =
42 "/sys/class/power_supply/usb/present";
43
44unsigned int xduoo_power_input_status(void)
45{
46 int present = 0;
47 sysfs_get_int(sysfs_pow_supply, &present);
48
49 return present ? POWER_INPUT_USB_CHARGER : POWER_INPUT_NONE;
50}
51
52bool xduoo_power_charging_status(void)
53{
54 char buf[12] = {0};
55 sysfs_get_string(sysfs_bat_status, buf, sizeof(buf));
56
57 return (strncmp(buf, "Charging", 8) == 0);
58}
59
60unsigned int xduoo_power_get_battery_voltage(void) 38unsigned int xduoo_power_get_battery_voltage(void)
61{ 39{
62 int battery_voltage; 40 int battery_voltage;
diff --git a/firmware/target/hosted/xduoo/power-xduoo.h b/firmware/target/hosted/xduoo/power-xduoo.h
index d573865ed2..ee016bd60b 100644
--- a/firmware/target/hosted/xduoo/power-xduoo.h
+++ b/firmware/target/hosted/xduoo/power-xduoo.h
@@ -23,9 +23,6 @@
23#include <stdbool.h> 23#include <stdbool.h>
24#include "config.h" 24#include "config.h"
25 25
26unsigned int xduoo_power_input_status(void);
27bool xduoo_power_charging_status(void);
28unsigned int xduoo_power_get_battery_voltage(void); 26unsigned int xduoo_power_get_battery_voltage(void);
29unsigned int xduoo_power_get_battery_capacity(void); 27unsigned int xduoo_power_get_battery_capacity(void);
30#endif /* _POWER_XDUOO_H_ */ 28#endif /* _POWER_XDUOO_H_ */
31
diff --git a/firmware/target/hosted/xduoo/powermgmt-xduoo.c b/firmware/target/hosted/xduoo/powermgmt-xduoo.c
index 35d9e45ffc..855072031e 100644
--- a/firmware/target/hosted/xduoo/powermgmt-xduoo.c
+++ b/firmware/target/hosted/xduoo/powermgmt-xduoo.c
@@ -44,12 +44,6 @@ const unsigned short const percent_to_volt_charge[11] =
44 3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196 44 3485, 3780, 3836, 3857, 3890, 3930, 3986, 4062, 4158, 4185, 4196
45}; 45};
46 46
47unsigned int power_input_status(void)
48{
49 /* POWER_INPUT_USB_CHARGER, POWER_INPUT_NONE */
50 return xduoo_power_input_status();
51}
52
53#if defined(XDUOO_X3II) 47#if defined(XDUOO_X3II)
54int _battery_voltage(void) 48int _battery_voltage(void)
55{ 49{
@@ -63,8 +57,3 @@ int _battery_level(void)
63 return xduoo_power_get_battery_capacity(); 57 return xduoo_power_get_battery_capacity();
64} 58}
65#endif 59#endif
66
67bool charging_state(void)
68{
69 return xduoo_power_charging_status();
70}