Re: [PATCH v2 2/8] power: supply: core: Add state_of_health power supply property
From: Sebastian Reichel
Date: Sat Jun 21 2025 - 21:17:43 EST
Hi,
On Thu, Jun 05, 2025 at 09:34:14AM +0300, Dmitry Baryshkov wrote:
> On Thu, Jun 05, 2025 at 02:08:30PM +0800, Fenglin Wu wrote:
> >
> > On 6/3/2025 6:35 PM, Dmitry Baryshkov wrote:
> > > > > > +What: /sys/class/power_supply/<supply_name>/state_of_health
> > > > > > +Date: May 2025
> > > > > > +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
> > > > > > +Description:
> > > > > > + Reports battery power supply state of health in percentage.
> > > > > > +
> > > > > > + Access: Read
> > > > > > +
> > > > > > + Valid values: 0 - 100 (percent)
> > > > > What does it mean that battery has 77% of health?
> > > > I will update this to explain it better:
> > > >
> > > > Reports battery power supply state of health in percentage, indicating that the maximum charge capacity has degraded to that percentage of its original designed capacity.
> > > Which basically means that we don't need it in the first place, as we
> > > can read capacity_full and capacity_full_design (or energy_full /
> > > energy_full_design) and divide one onto another.
> >
> > Hmm, it is true in general to quantify how the battery performance has
> > degraded over time. However, estimating and calculating for battery state of
> > health is much more complicated I think. I am not an expert, but as far as I
> > know, different battery management systems might have different algorithms
> > to calculate the battery health and report it in as percentage. For example,
> > in Qcom battery management firmware, a "soh" parameter is provided as the
> > battery health percentage based on the real-time calculations from learning
> > capacity, resistance estimation, etc.
>
> Ack, this is more than just full / full_design. Please consider
> expanding ABI description (though in the vendor-neutral way).
No, Dmitry was right. It is exactly the same.
Estimating the battery state of health information is indeed tricky
and complicated. The reason for that is that estimating and
calculating POWER_SUPPLY_PROP_CHARGE_FULL/POWER_SUPPLY_PROP_ENERGY_FULL
(i.e. not the *_FULL_DESIGN) is complicated :)
Greetings,
-- Sebastian
Attachment:
signature.asc
Description: PGP signature