**General Properties**

What:		/sys/class/power_supply/<supply_name>/manufacturer
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Reports the name of the device manufacturer.

		Access: Read
		Valid values: Represented as string

What:		/sys/class/power_supply/<supply_name>/model_name
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Reports the name of the device model.

		Access: Read
		Valid values: Represented as string

What:		/sys/class/power_supply/<supply_name>/serial_number
Date:		January 2008
Contact:	linux-pm@vger.kernel.org
Description:
		Reports the serial number of the device.

		Access: Read
		Valid values: Represented as string

What:		/sys/class/power_supply/<supply_name>/type
Date:		May 2010
Contact:	linux-pm@vger.kernel.org
Description:
		Describes the main type of the supply.

		Access: Read
		Valid values: "Battery", "UPS", "Mains", "USB", "Wireless"

**Battery and USB properties**

What:		/sys/class/power_supply/<supply_name>/current_avg
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Battery:

		  Reports an average IBAT current reading for the battery, over
		  a fixed period. Normally devices will provide a fixed interval
		  in which they average readings to smooth out the reported
		  value.

		USB:

		  Reports an average IBUS current reading over a fixed period.
		  Normally devices will provide a fixed interval in which they
		  average readings to smooth out the reported value.

		Access: Read

		Valid values: Represented in microamps. Negative values are
		used for discharging batteries, positive values for charging
		batteries and for USB IBUS current.

What:		/sys/class/power_supply/<supply_name>/current_max
Date:		October 2010
Contact:	linux-pm@vger.kernel.org
Description:
		Battery:

		  Reports the maximum IBAT current allowed into the battery.

		USB:

		  Reports the maximum IBUS current the supply can support.

		Access: Read
		Valid values: Represented in microamps

What: 		/sys/class/power_supply/<supply_name>/current_now
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:

		Battery:

		  Reports an instant, single IBAT current reading for the
		  battery. This value is not averaged/smoothed.

		  Access: Read

		USB:

		  Reports the IBUS current supplied now. This value is generally
		  read-only reporting, unless the 'online' state of the supply
		  is set to be programmable, in which case this value can be set
		  within the reported min/max range.

		  Access: Read, Write

		Valid values: Represented in microamps. Negative values are
		used for discharging batteries, positive values for charging
		batteries and for USB IBUS current.

What:		/sys/class/power_supply/<supply_name>/temp
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Battery:

		  Reports the current TBAT battery temperature reading.

		USB:

		  Reports the current supply temperature reading. This would
		  normally be the internal temperature of the device itself
		  (e.g TJUNC temperature of an IC)

		Access: Read

		Valid values: Represented in 1/10 Degrees Celsius

What:		/sys/class/power_supply/<supply_name>/temp_alert_max
Date:		July 2012
Contact:	linux-pm@vger.kernel.org
Description:
		Battery:

		  Maximum TBAT temperature trip-wire value where the supply will
		  notify user-space of the event.

		USB:

		  Maximum supply temperature trip-wire value where the supply
		  will notify user-space of the event.

		This is normally used for the charging scenario where
		user-space needs to know if the temperature has crossed an
		upper threshold so it can take appropriate action (e.g. warning
		user that the temperature is critically high, and charging has
		stopped).

		Access: Read

		Valid values: Represented in 1/10 Degrees Celsius

What:		/sys/class/power_supply/<supply_name>/temp_alert_min
Date:		July 2012
Contact:	linux-pm@vger.kernel.org
Description:

		Battery:

		  Minimum TBAT temperature trip-wire value where the supply will
		  notify user-space of the event.

		USB:

		  Minimum supply temperature trip-wire value where the supply
		  will notify user-space of the event.

		This is normally used for the charging scenario where user-space
		needs to know if the temperature has crossed a lower threshold
		so it can take appropriate action (e.g. warning user that
		temperature level is high, and charging current has been
		reduced accordingly to remedy the situation).

		Access: Read

		Valid values: Represented in 1/10 Degrees Celsius

What:		/sys/class/power_supply/<supply_name>/temp_max
Date:		July 2014
Contact:	linux-pm@vger.kernel.org
Description:
		Battery:

		  Reports the maximum allowed TBAT battery temperature for
		  charging.

		USB:

		  Reports the maximum allowed supply temperature for operation.

		Access: Read

		Valid values: Represented in 1/10 Degrees Celsius

