So, exposing the charge threshold in sysfs is something I’m working on. The limit is mediated by the EC, and exposing it in sysfs requires the installation of a battery “extension” (it’s a kernel interface that allows one driver to add sysfs entries to an ACPI battery node owned by another driver.)
I’m planning on seeking upstream approval for this patch soon. For now, though, some teasers:
(rigel) ~ % ls /sys/class/power_supply/BAT1
alarm charge_full_design device power subsystem voltage_min_design
capacity charge_now hwmon2 present technology voltage_now
capacity_level current_now manufacturer serial_number type
charge_full cycle_count model_name status uevent
(rigel) ~ % sudo modprobe framework_acpi
(rigel) ~ % sudo dmesg | tail -n 1
[159509.633091] ACPI: battery: new extension: Framework Laptop Battery Extension
(rigel) ~ % ls /sys/class/power_supply/BAT1/charge_control_end_threshold
/sys/class/power_supply/BAT1/charge_control_end_threshold
(rigel) ~ % cat /sys/class/power_supply/BAT1/charge_control_end_threshold
100
(rigel) ~ % echo 80 | sudo tee /sys/class/power_supply/BAT1/charge_control_end_threshold
80