Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge branch 'jb49693_pinephone_battery' into 'master'
Enablers for periodic / forced battery info polling

See merge request mer-core/mce!139
  • Loading branch information
spiiroin committed Jun 25, 2020
2 parents 94493ba + 2261f93 commit fd55276
Show file tree
Hide file tree
Showing 9 changed files with 648 additions and 201 deletions.
16 changes: 15 additions & 1 deletion Makefile
Expand Up @@ -688,10 +688,24 @@ endif

.SUFFIXES: .q .p .g

%.q : %.c ; $(CC) -o $@ -E $< $(CPPFLAGS) $(MCE_CFLAGS)
PROTO_CPPFLAGS += $(CPPFLAGS)
PROTO_CPPFLAGS += $(MCE_CFLAGS)
PROTO_CPPFLAGS += $(MODULE_CFLAGS)
PROTO_CPPFLAGS += -D_Float32=float
PROTO_CPPFLAGS += -D_Float64=double
PROTO_CPPFLAGS += -D_Float128="long double"
PROTO_CPPFLAGS += -D_Float32x=float
PROTO_CPPFLAGS += -D_Float64x=double
PROTO_CPPFLAGS += -D_Float128x="long double"

%.q : %.c ; $(CC) -o $@ -E $< $(PROTO_CPPFLAGS)
%.p : %.q ; cproto -s < $< | prettyproto.py | tee $@
%.g : %.q ; cproto < $< | prettyproto.py | tee $@