What:		/sys/class/power_supply/<supply_name>/temp_min
Date:		July 2014
Contact:	linux-pm@vger.kernel.org
Description:
		Battery:

		  Reports the minimum allowed TBAT battery temperature for
		  charging.

		USB:

		  Reports the minimum allowed supply temperature for operation.

		Access: Read

		Valid values: Represented in 1/10 Degrees Celsius

What:		/sys/class/power_supply/<supply_name>/voltage_max,
Date:		January 2008
Contact:	linux-pm@vger.kernel.org
Description:
		Battery:

		  Reports the maximum safe VBAT voltage permitted for the
		  battery, during charging.

		USB:

		  Reports the maximum VBUS voltage the supply can support.

		Access: Read

		Valid values: Represented in microvolts

What:		/sys/class/power_supply/<supply_name>/voltage_min,
Date:		January 2008
Contact:	linux-pm@vger.kernel.org
Description:
		Battery:

		  Reports the minimum safe VBAT voltage permitted for the
		  battery, during discharging.

		USB:

		  Reports the minimum VBUS voltage the supply can support.

		Access: Read

		Valid values: Represented in microvolts

What:		/sys/class/power_supply/<supply_name>/voltage_now,
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Battery:

		  Reports an instant, single VBAT voltage reading for the
		  battery. This value is not averaged/smoothed.

		  Access: Read

		USB:

		  Reports the VBUS voltage supplied now. This value is generally
		  read-only reporting, unless the 'online' state of the supply
		  is set to be programmable, in which case this value can be set
		  within the reported min/max range.

		  Access: Read, Write

		Valid values: Represented in microvolts

**Battery Properties**

What:		/sys/class/power_supply/<supply_name>/capacity
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Fine grain representation of battery capacity.

		Access: Read

		Valid values: 0 - 100 (percent)

What:		/sys/class/power_supply/<supply_name>/capacity_alert_max
Date:		July 2012
Contact:	linux-pm@vger.kernel.org
Description:
		Maximum battery capacity trip-wire value where the supply will
		notify user-space of the event. This is normally used for the
		battery discharging scenario where user-space needs to know the
		battery has dropped to an upper level so it can take
		appropriate action (e.g. warning user that battery level is
		low).

		Access: Read, Write

		Valid values: 0 - 100 (percent)

What:		/sys/class/power_supply/<supply_name>/capacity_alert_min
Date:		July 2012
Contact:	linux-pm@vger.kernel.org
Description:
		Minimum battery capacity trip-wire value where the supply will
		notify user-space of the event. This is normally used for the
		battery discharging scenario where user-space needs to know the
		battery has dropped to a lower level so it can take
		appropriate action (e.g. warning user that battery level is
		critically low).

		Access: Read, Write

		Valid values: 0 - 100 (percent)

What:		/sys/class/power_supply/<supply_name>/capacity_error_margin
Date:		April 2019
Contact:	linux-pm@vger.kernel.org
Description:
		Battery capacity measurement becomes unreliable without
		recalibration. This values provides the maximum error
		margin expected to exist by the fuel gauge in percent.
		Values close to 0% will be returned after (re-)calibration
		has happened. Over time the error margin will increase.
		100% means, that the capacity related values are basically
		completely useless.

		Access: Read

		Valid values: 0 - 100 (percent)

What:		/sys/class/power_supply/<supply_name>/capacity_level
Date:		June 2009
Contact:	linux-pm@vger.kernel.org
Description:
		Coarse representation of battery capacity.

		Access: Read

		Valid values:
			      "Unknown", "Critical", "Low", "Normal", "High",
			      "Full"

What:		/sys/class/power_supply/<supply_name>/charge_control_limit
Date:		Oct 2012
Contact:	linux-pm@vger.kernel.org
Description:
		Maximum allowable charging current. Used for charge rate
		throttling for thermal cooling or improving battery health.

		Access: Read, Write

		Valid values: Represented in microamps

What:		/sys/class/power_supply/<supply_name>/charge_control_limit_max
Date:		Oct 2012
Contact:	linux-pm@vger.kernel.org
Description:
		Maximum legal value for the charge_control_limit property.

		Access: Read

		Valid values: Represented in microamps

What:		/sys/class/power_supply/<supply_name>/charge_control_start_threshold
Date:		April 2019
Contact:	linux-pm@vger.kernel.org
Description:
		Represents a battery percentage level, below which charging will
		begin.

		Access: Read, Write
		Valid values: 0 - 100 (percent)

