Hi, On Sun, Jun 21, 2026 at 05:59:52PM +0300, Boris Shtrasman wrote: > Add support for PbAc, NiZn, RAM, and ZnAr chemistries as defined in the > Smart Battery Data Specification v1.1 (Section 5.1.30 DeviceChemistry). > > Currently, the sbs-battery driver only handles LION, LiP, NiCd and NiMH. > The Smart Battery specification defines 8 possible values: > - Lead Acid (PbAc) > - Lithium Ion (LION) > - Nickel Cadmium (NiCd) > - Nickel Metal Hydride (NiMH) > - Nickel Zinc (NiZn) > - Rechargeable Alkaline-Manganese (RAM) > - Zinc Air (ZnAr) > - Lithium Polymer (LiP) > > Map the missing specification values to their respective core kernel > POWER_SUPPLY_TECHNOLOGY definitions. > > Link: https://sbs-forum.org/specs/sbdat110.pdf > Signed-off-by: Boris Shtrasman > --- > drivers/power/supply/sbs-battery.c | 8 ++++++++ > include/linux/power_supply.h | 4 ++++ This should be two patches, one for the power-supply core and one for the SBS battery driver. > 2 files changed, 12 insertions(+) > > diff --git a/drivers/power/supply/sbs-battery.c b/drivers/power/supply/sbs-battery.c > index 43c48196c167..42a941e99155 100644 > --- a/drivers/power/supply/sbs-battery.c > +++ b/drivers/power/supply/sbs-battery.c > @@ -860,6 +860,14 @@ static int sbs_get_chemistry(struct sbs_info *chip, > chip->technology = POWER_SUPPLY_TECHNOLOGY_NiCd; > else if (!strncasecmp(chemistry, "NiMH", 4)) > chip->technology = POWER_SUPPLY_TECHNOLOGY_NiMH; > + else if (!strncasecmp(chemistry, "PbAc", 4)) > + chip->technology = POWER_SUPPLY_TECHNOLOGY_PbAc; > + else if (!strncasecmp(chemistry, "NiZn", 4)) > + chip->technology = POWER_SUPPLY_TECHNOLOGY_NiZn; > + else if (!strncasecmp(chemistry, "RAM", 3)) > + chip->technology = POWER_SUPPLY_TECHNOLOGY_RAM; > + else if (!strncasecmp(chemistry, "ZnAr", 4)) > + chip->technology = POWER_SUPPLY_TECHNOLOGY_ZnAr; > else > chip->technology = POWER_SUPPLY_TECHNOLOGY_UNKNOWN; > > diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h > index 7a5e4c3242a0..034800cd21da 100644 > --- a/include/linux/power_supply.h > +++ b/include/linux/power_supply.h > @@ -83,6 +83,10 @@ enum { > POWER_SUPPLY_TECHNOLOGY_LiFe, > POWER_SUPPLY_TECHNOLOGY_NiCd, > POWER_SUPPLY_TECHNOLOGY_LiMn, > + POWER_SUPPLY_TECHNOLOGY_PbAc, > + POWER_SUPPLY_TECHNOLOGY_NiZn, > + POWER_SUPPLY_TECHNOLOGY_RAM, > + POWER_SUPPLY_TECHNOLOGY_ZnAr, > }; You need to update the ABI Documentation and the sysfs code to handle the new properties. Greetings, -- Sebastian