diff --git a/firmware/SOURCES b/firmware/SOURCES index 7358eb9fb7..3573331db9 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -2032,7 +2032,6 @@ target/hosted/lc-unix.c target/hosted/ibasso/audiohw-ibasso.c target/hosted/ibasso/backlight-ibasso.c target/hosted/ibasso/button-ibasso.c -target/hosted/power-linux.c #ifdef DEBUG target/hosted/ibasso/debug-ibasso.c #endif diff --git a/firmware/export/config/ibassodx50.h b/firmware/export/config/ibassodx50.h index 926fb5a9d9..a56db2b265 100644 --- a/firmware/export/config/ibassodx50.h +++ b/firmware/export/config/ibassodx50.h @@ -140,7 +140,3 @@ #define NUM_DRIVES 2 #define HAVE_HOTSWAP #define MULTIDRIVE_DIR "/mnt/external_sd" - -/* More common stuff */ -#define BATTERY_DEV_NAME "battery" -#define POWER_DEV_NAME "usb" diff --git a/firmware/export/config/ibassodx90.h b/firmware/export/config/ibassodx90.h index ea891c6572..576ff2de47 100644 --- a/firmware/export/config/ibassodx90.h +++ b/firmware/export/config/ibassodx90.h @@ -137,7 +137,3 @@ #define NUM_DRIVES 2 #define HAVE_HOTSWAP #define MULTIDRIVE_DIR "/mnt/external_sd" - -/* More common stuff */ -#define BATTERY_DEV_NAME "battery" -#define POWER_DEV_NAME "usb" diff --git a/firmware/target/hosted/ibasso/powermgmt-ibasso.c b/firmware/target/hosted/ibasso/powermgmt-ibasso.c index 7edbfdbbbc..5aa6110f36 100644 --- a/firmware/target/hosted/ibasso/powermgmt-ibasso.c +++ b/firmware/target/hosted/ibasso/powermgmt-ibasso.c @@ -112,3 +112,31 @@ int _battery_voltage(void) return(val / 1000); } + +/* NOTE: This is largely lifted from the generic hostedpower-linux.c + but that uses a different sysfs api (expecting a path strning rather than + an enumeration */ +#include "tick.h" +#include "power.h" + +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}; + sysfs_get_string(SYSFS_BATTERY_STATUS, buf, sizeof(buf)); + + last_tick = current_tick; + last_power = (strncmp(buf, "Charging", 8) == 0); + } + return last_power; +} + +unsigned int power_input_status(void) +{ + int present = 0; + sysfs_get_int(SYSFS_USB_POWER_ONLINE, &present); + + return present ? POWER_INPUT_USB_CHARGER : POWER_INPUT_NONE; +}