What:		/sys/class/power_supply/<supply_name>/charge_control_end_threshold
Date:		April 2019
Contact:	linux-pm@vger.kernel.org
Description:
		Represents a battery percentage level, above which charging will
		stop. Not all hardware is capable of setting this to an arbitrary
		percentage. Drivers will round written values to the nearest
		supported value. Reading back the value will show the actual
		threshold set by the driver.

		Access: Read, Write

		Valid values: 0 - 100 (percent)

What:		/sys/class/power_supply/<supply_name>/charge_type
Date:		July 2009
Contact:	linux-pm@vger.kernel.org
Description:
		Select the charging algorithm to use for a battery.

		Standard:
			Fully charge the battery at a moderate rate.
		Fast:
			Quickly charge the battery using fast-charge
			technology. This is typically harder on the battery
			than standard charging and may lower its lifespan.
		Trickle:
			Users who primarily operate the system while
			plugged into an external power source can extend
			battery life with this mode. Vendor tooling may
			call this "Primarily AC Use".
		Adaptive:
			Automatically optimize battery charge rate based
			on typical usage pattern.
		Custom:
			Use the charge_control_* properties to determine
			when to start and stop charging. Advanced users
			can use this to drastically extend battery life.
		Long Life:
			The charger reduces its charging rate in order to
			prolong the battery health.
		Bypass:
			The charger bypasses the charging path around the
			integrated converter allowing for a "smart" wall
			adaptor to perform the power conversion externally.

		Access: Read, Write

		Reading this returns the current active value, e.g. 'Standard'.
		Check charge_types to get the values supported by the battery.

		Valid values:
			      "Unknown", "N/A", "Trickle", "Fast", "Standard",
			      "Adaptive", "Custom", "Long Life", "Bypass"

What:		/sys/class/power_supply/<supply_name>/charge_types
Date:		December 2024
Contact:	linux-pm@vger.kernel.org
Description:
		Identical to charge_type but reading returns a list of supported
		charge-types with the currently active type surrounded by square
		brackets, e.g.: "Fast [Standard] Long_Life".

		power_supply class devices may support both charge_type and
		charge_types for backward compatibility. In this case both will
		always have the same active value and the active value can be
		changed by writing either property.

		Note charge-types which contain a space such as "Long Life" will
		have the space replaced by a '_' resulting in e.g. "Long_Life".
		When writing charge-types both variants are accepted.

What:		/sys/class/power_supply/<supply_name>/charge_term_current
Date:		July 2014
Contact:	linux-pm@vger.kernel.org
Description:
		Reports the charging current value which is used to determine
		when the battery is considered full and charging should end.

		Access: Read

		Valid values: Represented in microamps

What:		/sys/class/power_supply/<supply_name>/health
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Reports the health of the battery or battery side of charger
		functionality.

		Access: Read

		Valid values:
			      "Unknown", "Good", "Overheat", "Dead",
			      "Over voltage", "Under voltage", "Unspecified failure", "Cold",
			      "Watchdog timer expire", "Safety timer expire",
			      "Over current", "Calibration required", "Warm",
			      "Cool", "Hot", "No battery", "Blown fuse", "Cell imbalance"

What:		/sys/class/power_supply/<supply_name>/precharge_current
Date:		June 2017
Contact:	linux-pm@vger.kernel.org
Description:
		Reports the charging current applied during pre-charging phase
		for a battery charge cycle.

		Access: Read

		Valid values: Represented in microamps

What:		/sys/class/power_supply/<supply_name>/present
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Reports whether a battery is present or not in the system. If the
		property does not exist, the battery is considered to be present.

		Access: Read

		Valid values:

			== =======
			0: Absent
			1: Present
			== =======

What:		/sys/class/power_supply/<supply_name>/status
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Represents the charging status of the battery. Normally this
		is read-only reporting although for some supplies this can be
		used to enable/disable charging to the battery.

		Access: Read, Write

		Valid values:
			      "Unknown", "Charging", "Discharging",
			      "Not charging", "Full"

What:		/sys/class/power_supply/<supply_name>/charge_behaviour
Date:		November 2021
Contact:	linux-pm@vger.kernel.org
Description:
		Represents the charging behaviour.

		Access: Read, Write

		Valid values:
			===================== ========================================
			auto:                 Charge normally, respect thresholds
			inhibit-charge:       Do not charge while AC is attached
			inhibit-charge-awake: inhibit-charge only when device is awake
			force-discharge:      Force discharge while AC is attached
			===================== ========================================

