Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

erosq: Initial PM support for "hw4" variant

(They renamed the battery from 'battery' to 'axp_battery')

Change-Id: Ic42c31e1d5c01eafc3fe01b144d9f22d88933e04

+56 -6
+2
firmware/export/config/hibylinux.h
··· 86 86 #define ROOTDRIVE_DEV "/sys/block/mmcblk0" 87 87 88 88 /* More common stuff */ 89 + #ifndef EROS_Q 89 90 #define BATTERY_DEV_NAME "battery" 91 + #endif 90 92 #define POWER_DEV_NAME "usb"
+49 -6
firmware/target/hosted/aigo/power-erosq.c
··· 28 28 #include "power.h" 29 29 #include "panic.h" 30 30 #include "sysfs.h" 31 + #include "tick.h" 31 32 32 - const char * const sysfs_bat_voltage = 33 - "/sys/class/power_supply/battery/voltage_now"; 33 + const char * const sysfs_bat_voltage[2] = { 34 + "/sys/class/power_supply/battery/voltage_now", 35 + "/sys/class/power_supply/axp_battery/voltage_now", 36 + }; 34 37 35 - const char * const sysfs_bat_capacity = 36 - "/sys/class/power_supply/battery/capacity"; 38 + const char * const sysfs_bat_capacity[2] = { 39 + "/sys/class/power_supply/battery/capacity", 40 + "/sys/class/power_supply/axp_battery/capacity", 41 + }; 42 + 43 + const char * const sysfs_bat_status[2] = { 44 + "/sys/class/power_supply/battery/status", 45 + "/sys/class/power_supply/axp_battery/status", 46 + }; 47 + 48 + static int hwver = 0; 37 49 38 50 unsigned int erosq_power_get_battery_voltage(void) 39 51 { 40 52 int battery_voltage; 41 - sysfs_get_int(sysfs_bat_voltage, &battery_voltage); 53 + int x = sysfs_get_int(sysfs_bat_voltage[hwver], &battery_voltage); 54 + 55 + if (!x) { 56 + hwver ^= 1; 57 + sysfs_get_int(sysfs_bat_voltage[hwver], &battery_voltage); 58 + } 42 59 43 60 return battery_voltage/1000; 44 61 } ··· 46 63 unsigned int erosq_power_get_battery_capacity(void) 47 64 { 48 65 int battery_capacity; 49 - sysfs_get_int(sysfs_bat_capacity, &battery_capacity); 66 + int x = sysfs_get_int(sysfs_bat_capacity[hwver], &battery_capacity); 67 + 68 + if (!x) { 69 + hwver ^= 1; 70 + sysfs_get_int(sysfs_bat_capacity[hwver], &battery_capacity); 71 + } 50 72 51 73 return battery_capacity; 52 74 } 75 + 76 + /* We get called multiple times per tick, let's cut that back! */ 77 + static long last_tick = 0; 78 + static bool last_power = false; 79 + 80 + bool charging_state(void) 81 + { 82 + if ((current_tick - last_tick) > HZ/2 ) { 83 + char buf[12] = {0}; 84 + int x = sysfs_get_string(sysfs_bat_status[hwver], buf, sizeof(buf)); 85 + 86 + if (!x) { 87 + hwver ^= 1; 88 + sysfs_get_string(sysfs_bat_status[hwver], buf, sizeof(buf)); 89 + } 90 + 91 + last_tick = current_tick; 92 + last_power = (strncmp(buf, "Charging", 8) == 0); 93 + } 94 + return last_power; 95 + }
+5
firmware/target/hosted/power-linux.c
··· 33 33 #include "usb.h" 34 34 #endif 35 35 36 + #ifdef BATTERY_DEV_NAME 36 37 #define BATTERY_STATUS_PATH "/sys/class/power_supply/" BATTERY_DEV_NAME "/status" 38 + #endif 39 + 37 40 #define POWER_STATUS_PATH "/sys/class/power_supply/" POWER_DEV_NAME "/online" 38 41 42 + #ifdef BATTERY_DEV_NAME 39 43 /* We get called multiple times per tick, let's cut that back! */ 40 44 static long last_tick = 0; 41 45 static bool last_power = false; ··· 51 55 } 52 56 return last_power; 53 57 } 58 + #endif 54 59 55 60 unsigned int power_input_status(void) 56 61 {