J'ai un oneplus2 et j'ai besoin de savoir la différence entre charging_enabled
vs battery_charging_enabled
présents dans /sys/class/power_supply/battery
J'utilise une application appelée Limite de charge de la batterie qui utilise actuellement battery_charging_enabled
J'ai créé un fichier pour basculer la charge lorsque la limite prédéfinie est atteinte, mais même si je peux voir que mon téléphone se décharge (l'application arrête la charge du téléphone même si le câble est branché), le courant de décharge est anormalement très faible par rapport à une décharge "normale" (sans l'application). Pourquoi cela se produit-il ? D'où vient l'énergie supplémentaire (si ce n'est de la batterie) pour suivre les activités du téléphone ?
Je me demandais si la condition de charge complète (la capacité du téléphone à fonctionner directement sur une source d'alimentation branchée au lieu de la batterie après avoir été chargé à 100%) était appliquée à 90% (ce que j'ai défini comme la limite de charge maximale dans l'application).
J'ai également vérifié le statut de charging_enabled
pendant que l'application était activée et il était de 1, ce qui signifie qu'il n'a pas été affecté par l'application (ce qui est évident puisque le fichier de contrôle utilisé par l'application est différent).
Modifier : Je viens de changer le fichier de contrôle de l'application de . battery_charging_enabled
à charging_enabled
et maintenant la décharge de la batterie semble normale.
Quelqu'un peut-il expliquer la différence entre ces fichiers de contrôle ?
Editar: Ajouter des extraits de codes de dispositifs à partir du fichier /android/lineage/kernel/oneplus/msm8994/drivers/power/qpnp-smbcharger.c
. J'espère que cela vous aidera.
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;