What:		/sys/class/power_supply/<supply_name>/technology
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Describes the battery technology supported by the supply.

		Access: Read

		Valid values:
			      "Unknown", "NiMH", "Li-ion", "Li-poly", "LiFe",
			      "NiCd", "LiMn"


What:		/sys/class/power_supply/<supply_name>/voltage_avg,
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Reports an average VBAT voltage reading for the battery, over a
		fixed period. Normally devices will provide a fixed interval in
		which they average readings to smooth out the reported value.

		Access: Read

		Valid values: Represented in microvolts

What:		/sys/class/power_supply/<supply_name>/cycle_count
Date:		January 2010
Contact:	linux-pm@vger.kernel.org
Description:
		Reports the number of full charge + discharge cycles the
		battery has undergone.

		Access: Read

		Valid values:
			Integer > 0: representing full cycles
			Integer = 0: cycle_count info is not available

What:		/sys/class/power_supply/<supply_name>/internal_resistance
Date:		August 2025
Contact:	linux-arm-msm@vger.kernel.org
Description:
		Represent the battery's internal resistance, often referred
		to as Equivalent Series Resistance (ESR). It is a dynamic
		parameter that reflects the opposition to current flow within
		the cell. It is not a fixed value but varies significantly
		based on several operational conditions, including battery
		state of charge (SoC), temperature, and whether the battery
		is in a charging or discharging state.

		Access: Read

		Valid values: Represented in microohms

What:		/sys/class/power_supply/<supply_name>/state_of_health
Date:		August 2025
Contact:	linux-arm-msm@vger.kernel.org
Description:
		The state_of_health parameter quantifies the overall condition
		of a battery as a percentage, reflecting its ability to deliver
		rated performance relative to its original specifications. It is
		dynamically computed using a combination of learned capacity
		and impedance-based degradation indicators, both of which evolve
		over the battery's lifecycle.
		Note that the exact algorithms are kept secret by most battery
		vendors and the value from different battery vendors cannot be
		compared with each other as there is no vendor-agnostic definition
		of "performance". Also this usually cannot be used for any
		calculations (i.e. this is not the factor between charge_full and
		charge_full_design).

		Access: Read

		Valid values: 0 - 100 (percent)

**USB Properties**

What:		/sys/class/power_supply/<supply_name>/input_current_limit
Date:		July 2014
Contact:	linux-pm@vger.kernel.org
Description:
		Details the incoming IBUS current limit currently set in the
		supply. Normally this is configured based on the type of
		connection made (e.g. A configured SDP should output a maximum
		of 500mA so the input current limit is set to the same value).
		Use preferably input_power_limit, and for problems that can be
		solved using power limit use input_current_limit.

		Access: Read, Write

		Valid values: Represented in microamps

What:		/sys/class/power_supply/<supply_name>/input_voltage_limit
Date:		May 2019
Contact:	linux-pm@vger.kernel.org
Description:
		This entry configures the incoming VBUS voltage limit currently
		set in the supply. Normally this is configured based on
		system-level knowledge or user input (e.g. This is part of the
		Pixel C's thermal management strategy to effectively limit the
		input power to 5V when the screen is on to meet Google's skin
		temperature targets). Note that this feature should not be
		used for safety critical things.
		Use preferably input_power_limit, and for problems that can be
		solved using power limit use input_voltage_limit.

		Access: Read, Write

		Valid values: Represented in microvolts

What:		/sys/class/power_supply/<supply_name>/input_power_limit
Date:		May 2019
Contact:	linux-pm@vger.kernel.org
Description:
		This entry configures the incoming power limit currently set
		in the supply. Normally this is configured based on
		system-level knowledge or user input. Use preferably this
		feature to limit the incoming power and use current/voltage
		limit only for problems that can be solved using power limit.

		Access: Read, Write

		Valid values: Represented in microwatts

What:		/sys/class/power_supply/<supply_name>/online,
Date:		May 2007
Contact:	linux-pm@vger.kernel.org
Description:
		Indicates if VBUS is present for the supply. When the supply is
		online, and the supply allows it, then it's possible to switch
		between online states (e.g. Fixed -> Programmable for a PD_PPS
		USB supply so voltage and current can be controlled).

		Access: Read, Write

		Valid values:

			== ==================================================
			0: Offline
			1: Online Fixed - Fixed Voltage Supply
			2: Online Programmable - Programmable Voltage Supply
			== ==================================================