protos-q: $(patsubst %.c,%.q,$(wildcard *.c modules/*.c))
protos-p: $(patsubst %.c,%.p,$(wildcard *.c modules/*.c))
protos-g: $(patsubst %.c,%.g,$(wildcard *.c modules/*.c))

clean::
$(RM) -f *.[qpg] modules/*.[qpg] tools/*.[qpg]

Expand Down
34 changes: 33 additions & 1 deletion datapipe.c
Expand Up @@ -1655,6 +1655,37 @@ const char *usb_cable_state_to_dbus(usb_cable_state_t state)
return res;
}

/** Convert human readable name to charger_type_t enum
*
* @param name human readable charger type name
*
* @return charger_type_t enumeration value, or CHARGER_TYPE_INVALID
*/
charger_type_t
charger_type_parse(const char *name)
{
charger_type_t type = CHARGER_TYPE_INVALID;
if( !name )
mce_log(LL_WARN, "invalid charger type: %s", "null");
else if( !strcmp(name, "none") )
type = CHARGER_TYPE_NONE;
else if( !strcmp(name, "usb") )
type = CHARGER_TYPE_USB;
else if( !strcmp(name, "dcp") )
type = CHARGER_TYPE_DCP;
else if( !strcmp(name, "hwdcp") )
type = CHARGER_TYPE_HVDCP;
else if( !strcmp(name, "cdp") )
type = CHARGER_TYPE_CDP;
else if( !strcmp(name, "wireless") )
type = CHARGER_TYPE_WIRELESS;
else if( !strcmp(name, "other") )
type = CHARGER_TYPE_OTHER;
else
mce_log(LL_WARN, "invalid charger type: %s", name);
return type;
}

/** Convert charger_type_t enum to human readable string
*
* @param type charger_type_t enumeration value
Expand All @@ -1664,7 +1695,7 @@ const char *usb_cable_state_to_dbus(usb_cable_state_t state)
const char *
charger_type_repr(charger_type_t type)
{
const char *repr = "unknown";
const char *repr = "invalid";
switch( type ) {
case CHARGER_TYPE_NONE: repr = "none"; break;
case CHARGER_TYPE_USB: repr = "usb"; break;
Expand All @@ -1689,6 +1720,7 @@ charger_type_to_dbus(charger_type_t type)
{
const char *repr = MCE_CHARGER_TYPE_OTHER;
switch( type ) {
case CHARGER_TYPE_INVALID:
case CHARGER_TYPE_NONE: repr = MCE_CHARGER_TYPE_NONE; break;
case CHARGER_TYPE_USB: repr = MCE_CHARGER_TYPE_USB; break;
case CHARGER_TYPE_DCP: repr = MCE_CHARGER_TYPE_DCP; break;
Expand Down
21 changes: 21 additions & 0 deletions inifiles/battery-udev-chargertypes.ini
@@ -0,0 +1,21 @@
# Configuration file for MCE - udev battery plugin

[BatteryUDevChargerTypes]

# Charger type is derived primarily from POWER_SUPPLY_TYPE
# udev attribute, or if such property is not present from
# device name.

# The built-in defaults are as follows:

#ac=dcp
#unknown=none
#mains=dcp
#usb_hvdcp=hwdcp
#wireless=wireless
#cdp=cdp
#usb_aca=usb
#usb=usb
#usb_dcp=dcp
#usb_hvdcp_3=hwdcp
#usb_cdp=cdp
4 changes: 2 additions & 2 deletions inifiles/battery-udev-devices.ini
Expand Up @@ -7,12 +7,12 @@
# devices are in active state. Should there be misclassification or
# other hiccups, mce can be instructed to ignore some devices by
# adding a lines with content:
# <device sysname>=TRUE
# <device sysname>=true

# Sony Xperia XA2 has "pc_port" charger power supply device
# occasionally gets stuck to POWER_SUPPLY_ONLINE=1 state - which
# makes it look like charger cable never gets disconnected.
# Blacklisting the charger device means charger connection state
# is deduced from battery charging status rather than potentially
# misreported charger device state.
pc_port=TRUE
pc_port=true
254 changes: 127 additions & 127 deletions inifiles/battery-udev-properties.ini
Expand Up @@ -24,133 +24,133 @@
# POWER_SUPPLY_STATUS

# Generic device properties
bootdevice=TRUE
ACTION=TRUE
DEVPATH=TRUE
PLATFORM_DEVICE=TRUE
PLATFORM_FOLDER=TRUE
SEQNUM=TRUE
SUBSYSTEM=TRUE
USEC_INITIALIZED=TRUE
bootdevice=true
ACTION=true
DEVPATH=true
PLATFORM_DEVICE=true
PLATFORM_FOLDER=true
SEQNUM=true
SUBSYSTEM=true
USEC_INITIALIZED=true

# "Uninteresting" power supply device specific properties seen
# on already supported hardwares.
POWER_SUPPLY_ALLOW_HVDCP3=TRUE
POWER_SUPPLY_BATTERY_CHARGING_ENABLED=TRUE
#POWER_SUPPLY_BATTERY_TYPE=TRUE
POWER_SUPPLY_BATT_AGING=TRUE
POWER_SUPPLY_BOOST_CURRENT=TRUE
POWER_SUPPLY_CABLE_TYPE
POWER_SUPPLY_CAPACITY_RAW=TRUE
POWER_SUPPLY_CC_STEP=TRUE
POWER_SUPPLY_CC_STEP_SEL=TRUE
POWER_SUPPLY_CHARGER_DISABLE
POWER_SUPPLY_CHARGER_TEMP=TRUE
POWER_SUPPLY_CHARGER_TEMP_MAX=TRUE
POWER_SUPPLY_CHARGE_CONTROL_LIMIT
POWER_SUPPLY_CHARGE_CONTROL_LIMIT_MAX
POWER_SUPPLY_CHARGE_COUNTER=TRUE
POWER_SUPPLY_CHARGE_CURRENT
POWER_SUPPLY_CHARGE_DONE=TRUE
POWER_SUPPLY_CHARGE_FULL=TRUE
POWER_SUPPLY_CHARGE_FULL_DESIGN=TRUE
POWER_SUPPLY_CHARGE_NOW=TRUE
POWER_SUPPLY_CHARGE_NOW_ERROR=TRUE
POWER_SUPPLY_CHARGE_NOW_RAW=TRUE
POWER_SUPPLY_CHARGE_TERM_CUR
#POWER_SUPPLY_CHARGE_TYPE=TRUE
POWER_SUPPLY_CHARGE_VOLTAGE
POWER_SUPPLY_CHARGING_ENABLED=TRUE
POWER_SUPPLY_CONSTANT_CHARGE_CURRENT_MAX=TRUE
POWER_SUPPLY_CONSTANT_CHARGE_VOLTAGE=TRUE
POWER_SUPPLY_CTM_CURRENT_MAX=TRUE
POWER_SUPPLY_CURRENT_AVG
POWER_SUPPLY_CURRENT_MAX=TRUE
POWER_SUPPLY_CURRENT_NOW=TRUE
POWER_SUPPLY_CURRENT_QNOVO=TRUE
POWER_SUPPLY_CYCLE_COUNT=TRUE
POWER_SUPPLY_CYCLE_COUNT_ID=TRUE
POWER_SUPPLY_DEBUG_BATTERY=TRUE
POWER_SUPPLY_DIE_HEALTH=TRUE
POWER_SUPPLY_DP_DM=TRUE
POWER_SUPPLY_ENABLE_CHARGER
POWER_SUPPLY_ENABLE_CHARGING
POWER_SUPPLY_ENABLE_SHUTDOWN_AT_LOW_BATTERY=TRUE
POWER_SUPPLY_ENERGY_EMPTY
POWER_SUPPLY_ENERGY_EMPTY_DESIGN
POWER_SUPPLY_ENERGY_FULL
POWER_SUPPLY_ENERGY_FULL_DESIGN
POWER_SUPPLY_ENERGY_NOW
POWER_SUPPLY_ESR_COUNT=TRUE
POWER_SUPPLY_FCC_DELTA=TRUE
POWER_SUPPLY_FLASH_ACTIVE=TRUE
POWER_SUPPLY_FLASH_CURRENT_MAX=TRUE
POWER_SUPPLY_FLASH_TRIGGER=TRUE
POWER_SUPPLY_FV_CFG=TRUE
POWER_SUPPLY_FV_CMP_CFG=TRUE
POWER_SUPPLY_HEALTH=TRUE
POWER_SUPPLY_HI_POWER
POWER_SUPPLY_HW_CURRENT_MAX=TRUE
POWER_SUPPLY_INPUT_CURRENT_LIMITED=TRUE
POWER_SUPPLY_INPUT_CURRENT_MAX=TRUE
POWER_SUPPLY_INPUT_CURRENT_NOW=TRUE
POWER_SUPPLY_INPUT_CURRENT_SETTLED=TRUE
POWER_SUPPLY_INPUT_CUR_LIMIT
POWER_SUPPLY_INPUT_SUSPEND=TRUE
POWER_SUPPLY_INPUT_VOLTAGE_SETTLED=TRUE
POWER_SUPPLY_INT_CLD=TRUE
POWER_SUPPLY_LOW_POWER
POWER_SUPPLY_LRC_ENABLE=TRUE
POWER_SUPPLY_LRC_NOT_STARTUP=TRUE
POWER_SUPPLY_LRC_SOCMAX=TRUE
POWER_SUPPLY_LRC_SOCMIN=TRUE
POWER_SUPPLY_MAX_CHARGE_CURRENT
POWER_SUPPLY_MAX_CHARGE_VOLTAGE
POWER_SUPPLY_MAX_TEMP
POWER_SUPPLY_MIN_TEMP
POWER_SUPPLY_MODEL_NAME
POWER_SUPPLY_NAME=TRUE
POWER_SUPPLY_PARALLEL_DISABLE=TRUE
POWER_SUPPLY_PARALLEL_MODE=TRUE
POWER_SUPPLY_PD_ACTIVE=TRUE
POWER_SUPPLY_PD_ALLOWED=TRUE
POWER_SUPPLY_PD_CURRENT_MAX=TRUE
POWER_SUPPLY_PD_VOLTAGE_MAX=TRUE
POWER_SUPPLY_PD_VOLTAGE_MIN=TRUE
POWER_SUPPLY_PE_START=TRUE
POWER_SUPPLY_PR_SWAP=TRUE
#POWER_SUPPLY_REAL_TYPE=TRUE
POWER_SUPPLY_RERUN_AICL=TRUE
POWER_SUPPLY_RESISTANCE=TRUE
POWER_SUPPLY_RESISTANCE_CAPACITIVE
POWER_SUPPLY_RESISTANCE_ID=TRUE
POWER_SUPPLY_RESISTANCE_NOW
POWER_SUPPLY_RESTRICTED_CHARGING=TRUE
POWER_SUPPLY_SAFETY_TIMER_ENABLED=TRUE
POWER_SUPPLY_SCOPE=TRUE
POWER_SUPPLY_SDP_CURRENT_MAX=TRUE
POWER_SUPPLY_SET_SHIP_MODE=TRUE
POWER_SUPPLY_SOC_REPORTING_READY=TRUE
POWER_SUPPLY_STEP_CHARGING_ENABLED=TRUE
#POWER_SUPPLY_SUB_TYPE=TRUE
POWER_SUPPLY_SW_JEITA_ENABLED=TRUE
POWER_SUPPLY_SYSTEM_TEMP_LEVEL=TRUE
POWER_SUPPLY_TECHNOLOGY=TRUE
POWER_SUPPLY_TEMP=TRUE
POWER_SUPPLY_TEMP_COOL=TRUE
POWER_SUPPLY_TEMP_WARM=TRUE
POWER_SUPPLY_TIME_TO_EMPTY_AVG=TRUE
POWER_SUPPLY_TIME_TO_FULL_AVG=TRUE
#POWER_SUPPLY_TYPE=TRUE
POWER_SUPPLY_TYPEC_CC_ORIENTATION=TRUE
POWER_SUPPLY_TYPEC_MODE=TRUE
POWER_SUPPLY_TYPEC_POWER_ROLE=TRUE
POWER_SUPPLY_UPDATE_NOW=TRUE
POWER_SUPPLY_USB_OTG=TRUE
POWER_SUPPLY_VOLTAGE_MAX=TRUE
POWER_SUPPLY_VOLTAGE_MAX_DESIGN=TRUE
POWER_SUPPLY_VOLTAGE_MIN=TRUE
POWER_SUPPLY_VOLTAGE_MIN_DESIGN
POWER_SUPPLY_VOLTAGE_NOW=TRUE
POWER_SUPPLY_VOLTAGE_OCV=TRUE
POWER_SUPPLY_VOLTAGE_QNOVO=TRUE
POWER_SUPPLY_ALLOW_HVDCP3=true
POWER_SUPPLY_BATTERY_CHARGING_ENABLED=true
#POWER_SUPPLY_BATTERY_TYPE=true
POWER_SUPPLY_BATT_AGING=true
POWER_SUPPLY_BOOST_CURRENT=true
POWER_SUPPLY_CABLE_TYPE=true
POWER_SUPPLY_CAPACITY_RAW=true
POWER_SUPPLY_CC_STEP=true
POWER_SUPPLY_CC_STEP_SEL=true
POWER_SUPPLY_CHARGER_DISABLE=true
POWER_SUPPLY_CHARGER_TEMP=true
POWER_SUPPLY_CHARGER_TEMP_MAX=true
POWER_SUPPLY_CHARGE_CONTROL_LIMIT=true
POWER_SUPPLY_CHARGE_CONTROL_LIMIT_MAX=true
POWER_SUPPLY_CHARGE_COUNTER=true
POWER_SUPPLY_CHARGE_CURRENT=true
POWER_SUPPLY_CHARGE_DONE=true
POWER_SUPPLY_CHARGE_FULL=true
POWER_SUPPLY_CHARGE_FULL_DESIGN=true
POWER_SUPPLY_CHARGE_NOW=true
POWER_SUPPLY_CHARGE_NOW_ERROR=true
POWER_SUPPLY_CHARGE_NOW_RAW=true
POWER_SUPPLY_CHARGE_TERM_CUR=true
#POWER_SUPPLY_CHARGE_TYPE=true
POWER_SUPPLY_CHARGE_VOLTAGE=true
POWER_SUPPLY_CHARGING_ENABLED=true
POWER_SUPPLY_CONSTANT_CHARGE_CURRENT_MAX=true
POWER_SUPPLY_CONSTANT_CHARGE_VOLTAGE=true
POWER_SUPPLY_CTM_CURRENT_MAX=true
POWER_SUPPLY_CURRENT_AVG=true
POWER_SUPPLY_CURRENT_MAX=true
POWER_SUPPLY_CURRENT_NOW=true
POWER_SUPPLY_CURRENT_QNOVO=true
POWER_SUPPLY_CYCLE_COUNT=true
POWER_SUPPLY_CYCLE_COUNT_ID=true
POWER_SUPPLY_DEBUG_BATTERY=true
POWER_SUPPLY_DIE_HEALTH=true
POWER_SUPPLY_DP_DM=true
POWER_SUPPLY_ENABLE_CHARGER=true
POWER_SUPPLY_ENABLE_CHARGING=true
POWER_SUPPLY_ENABLE_SHUTDOWN_AT_LOW_BATTERY=true
POWER_SUPPLY_ENERGY_EMPTY=true
POWER_SUPPLY_ENERGY_EMPTY_DESIGN=true
POWER_SUPPLY_ENERGY_FULL=true
POWER_SUPPLY_ENERGY_FULL_DESIGN=true
POWER_SUPPLY_ENERGY_NOW=true
POWER_SUPPLY_ESR_COUNT=true
POWER_SUPPLY_FCC_DELTA=true
POWER_SUPPLY_FLASH_ACTIVE=true
POWER_SUPPLY_FLASH_CURRENT_MAX=true
POWER_SUPPLY_FLASH_TRIGGER=true
POWER_SUPPLY_FV_CFG=true
POWER_SUPPLY_FV_CMP_CFG=true
POWER_SUPPLY_HEALTH=true
POWER_SUPPLY_HI_POWER=true
POWER_SUPPLY_HW_CURRENT_MAX=true
POWER_SUPPLY_INPUT_CURRENT_LIMITED=true
POWER_SUPPLY_INPUT_CURRENT_MAX=true
POWER_SUPPLY_INPUT_CURRENT_NOW=true
POWER_SUPPLY_INPUT_CURRENT_SETTLED=true
POWER_SUPPLY_INPUT_CUR_LIMIT=true
POWER_SUPPLY_INPUT_SUSPEND=true
POWER_SUPPLY_INPUT_VOLTAGE_SETTLED=true
POWER_SUPPLY_INT_CLD=true
POWER_SUPPLY_LOW_POWER=true
POWER_SUPPLY_LRC_ENABLE=true
POWER_SUPPLY_LRC_NOT_STARTUP=true
POWER_SUPPLY_LRC_SOCMAX=true
POWER_SUPPLY_LRC_SOCMIN=true
POWER_SUPPLY_MAX_CHARGE_CURRENT=true
POWER_SUPPLY_MAX_CHARGE_VOLTAGE=true
POWER_SUPPLY_MAX_TEMP=true
POWER_SUPPLY_MIN_TEMP=true
POWER_SUPPLY_MODEL_NAME=true
POWER_SUPPLY_NAME=true
POWER_SUPPLY_PARALLEL_DISABLE=true
POWER_SUPPLY_PARALLEL_MODE=true
POWER_SUPPLY_PD_ACTIVE=true
POWER_SUPPLY_PD_ALLOWED=true
POWER_SUPPLY_PD_CURRENT_MAX=true
POWER_SUPPLY_PD_VOLTAGE_MAX=true
POWER_SUPPLY_PD_VOLTAGE_MIN=true
POWER_SUPPLY_PE_START=true
POWER_SUPPLY_PR_SWAP=true
#POWER_SUPPLY_REAL_TYPE=true
POWER_SUPPLY_RERUN_AICL=true
POWER_SUPPLY_RESISTANCE=true
POWER_SUPPLY_RESISTANCE_CAPACITIVE=true
POWER_SUPPLY_RESISTANCE_ID=true
POWER_SUPPLY_RESISTANCE_NOW=true
POWER_SUPPLY_RESTRICTED_CHARGING=true
POWER_SUPPLY_SAFETY_TIMER_ENABLED=true
POWER_SUPPLY_SCOPE=true
POWER_SUPPLY_SDP_CURRENT_MAX=true
POWER_SUPPLY_SET_SHIP_MODE=true
POWER_SUPPLY_SOC_REPORTING_READY=true
POWER_SUPPLY_STEP_CHARGING_ENABLED=true
#POWER_SUPPLY_SUB_TYPE=true
POWER_SUPPLY_SW_JEITA_ENABLED=true
POWER_SUPPLY_SYSTEM_TEMP_LEVEL=true
POWER_SUPPLY_TECHNOLOGY=true
POWER_SUPPLY_TEMP=true
POWER_SUPPLY_TEMP_COOL=true
POWER_SUPPLY_TEMP_WARM=true
POWER_SUPPLY_TIME_TO_EMPTY_AVG=true
POWER_SUPPLY_TIME_TO_FULL_AVG=true
#POWER_SUPPLY_TYPE=true
POWER_SUPPLY_TYPEC_CC_ORIENTATION=true
POWER_SUPPLY_TYPEC_MODE=true
POWER_SUPPLY_TYPEC_POWER_ROLE=true
POWER_SUPPLY_UPDATE_NOW=true
POWER_SUPPLY_USB_OTG=true
POWER_SUPPLY_VOLTAGE_MAX=true
POWER_SUPPLY_VOLTAGE_MAX_DESIGN=true
POWER_SUPPLY_VOLTAGE_MIN=true
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=true
POWER_SUPPLY_VOLTAGE_NOW=true
POWER_SUPPLY_VOLTAGE_OCV=true
POWER_SUPPLY_VOLTAGE_QNOVO=true

0 comments on commit fd55276

Please sign in to comment.