3 What: /sys/class/power_supply/<supply_name>/manufacturer
5 Contact: linux-pm@vger.kernel.org
7 Reports the name of the device manufacturer.
10 Valid values: Represented as string
12 What: /sys/class/power_supply/<supply_name>/model_name
14 Contact: linux-pm@vger.kernel.org
16 Reports the name of the device model.
19 Valid values: Represented as string
21 What: /sys/class/power_supply/<supply_name>/serial_number
23 Contact: linux-pm@vger.kernel.org
25 Reports the serial number of the device.
28 Valid values: Represented as string
30 What: /sys/class/power_supply/<supply_name>/type
32 Contact: linux-pm@vger.kernel.org
34 Describes the main type of the supply.
37 Valid values: "Battery", "UPS", "Mains", "USB", "Wireless"
39 **Battery and USB properties**
41 What: /sys/class/power_supply/<supply_name>/current_avg
43 Contact: linux-pm@vger.kernel.org
47 Reports an average IBAT current reading for the battery, over
48 a fixed period. Normally devices will provide a fixed interval
49 in which they average readings to smooth out the reported
54 Reports an average IBUS current reading over a fixed period.
55 Normally devices will provide a fixed interval in which they
56 average readings to smooth out the reported value.
60 Valid values: Represented in microamps. Negative values are
61 used for discharging batteries, positive values for charging
62 batteries and for USB IBUS current.
64 What: /sys/class/power_supply/<supply_name>/current_max
66 Contact: linux-pm@vger.kernel.org
70 Reports the maximum IBAT current allowed into the battery.
74 Reports the maximum IBUS current the supply can support.
77 Valid values: Represented in microamps
79 What: /sys/class/power_supply/<supply_name>/current_now
81 Contact: linux-pm@vger.kernel.org
86 Reports an instant, single IBAT current reading for the
87 battery. This value is not averaged/smoothed.
93 Reports the IBUS current supplied now. This value is generally
94 read-only reporting, unless the 'online' state of the supply
95 is set to be programmable, in which case this value can be set
96 within the reported min/max range.
100 Valid values: Represented in microamps. Negative values are
101 used for discharging batteries, positive values for charging
102 batteries and for USB IBUS current.
104 What: /sys/class/power_supply/<supply_name>/temp
106 Contact: linux-pm@vger.kernel.org
110 Reports the current TBAT battery temperature reading.
114 Reports the current supply temperature reading. This would
115 normally be the internal temperature of the device itself
116 (e.g TJUNC temperature of an IC)
120 Valid values: Represented in 1/10 Degrees Celsius
122 What: /sys/class/power_supply/<supply_name>/temp_alert_max
124 Contact: linux-pm@vger.kernel.org
128 Maximum TBAT temperature trip-wire value where the supply will
129 notify user-space of the event.
133 Maximum supply temperature trip-wire value where the supply
134 will notify user-space of the event.
136 This is normally used for the charging scenario where
137 user-space needs to know if the temperature has crossed an
138 upper threshold so it can take appropriate action (e.g. warning
139 user that the temperature is critically high, and charging has
144 Valid values: Represented in 1/10 Degrees Celsius
146 What: /sys/class/power_supply/<supply_name>/temp_alert_min
148 Contact: linux-pm@vger.kernel.org
153 Minimum TBAT temperature trip-wire value where the supply will
154 notify user-space of the event.
158 Minimum supply temperature trip-wire value where the supply
159 will notify user-space of the event.
161 This is normally used for the charging scenario where user-space
162 needs to know if the temperature has crossed a lower threshold
163 so it can take appropriate action (e.g. warning user that
164 temperature level is high, and charging current has been
165 reduced accordingly to remedy the situation).
169 Valid values: Represented in 1/10 Degrees Celsius
171 What: /sys/class/power_supply/<supply_name>/temp_max
173 Contact: linux-pm@vger.kernel.org
177 Reports the maximum allowed TBAT battery temperature for
182 Reports the maximum allowed supply temperature for operation.
186 Valid values: Represented in 1/10 Degrees Celsius
188 What: /sys/class/power_supply/<supply_name>/temp_min
190 Contact: linux-pm@vger.kernel.org
194 Reports the minimum allowed TBAT battery temperature for
199 Reports the minimum allowed supply temperature for operation.
203 Valid values: Represented in 1/10 Degrees Celsius
205 What: /sys/class/power_supply/<supply_name>/voltage_max,
207 Contact: linux-pm@vger.kernel.org
211 Reports the maximum safe VBAT voltage permitted for the
212 battery, during charging.
216 Reports the maximum VBUS voltage the supply can support.
220 Valid values: Represented in microvolts
222 What: /sys/class/power_supply/<supply_name>/voltage_min,
224 Contact: linux-pm@vger.kernel.org
228 Reports the minimum safe VBAT voltage permitted for the
229 battery, during discharging.
233 Reports the minimum VBUS voltage the supply can support.
237 Valid values: Represented in microvolts
239 What: /sys/class/power_supply/<supply_name>/voltage_now,
241 Contact: linux-pm@vger.kernel.org
245 Reports an instant, single VBAT voltage reading for the
246 battery. This value is not averaged/smoothed.
252 Reports the VBUS voltage supplied now. This value is generally
253 read-only reporting, unless the 'online' state of the supply
254 is set to be programmable, in which case this value can be set
255 within the reported min/max range.
259 Valid values: Represented in microvolts
261 **Battery Properties**
263 What: /sys/class/power_supply/<supply_name>/capacity
265 Contact: linux-pm@vger.kernel.org
267 Fine grain representation of battery capacity.
271 Valid values: 0 - 100 (percent)
273 What: /sys/class/power_supply/<supply_name>/capacity_alert_max
275 Contact: linux-pm@vger.kernel.org
277 Maximum battery capacity trip-wire value where the supply will
278 notify user-space of the event. This is normally used for the
279 battery discharging scenario where user-space needs to know the
280 battery has dropped to an upper level so it can take
281 appropriate action (e.g. warning user that battery level is
286 Valid values: 0 - 100 (percent)
288 What: /sys/class/power_supply/<supply_name>/capacity_alert_min
290 Contact: linux-pm@vger.kernel.org
292 Minimum battery capacity trip-wire value where the supply will
293 notify user-space of the event. This is normally used for the
294 battery discharging scenario where user-space needs to know the
295 battery has dropped to a lower level so it can take
296 appropriate action (e.g. warning user that battery level is
301 Valid values: 0 - 100 (percent)
303 What: /sys/class/power_supply/<supply_name>/capacity_error_margin
305 Contact: linux-pm@vger.kernel.org
307 Battery capacity measurement becomes unreliable without
308 recalibration. This values provides the maximum error
309 margin expected to exist by the fuel gauge in percent.
310 Values close to 0% will be returned after (re-)calibration
311 has happened. Over time the error margin will increase.
312 100% means, that the capacity related values are basically
317 Valid values: 0 - 100 (percent)
319 What: /sys/class/power_supply/<supply_name>/capacity_level
321 Contact: linux-pm@vger.kernel.org
323 Coarse representation of battery capacity.
328 "Unknown", "Critical", "Low", "Normal", "High",
331 What: /sys/class/power_supply/<supply_name>/charge_control_limit
333 Contact: linux-pm@vger.kernel.org
335 Maximum allowable charging current. Used for charge rate
336 throttling for thermal cooling or improving battery health.
340 Valid values: Represented in microamps
342 What: /sys/class/power_supply/<supply_name>/charge_control_limit_max
344 Contact: linux-pm@vger.kernel.org
346 Maximum legal value for the charge_control_limit property.
350 Valid values: Represented in microamps
352 What: /sys/class/power_supply/<supply_name>/charge_control_start_threshold
354 Contact: linux-pm@vger.kernel.org
356 Represents a battery percentage level, below which charging will
360 Valid values: 0 - 100 (percent)
362 What: /sys/class/power_supply/<supply_name>/charge_control_end_threshold
364 Contact: linux-pm@vger.kernel.org
366 Represents a battery percentage level, above which charging will
367 stop. Not all hardware is capable of setting this to an arbitrary
368 percentage. Drivers will round written values to the nearest
369 supported value. Reading back the value will show the actual
370 threshold set by the driver.
374 Valid values: 0 - 100 (percent)
376 What: /sys/class/power_supply/<supply_name>/charge_type
378 Contact: linux-pm@vger.kernel.org
380 Select the charging algorithm to use for a battery.
383 Fully charge the battery at a moderate rate.
385 Quickly charge the battery using fast-charge
386 technology. This is typically harder on the battery
387 than standard charging and may lower its lifespan.
389 Users who primarily operate the system while
390 plugged into an external power source can extend
391 battery life with this mode. Vendor tooling may
392 call this "Primarily AC Use".
394 Automatically optimize battery charge rate based
395 on typical usage pattern.
397 Use the charge_control_* properties to determine
398 when to start and stop charging. Advanced users
399 can use this to drastically extend battery life.
401 The charger reduces its charging rate in order to
402 prolong the battery health.
404 The charger bypasses the charging path around the
405 integrated converter allowing for a "smart" wall
406 adaptor to perform the power conversion externally.
410 Reading this returns the current active value, e.g. 'Standard'.
411 Check charge_types to get the values supported by the battery.
414 "Unknown", "N/A", "Trickle", "Fast", "Standard",
415 "Adaptive", "Custom", "Long Life", "Bypass"
417 What: /sys/class/power_supply/<supply_name>/charge_types
419 Contact: linux-pm@vger.kernel.org
421 Identical to charge_type but reading returns a list of supported
422 charge-types with the currently active type surrounded by square
423 brackets, e.g.: "Fast [Standard] Long_Life".
425 power_supply class devices may support both charge_type and
426 charge_types for backward compatibility. In this case both will
427 always have the same active value and the active value can be
428 changed by writing either property.
430 Note charge-types which contain a space such as "Long Life" will
431 have the space replaced by a '_' resulting in e.g. "Long_Life".
432 When writing charge-types both variants are accepted.
434 What: /sys/class/power_supply/<supply_name>/charge_term_current
436 Contact: linux-pm@vger.kernel.org
438 Reports the charging current value which is used to determine
439 when the battery is considered full and charging should end.
443 Valid values: Represented in microamps
445 What: /sys/class/power_supply/<supply_name>/health
447 Contact: linux-pm@vger.kernel.org
449 Reports the health of the battery or battery side of charger
455 "Unknown", "Good", "Overheat", "Dead",
456 "Over voltage", "Under voltage", "Unspecified failure", "Cold",
457 "Watchdog timer expire", "Safety timer expire",
458 "Over current", "Calibration required", "Warm",
459 "Cool", "Hot", "No battery"
461 What: /sys/class/power_supply/<supply_name>/precharge_current
463 Contact: linux-pm@vger.kernel.org
465 Reports the charging current applied during pre-charging phase
466 for a battery charge cycle.
470 Valid values: Represented in microamps
472 What: /sys/class/power_supply/<supply_name>/present
474 Contact: linux-pm@vger.kernel.org
476 Reports whether a battery is present or not in the system. If the
477 property does not exist, the battery is considered to be present.
488 What: /sys/class/power_supply/<supply_name>/status
490 Contact: linux-pm@vger.kernel.org
492 Represents the charging status of the battery. Normally this
493 is read-only reporting although for some supplies this can be
494 used to enable/disable charging to the battery.
499 "Unknown", "Charging", "Discharging",
500 "Not charging", "Full"
502 What: /sys/class/power_supply/<supply_name>/charge_behaviour
504 Contact: linux-pm@vger.kernel.org
506 Represents the charging behaviour.
511 ================ ====================================
512 auto: Charge normally, respect thresholds
513 inhibit-charge: Do not charge while AC is attached
514 force-discharge: Force discharge while AC is attached
515 ================ ====================================
517 What: /sys/class/power_supply/<supply_name>/technology
519 Contact: linux-pm@vger.kernel.org
521 Describes the battery technology supported by the supply.
526 "Unknown", "NiMH", "Li-ion", "Li-poly", "LiFe",
530 What: /sys/class/power_supply/<supply_name>/voltage_avg,
532 Contact: linux-pm@vger.kernel.org
534 Reports an average VBAT voltage reading for the battery, over a
535 fixed period. Normally devices will provide a fixed interval in
536 which they average readings to smooth out the reported value.
540 Valid values: Represented in microvolts
542 What: /sys/class/power_supply/<supply_name>/cycle_count
544 Contact: linux-pm@vger.kernel.org
546 Reports the number of full charge + discharge cycles the
547 battery has undergone.
552 Integer > 0: representing full cycles
553 Integer = 0: cycle_count info is not available
557 What: /sys/class/power_supply/<supply_name>/input_current_limit
559 Contact: linux-pm@vger.kernel.org
561 Details the incoming IBUS current limit currently set in the
562 supply. Normally this is configured based on the type of
563 connection made (e.g. A configured SDP should output a maximum
564 of 500mA so the input current limit is set to the same value).
565 Use preferably input_power_limit, and for problems that can be
566 solved using power limit use input_current_limit.
570 Valid values: Represented in microamps
572 What: /sys/class/power_supply/<supply_name>/input_voltage_limit
574 Contact: linux-pm@vger.kernel.org
576 This entry configures the incoming VBUS voltage limit currently
577 set in the supply. Normally this is configured based on
578 system-level knowledge or user input (e.g. This is part of the
579 Pixel C's thermal management strategy to effectively limit the
580 input power to 5V when the screen is on to meet Google's skin
581 temperature targets). Note that this feature should not be
582 used for safety critical things.
583 Use preferably input_power_limit, and for problems that can be
584 solved using power limit use input_voltage_limit.
588 Valid values: Represented in microvolts
590 What: /sys/class/power_supply/<supply_name>/input_power_limit
592 Contact: linux-pm@vger.kernel.org
594 This entry configures the incoming power limit currently set
595 in the supply. Normally this is configured based on
596 system-level knowledge or user input. Use preferably this
597 feature to limit the incoming power and use current/voltage
598 limit only for problems that can be solved using power limit.
602 Valid values: Represented in microwatts
604 What: /sys/class/power_supply/<supply_name>/online,
606 Contact: linux-pm@vger.kernel.org
608 Indicates if VBUS is present for the supply. When the supply is
609 online, and the supply allows it, then it's possible to switch
610 between online states (e.g. Fixed -> Programmable for a PD_PPS
611 USB supply so voltage and current can be controlled).
617 == ==================================================
619 1: Online Fixed - Fixed Voltage Supply
620 2: Online Programmable - Programmable Voltage Supply
621 == ==================================================
623 What: /sys/class/power_supply/<supply_name>/usb_type
625 Contact: linux-pm@vger.kernel.org
627 Reports what type of USB connection is currently active for
628 the supply, for example it can show if USB-PD capable source
631 Access: For power-supplies which consume USB power such
632 as battery charger chips, this indicates the type of
633 the connected USB power source and is Read-Only.
635 For power-supplies which act as a USB power-source such as
636 e.g. the UCS1002 USB Port Power Controller this is writable.
639 "Unknown", "SDP", "DCP", "CDP", "ACA", "C", "PD",
640 "PD_DRP", "PD_PPS", "BrickID"
642 **Device Specific Properties**
644 What: /sys/class/power/ds2760-battery.*/charge_now
646 KernelVersion: 2.6.35
647 Contact: Daniel Mack <daniel@caiaq.de>
649 This file is writeable and can be used to set the current
650 coloumb counter value inside the battery monitor chip. This
651 is needed for unavoidable corrections of aging batteries.
652 A userspace daemon can monitor the battery charging logic
653 and once the counter drops out of considerable bounds, take
656 What: /sys/class/power/ds2760-battery.*/charge_full
658 KernelVersion: 2.6.35
659 Contact: Daniel Mack <daniel@caiaq.de>
661 This file is writeable and can be used to set the assumed
662 battery 'full level'. As batteries age, this value has to be
665 What: /sys/class/power_supply/max14577-charger/device/fast_charge_timer
667 KernelVersion: 3.18.0
668 Contact: Krzysztof Kozlowski <krzk@kernel.org>
670 This entry shows and sets the maximum time the max14577
671 charger operates in fast-charge mode. When the timer expires
672 the device will terminate fast-charge mode (charging current
673 will drop to 0 A) and will trigger interrupt.
680 What: /sys/class/power_supply/max77693-charger/device/fast_charge_timer
682 KernelVersion: 3.19.0
683 Contact: Krzysztof Kozlowski <krzk@kernel.org>
685 This entry shows and sets the maximum time the max77693
686 charger operates in fast-charge mode. When the timer expires
687 the device will terminate fast-charge mode (charging current
688 will drop to 0 A) and will trigger interrupt.
692 - 4 - 16 (hours), step by 2 (rounded down)
695 What: /sys/class/power_supply/max77693-charger/device/top_off_threshold_current
697 KernelVersion: 3.19.0
698 Contact: Krzysztof Kozlowski <krzk@kernel.org>
700 This entry shows and sets the charging current threshold for
701 entering top-off charging mode. When charging current in fast
702 charge mode drops below this value, the charger will trigger
703 interrupt and start top-off charging mode.
707 - 100000 - 200000 (microamps), step by 25000 (rounded down)
708 - 200000 - 350000 (microamps), step by 50000 (rounded down)
711 What: /sys/class/power_supply/max77693-charger/device/top_off_timer
713 KernelVersion: 3.19.0
714 Contact: Krzysztof Kozlowski <krzk@kernel.org>
716 This entry shows and sets the maximum time the max77693
717 charger operates in top-off charge mode. When the timer expires
718 the device will terminate top-off charge mode (charging current
719 will drop to 0 A) and will trigger interrupt.
723 - 0 - 70 (minutes), step by 10 (rounded down)
725 What: /sys/class/power_supply/bq24257-charger/ovp_voltage
728 Contact: Andreas Dannenberg <dannenberg@ti.com>
730 This entry configures the overvoltage protection feature of bq24257-
731 type charger devices. This feature protects the device and other
732 components against damage from overvoltage on the input supply. See
733 device datasheet for details.
737 - 6000000, 6500000, 7000000, 8000000, 9000000, 9500000, 10000000,
740 What: /sys/class/power_supply/bq24257-charger/in_dpm_voltage
743 Contact: Andreas Dannenberg <dannenberg@ti.com>
745 This entry configures the input dynamic power path management voltage of
746 bq24257-type charger devices. Once the supply drops to the configured
747 voltage, the input current limit is reduced down to prevent the further
748 drop of the supply. When the IC enters this mode, the charge current is
749 lower than the set value. See device datasheet for details.
753 - 4200000, 4280000, 4360000, 4440000, 4520000, 4600000, 4680000,
756 What: /sys/class/power_supply/bq24257-charger/high_impedance_enable
759 Contact: Andreas Dannenberg <dannenberg@ti.com>
761 This entry allows enabling the high-impedance mode of bq24257-type
762 charger devices. If enabled, it places the charger IC into low power
763 standby mode with the switch mode controller disabled. When disabled,
764 the charger operates normally. See device datasheet for details.
771 What: /sys/class/power_supply/bq24257-charger/sysoff_enable
774 Contact: Andreas Dannenberg <dannenberg@ti.com>
776 This entry allows enabling the sysoff mode of bq24257-type charger
777 devices. If enabled and the input is removed, the internal battery FET
778 is turned off in order to reduce the leakage from the BAT pin to less
779 than 1uA. Note that on some devices/systems this disconnects the battery
780 from the system. See device datasheet for details.
787 What: /sys/class/power_supply/<supply_name>/manufacture_year
789 Contact: linux-pm@vger.kernel.org
791 Reports the year (following Gregorian calendar) when the device has been
796 Valid values: Reported as integer
798 What: /sys/class/power_supply/<supply_name>/manufacture_month
800 Contact: linux-pm@vger.kernel.org
802 Reports the month when the device has been manufactured.
808 What: /sys/class/power_supply/<supply_name>/manufacture_day
810 Contact: linux-pm@vger.kernel.org
812 Reports the day of month when the device has been manufactured.
817 What: /sys/class/power_supply/<supply_name>/extensions/<extension_name>
819 Contact: linux-pm@vger.kernel.org
821 Reports the extensions registered to the power supply.
822 Each entry is a link to the device which registered the extension.