What: 		/sys/class/power_supply/<supply_name>/usb_type
Date:		March 2018
Contact:	linux-pm@vger.kernel.org
Description:
		Reports what type of USB connection is currently active for
		the supply, for example it can show if USB-PD capable source
		is attached.

		Access: For power-supplies which consume USB power such
		as battery charger chips, this indicates the type of
		the connected USB power source and is Read-Only.

		For power-supplies which act as a USB power-source such as
		e.g. the UCS1002 USB Port Power Controller this is writable.

		Valid values:
			      "Unknown", "SDP", "DCP", "CDP", "ACA", "C", "PD",
			      "PD_DRP", "PD_PPS", "BrickID", "PD_SPR_AVS",
			      "PD_PPS_SPR_AVS"

**Device Specific Properties**

What:		/sys/class/power/ds2760-battery.*/charge_now
Date:		May 2010
KernelVersion:	2.6.35
Contact:	Daniel Mack <daniel@caiaq.de>
Description:
		This file is writeable and can be used to set the current
		coloumb counter value inside the battery monitor chip. This
		is needed for unavoidable corrections of aging batteries.
		A userspace daemon can monitor the battery charging logic
		and once the counter drops out of considerable bounds, take
		appropriate action.

What:		/sys/class/power/ds2760-battery.*/charge_full
Date:		May 2010
KernelVersion:	2.6.35
Contact:	Daniel Mack <daniel@caiaq.de>
Description:
		This file is writeable and can be used to set the assumed
		battery 'full level'. As batteries age, this value has to be
		amended over time.

What:		/sys/class/power_supply/max14577-charger/device/fast_charge_timer
Date:		October 2014
KernelVersion:	3.18.0
Contact:	Krzysztof Kozlowski <krzk@kernel.org>
Description:
		This entry shows and sets the maximum time the max14577
		charger operates in fast-charge mode. When the timer expires
		the device will terminate fast-charge mode (charging current
		will drop to 0 A) and will trigger interrupt.

		Valid values:

		- 5, 6 or 7 (hours),
		- 0: disabled.

What:		/sys/class/power_supply/max77693-charger/device/fast_charge_timer
Date:		January 2015
KernelVersion:	3.19.0
Contact:	Krzysztof Kozlowski <krzk@kernel.org>
Description:
		This entry shows and sets the maximum time the max77693
		charger operates in fast-charge mode. When the timer expires
		the device will terminate fast-charge mode (charging current
		will drop to 0 A) and will trigger interrupt.

		Valid values:

		- 4 - 16 (hours), step by 2 (rounded down)
		- 0: disabled.

What:		/sys/class/power_supply/max77693-charger/device/top_off_threshold_current
Date:		January 2015
KernelVersion:	3.19.0
Contact:	Krzysztof Kozlowski <krzk@kernel.org>
Description:
		This entry shows and sets the charging current threshold for
		entering top-off charging mode. When charging current in fast
		charge mode drops below this value, the charger will trigger
		interrupt and start top-off charging mode.

		Valid values:

		- 100000 - 200000 (microamps), step by 25000 (rounded down)
		- 200000 - 350000 (microamps), step by 50000 (rounded down)
		- 0: disabled.

What:		/sys/class/power_supply/max77693-charger/device/top_off_timer
Date:		January 2015
KernelVersion:	3.19.0
Contact:	Krzysztof Kozlowski <krzk@kernel.org>
Description:
		This entry shows and sets the maximum time the max77693
		charger operates in top-off charge mode. When the timer expires
		the device will terminate top-off charge mode (charging current
		will drop to 0 A) and will trigger interrupt.

		Valid values:

		- 0 - 70 (minutes), step by 10 (rounded down)

What:		/sys/class/power_supply/bq24257-charger/ovp_voltage
Date:		October 2015
KernelVersion:	4.4.0
Contact:	Andreas Dannenberg <dannenberg@ti.com>
Description:
		This entry configures the overvoltage protection feature of bq24257-
		type charger devices. This feature protects the device and other
		components against damage from overvoltage on the input supply. See
		device datasheet for details.

		Valid values:

		- 6000000, 6500000, 7000000, 8000000, 9000000, 9500000, 10000000,
		  10500000 (all uV)

