Tengo un oneplus2 y necesito saber la diferencia entre charging_enabled
vs battery_charging_enabled
archivos presentes en /sys/class/suministro_de_energía/batería
Estoy utilizando una aplicación llamada Límite de carga de la batería que actualmente está utilizando battery_charging_enabled
archivo para activar la carga cuando se alcanza el límite preestablecido, pero aunque puedo ver que mi teléfono se está descargando (la aplicación detiene la carga del teléfono aunque el cable esté enchufado), la corriente de descarga es inusualmente muy pequeña en comparación con la descarga "normal" (sin la aplicación). ¿Por qué ocurre esto? ¿De dónde se obtiene la energía extra (si no es de la batería) para mantener el ritmo de las actividades realizadas en el teléfono.
Me preguntaba si la condición de carga completa (la capacidad del teléfono de funcionar directamente con la fuente de alimentación enchufada en lugar de la batería después de que se cargue al 100%) se estaba aplicando al 90% (que he establecido como límite de carga máxima en la aplicación).
También he comprobado el estado de charging_enabled
mientras la aplicación estaba activada y era 1, lo que significa que no estaba afectada por la aplicación (lo que es obvio ya que el archivo de control utilizado por la aplicación es diferente).
Editar : Acabo de cambiar el archivo de control de la aplicación de battery_charging_enabled
a charging_enabled
y ahora el drenaje de la batería parece normal.
¿Puede alguien explicar la diferencia entre estos archivos de control?
Editar: Añadir fragmentos de códigos de dispositivo desde el archivo /android/lineage/kernel/oneplus/msm8994/drivers/power/qpnp-smbcharger.c
. Espero que sea de ayuda.
case POWER_SUPPLY_PROP_BATTERY_CHARGING_ENABLED:
smbchg_battchg_en(chip, val->intval,
REASON_BATTCHG_USER, &unused);
pr_err("chg_en form userspace battery charging enable: %d\n",val->intval);
break;
case POWER_SUPPLY_PROP_CHARGING_ENABLED:
smbchg_usb_en(chip, val->intval, REASON_USER);
smbchg_dc_en(chip, val->intval, REASON_USER);
chip->chg_enabled = val->intval;
pr_err("chg_en form userspace charging enable: %d\n",chip->chg_enabled);
schedule_work(&chip->usb_set_online_work);
break;
------------------------------------------------------------------------
case POWER_SUPPLY_PROP_BATTERY_CHARGING_ENABLED:
val->intval = smcghg_is_battchg_en(chip, REASON_BATTCHG_USER);
break;
case POWER_SUPPLY_PROP_CHARGING_ENABLED:
val->intval = chip->chg_enabled;
0 votos
@beeshyams No pude encontrar nada en la red, excepto algunas diferencias en el código del dispositivo.