What:		/sys/class/power_supply/bq24257-charger/in_dpm_voltage
Date:		October 2015
KernelVersion:	4.4.0
Contact:	Andreas Dannenberg <dannenberg@ti.com>
Description:
		This entry configures the input dynamic power path management voltage of
		bq24257-type charger devices. Once the supply drops to the configured
		voltage, the input current limit is reduced down to prevent the further
		drop of the supply. When the IC enters this mode, the charge current is
		lower than the set value. See device datasheet for details.

		Valid values:

		- 4200000, 4280000, 4360000, 4440000, 4520000, 4600000, 4680000,
		  4760000 (all uV)

What:		/sys/class/power_supply/bq24257-charger/high_impedance_enable
Date:		October 2015
KernelVersion:	4.4.0
Contact:	Andreas Dannenberg <dannenberg@ti.com>
Description:
		This entry allows enabling the high-impedance mode of bq24257-type
		charger devices. If enabled, it places the charger IC into low power
		standby mode with the switch mode controller disabled. When disabled,
		the charger operates normally. See device datasheet for details.

		Valid values:

		- 1: enabled
		- 0: disabled

What:		/sys/class/power_supply/bq24257-charger/sysoff_enable
Date:		October 2015
KernelVersion:	4.4.0
Contact:	Andreas Dannenberg <dannenberg@ti.com>
Description:
		This entry allows enabling the sysoff mode of bq24257-type charger
		devices. If enabled and the input is removed, the internal battery FET
		is turned off in order to reduce the leakage from the BAT pin to less
		than 1uA. Note that on some devices/systems this disconnects the battery
		from the system. See device datasheet for details.

		Valid values:

		- 1: enabled
		- 0: disabled

What:		/sys/class/power_supply/<supply_name>/manufacture_year
Date:		January 2020
Contact:	linux-pm@vger.kernel.org
Description:
		Reports the year (following Gregorian calendar) when the device has been
		manufactured.

		Access: Read

		Valid values: Reported as integer

What:		/sys/class/power_supply/<supply_name>/manufacture_month
Date:		January 2020
Contact:	linux-pm@vger.kernel.org
Description:
		Reports the month when the device has been manufactured.

		Access: Read

		Valid values: 1-12

What:		/sys/class/power_supply/<supply_name>/manufacture_day
Date:		January 2020
Contact:	linux-pm@vger.kernel.org
Description:
		Reports the day of month when the device has been manufactured.

		Access: Read
		Valid values: 1-31

What:		/sys/class/power_supply/<supply_name>/extensions/<extension_name>
Date:		March 2025
Contact:	linux-pm@vger.kernel.org
Description:
		Reports the extensions registered to the power supply.
		Each entry is a link to the device which registered the extension.

		Access: Read

What:		/sys/class/power_supply/max8971-charger/fast_charge_timer
Date:		May 2025
KernelVersion:	6.15.0
Contact:	Svyatoslav Ryhel <clamor95@gmail.com>
Description:
		This entry shows and sets the maximum time the max8971
		charger operates in fast-charge mode. When the timer expires
		the device will terminate fast-charge mode (charging current
		will drop to 0 A) and will trigger interrupt.

		Valid values:

		- 4 - 10 (hours), step by 1
		- 0: disabled.

What:		/sys/class/power_supply/max8971-charger/top_off_threshold_current
Date:		May 2025
KernelVersion:	6.15.0
Contact:	Svyatoslav Ryhel <clamor95@gmail.com>
Description:
		This entry shows and sets the charging current threshold for
		entering top-off charging mode. When charging current in fast
		charge mode drops below this value, the charger will trigger
		interrupt and start top-off charging mode.

		Valid values:

		- 50000 - 200000 (microamps), step by 50000 (rounded down)

What:		/sys/class/power_supply/max8971-charger/top_off_timer
Date:		May 2025
KernelVersion:	6.15.0
Contact:	Svyatoslav Ryhel <clamor95@gmail.com>
Description:
		This entry shows and sets the maximum time the max8971
		charger operates in top-off charge mode. When the timer expires
		the device will terminate top-off charge mode (charging current
		will drop to 0 A) and will trigger interrupt.

		Valid values:

		- 0 - 70 (minutes), step by 10 (rounded down)
