1 ===== General Properties =====
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"
39 ===== Battery Properties =====
41 What: /sys/class/power_supply/<supply_name>/capacity
43 Contact: linux-pm@vger.kernel.org
45 Fine grain representation of battery capacity.
47 Valid values: 0 - 100 (percent)
49 What: /sys/class/power_supply/<supply_name>/capacity_alert_max
51 Contact: linux-pm@vger.kernel.org
53 Maximum battery capacity trip-wire value where the supply will
54 notify user-space of the event. This is normally used for the
55 battery discharging scenario where user-space needs to know the
56 battery has dropped to an upper level so it can take
57 appropriate action (e.g. warning user that battery level is
61 Valid values: 0 - 100 (percent)
63 What: /sys/class/power_supply/<supply_name>/capacity_alert_min
65 Contact: linux-pm@vger.kernel.org
67 Minimum battery capacity trip-wire value where the supply will
68 notify user-space of the event. This is normally used for the
69 battery discharging scenario where user-space needs to know the
70 battery has dropped to a lower level so it can take
71 appropriate action (e.g. warning user that battery level is
75 Valid values: 0 - 100 (percent)
77 What: /sys/class/power_supply/<supply_name>/capacity_error_margin
79 Contact: linux-pm@vger.kernel.org
81 Battery capacity measurement becomes unreliable without
82 recalibration. This values provides the maximum error
83 margin expected to exist by the fuel gauge in percent.
84 Values close to 0% will be returned after (re-)calibration
85 has happened. Over time the error margin will increase.
86 100% means, that the capacity related values are basically
90 Valid values: 0 - 100 (percent)
92 What: /sys/class/power_supply/<supply_name>/capacity_level
94 Contact: linux-pm@vger.kernel.org
96 Coarse representation of battery capacity.
99 Valid values: "Unknown", "Critical", "Low", "Normal", "High",
102 What: /sys/class/power_supply/<supply_name>/current_avg
104 Contact: linux-pm@vger.kernel.org
106 Reports an average IBAT current reading for the battery, over a
107 fixed period. Normally devices will provide a fixed interval in
108 which they average readings to smooth out the reported value.
111 Valid values: Represented in microamps
113 What: /sys/class/power_supply/<supply_name>/current_max
115 Contact: linux-pm@vger.kernel.org
117 Reports the maximum IBAT current allowed into the battery.
120 Valid values: Represented in microamps
122 What: /sys/class/power_supply/<supply_name>/current_now
124 Contact: linux-pm@vger.kernel.org
126 Reports an instant, single IBAT current reading for the battery.
127 This value is not averaged/smoothed.
130 Valid values: Represented in microamps
132 What: /sys/class/power_supply/<supply_name>/charge_control_limit
134 Contact: linux-pm@vger.kernel.org
136 Maximum allowable charging current. Used for charge rate
137 throttling for thermal cooling or improving battery health.
140 Valid values: Represented in microamps
142 What: /sys/class/power_supply/<supply_name>/charge_control_limit_max
144 Contact: linux-pm@vger.kernel.org
146 Maximum legal value for the charge_control_limit property.
149 Valid values: Represented in microamps
151 What: /sys/class/power_supply/<supply_name>/charge_control_start_threshold
153 Contact: linux-pm@vger.kernel.org
155 Represents a battery percentage level, below which charging will
159 Valid values: 0 - 100 (percent)
161 What: /sys/class/power_supply/<supply_name>/charge_control_end_threshold
163 Contact: linux-pm@vger.kernel.org
165 Represents a battery percentage level, above which charging will
169 Valid values: 0 - 100 (percent)
171 What: /sys/class/power_supply/<supply_name>/charge_type
173 Contact: linux-pm@vger.kernel.org
175 Represents the type of charging currently being applied to the
176 battery. "Trickle", "Fast", and "Standard" all mean different
177 charging speeds. "Adaptive" means that the charger uses some
178 algorithm to adjust the charge rate dynamically, without
179 any user configuration required. "Custom" means that the charger
180 uses the charge_control_* properties as configuration for some
184 Valid values: "Unknown", "N/A", "Trickle", "Fast", "Standard",
187 What: /sys/class/power_supply/<supply_name>/charge_term_current
189 Contact: linux-pm@vger.kernel.org
191 Reports the charging current value which is used to determine
192 when the battery is considered full and charging should end.
195 Valid values: Represented in microamps
197 What: /sys/class/power_supply/<supply_name>/health
199 Contact: linux-pm@vger.kernel.org
201 Reports the health of the battery or battery side of charger
205 Valid values: "Unknown", "Good", "Overheat", "Dead",
206 "Over voltage", "Unspecified failure", "Cold",
207 "Watchdog timer expire", "Safety timer expire",
208 "Over current", "Calibration required", "Warm",
211 What: /sys/class/power_supply/<supply_name>/precharge_current
213 Contact: linux-pm@vger.kernel.org
215 Reports the charging current applied during pre-charging phase
216 for a battery charge cycle.
219 Valid values: Represented in microamps
221 What: /sys/class/power_supply/<supply_name>/present
223 Contact: linux-pm@vger.kernel.org
225 Reports whether a battery is present or not in the system.
232 What: /sys/class/power_supply/<supply_name>/status
234 Contact: linux-pm@vger.kernel.org
236 Represents the charging status of the battery. Normally this
237 is read-only reporting although for some supplies this can be
238 used to enable/disable charging to the battery.
241 Valid values: "Unknown", "Charging", "Discharging",
242 "Not charging", "Full"
244 What: /sys/class/power_supply/<supply_name>/technology
246 Contact: linux-pm@vger.kernel.org
248 Describes the battery technology supported by the supply.
251 Valid values: "Unknown", "NiMH", "Li-ion", "Li-poly", "LiFe",
254 What: /sys/class/power_supply/<supply_name>/temp
256 Contact: linux-pm@vger.kernel.org
258 Reports the current TBAT battery temperature reading.
261 Valid values: Represented in 1/10 Degrees Celsius
263 What: /sys/class/power_supply/<supply_name>/temp_alert_max
265 Contact: linux-pm@vger.kernel.org
267 Maximum TBAT temperature trip-wire value where the supply will
268 notify user-space of the event. This is normally used for the
269 battery charging scenario where user-space needs to know the
270 battery temperature has crossed an upper threshold so it can
271 take appropriate action (e.g. warning user that battery level is
272 critically high, and charging has stopped).
275 Valid values: Represented in 1/10 Degrees Celsius
277 What: /sys/class/power_supply/<supply_name>/temp_alert_min
279 Contact: linux-pm@vger.kernel.org
281 Minimum TBAT temperature trip-wire value where the supply will
282 notify user-space of the event. This is normally used for the
283 battery charging scenario where user-space needs to know the
284 battery temperature has crossed a lower threshold so it can take
285 appropriate action (e.g. warning user that battery level is
286 high, and charging current has been reduced accordingly to
287 remedy the situation).
290 Valid values: Represented in 1/10 Degrees Celsius
292 What: /sys/class/power_supply/<supply_name>/temp_max
294 Contact: linux-pm@vger.kernel.org
296 Reports the maximum allowed TBAT battery temperature for
300 Valid values: Represented in 1/10 Degrees Celsius
302 What: /sys/class/power_supply/<supply_name>/temp_min
304 Contact: linux-pm@vger.kernel.org
306 Reports the minimum allowed TBAT battery temperature for
310 Valid values: Represented in 1/10 Degrees Celsius
312 What: /sys/class/power_supply/<supply_name>/voltage_avg,
314 Contact: linux-pm@vger.kernel.org
316 Reports an average VBAT voltage reading for the battery, over a
317 fixed period. Normally devices will provide a fixed interval in
318 which they average readings to smooth out the reported value.
321 Valid values: Represented in microvolts
323 What: /sys/class/power_supply/<supply_name>/voltage_max,
325 Contact: linux-pm@vger.kernel.org
327 Reports the maximum safe VBAT voltage permitted for the battery,
331 Valid values: Represented in microvolts
333 What: /sys/class/power_supply/<supply_name>/voltage_min,
335 Contact: linux-pm@vger.kernel.org
337 Reports the minimum safe VBAT voltage permitted for the battery,
341 Valid values: Represented in microvolts
343 What: /sys/class/power_supply/<supply_name>/voltage_now,
345 Contact: linux-pm@vger.kernel.org
347 Reports an instant, single VBAT voltage reading for the battery.
348 This value is not averaged/smoothed.
351 Valid values: Represented in microvolts
353 ===== USB Properties =====
355 What: /sys/class/power_supply/<supply_name>/current_avg
357 Contact: linux-pm@vger.kernel.org
359 Reports an average IBUS current reading over a fixed period.
360 Normally devices will provide a fixed interval in which they
361 average readings to smooth out the reported value.
364 Valid values: Represented in microamps
367 What: /sys/class/power_supply/<supply_name>/current_max
369 Contact: linux-pm@vger.kernel.org
371 Reports the maximum IBUS current the supply can support.
374 Valid values: Represented in microamps
376 What: /sys/class/power_supply/<supply_name>/current_now
378 Contact: linux-pm@vger.kernel.org
380 Reports the IBUS current supplied now. This value is generally
381 read-only reporting, unless the 'online' state of the supply
382 is set to be programmable, in which case this value can be set
383 within the reported min/max range.
386 Valid values: Represented in microamps
388 What: /sys/class/power_supply/<supply_name>/input_current_limit
390 Contact: linux-pm@vger.kernel.org
392 Details the incoming IBUS current limit currently set in the
393 supply. Normally this is configured based on the type of
394 connection made (e.g. A configured SDP should output a maximum
395 of 500mA so the input current limit is set to the same value).
396 Use preferably input_power_limit, and for problems that can be
397 solved using power limit use input_current_limit.
400 Valid values: Represented in microamps
402 What: /sys/class/power_supply/<supply_name>/input_voltage_limit
404 Contact: linux-pm@vger.kernel.org
406 This entry configures the incoming VBUS voltage limit currently
407 set in the supply. Normally this is configured based on
408 system-level knowledge or user input (e.g. This is part of the
409 Pixel C's thermal management strategy to effectively limit the
410 input power to 5V when the screen is on to meet Google's skin
411 temperature targets). Note that this feature should not be
412 used for safety critical things.
413 Use preferably input_power_limit, and for problems that can be
414 solved using power limit use input_voltage_limit.
417 Valid values: Represented in microvolts
419 What: /sys/class/power_supply/<supply_name>/input_power_limit
421 Contact: linux-pm@vger.kernel.org
423 This entry configures the incoming power limit currently set
424 in the supply. Normally this is configured based on
425 system-level knowledge or user input. Use preferably this
426 feature to limit the incoming power and use current/voltage
427 limit only for problems that can be solved using power limit.
430 Valid values: Represented in microwatts
432 What: /sys/class/power_supply/<supply_name>/online,
434 Contact: linux-pm@vger.kernel.org
436 Indicates if VBUS is present for the supply. When the supply is
437 online, and the supply allows it, then it's possible to switch
438 between online states (e.g. Fixed -> Programmable for a PD_PPS
439 USB supply so voltage and current can be controlled).
444 1: Online Fixed - Fixed Voltage Supply
445 2: Online Programmable - Programmable Voltage Supply
447 What: /sys/class/power_supply/<supply_name>/temp
449 Contact: linux-pm@vger.kernel.org
451 Reports the current supply temperature reading. This would
452 normally be the internal temperature of the device itself (e.g
453 TJUNC temperature of an IC)
456 Valid values: Represented in 1/10 Degrees Celsius
458 What: /sys/class/power_supply/<supply_name>/temp_alert_max
460 Contact: linux-pm@vger.kernel.org
462 Maximum supply temperature trip-wire value where the supply will
463 notify user-space of the event. This is normally used for the
464 charging scenario where user-space needs to know the supply
465 temperature has crossed an upper threshold so it can take
466 appropriate action (e.g. warning user that the supply
467 temperature is critically high, and charging has stopped to
468 remedy the situation).
471 Valid values: Represented in 1/10 Degrees Celsius
473 What: /sys/class/power_supply/<supply_name>/temp_alert_min
475 Contact: linux-pm@vger.kernel.org
477 Minimum supply temperature trip-wire value where the supply will
478 notify user-space of the event. This is normally used for the
479 charging scenario where user-space needs to know the supply
480 temperature has crossed a lower threshold so it can take
481 appropriate action (e.g. warning user that the supply
482 temperature is high, and charging current has been reduced
483 accordingly to remedy the situation).
486 Valid values: Represented in 1/10 Degrees Celsius
488 What: /sys/class/power_supply/<supply_name>/temp_max
490 Contact: linux-pm@vger.kernel.org
492 Reports the maximum allowed supply temperature for operation.
495 Valid values: Represented in 1/10 Degrees Celsius
497 What: /sys/class/power_supply/<supply_name>/temp_min
499 Contact: linux-pm@vger.kernel.org
501 Reports the mainimum allowed supply temperature for operation.
504 Valid values: Represented in 1/10 Degrees Celsius
506 What: /sys/class/power_supply/<supply_name>/usb_type
508 Contact: linux-pm@vger.kernel.org
510 Reports what type of USB connection is currently active for
511 the supply, for example it can show if USB-PD capable source
515 Valid values: "Unknown", "SDP", "DCP", "CDP", "ACA", "C", "PD",
516 "PD_DRP", "PD_PPS", "BrickID"
518 What: /sys/class/power_supply/<supply_name>/voltage_max
520 Contact: linux-pm@vger.kernel.org
522 Reports the maximum VBUS voltage the supply can support.
525 Valid values: Represented in microvolts
527 What: /sys/class/power_supply/<supply_name>/voltage_min
529 Contact: linux-pm@vger.kernel.org
531 Reports the minimum VBUS voltage the supply can support.
534 Valid values: Represented in microvolts
536 What: /sys/class/power_supply/<supply_name>/voltage_now
538 Contact: linux-pm@vger.kernel.org
540 Reports the VBUS voltage supplied now. This value is generally
541 read-only reporting, unless the 'online' state of the supply
542 is set to be programmable, in which case this value can be set
543 within the reported min/max range.
546 Valid values: Represented in microvolts
548 ===== Device Specific Properties =====
550 What: /sys/class/power/ds2760-battery.*/charge_now
552 KernelVersion: 2.6.35
553 Contact: Daniel Mack <daniel@caiaq.de>
555 This file is writeable and can be used to set the current
556 coloumb counter value inside the battery monitor chip. This
557 is needed for unavoidable corrections of aging batteries.
558 A userspace daemon can monitor the battery charging logic
559 and once the counter drops out of considerable bounds, take
562 What: /sys/class/power/ds2760-battery.*/charge_full
564 KernelVersion: 2.6.35
565 Contact: Daniel Mack <daniel@caiaq.de>
567 This file is writeable and can be used to set the assumed
568 battery 'full level'. As batteries age, this value has to be
571 What: /sys/class/power_supply/max14577-charger/device/fast_charge_timer
573 KernelVersion: 3.18.0
574 Contact: Krzysztof Kozlowski <krzk@kernel.org>
576 This entry shows and sets the maximum time the max14577
577 charger operates in fast-charge mode. When the timer expires
578 the device will terminate fast-charge mode (charging current
579 will drop to 0 A) and will trigger interrupt.
585 What: /sys/class/power_supply/max77693-charger/device/fast_charge_timer
587 KernelVersion: 3.19.0
588 Contact: Krzysztof Kozlowski <krzk@kernel.org>
590 This entry shows and sets the maximum time the max77693
591 charger operates in fast-charge mode. When the timer expires
592 the device will terminate fast-charge mode (charging current
593 will drop to 0 A) and will trigger interrupt.
596 - 4 - 16 (hours), step by 2 (rounded down)
599 What: /sys/class/power_supply/max77693-charger/device/top_off_threshold_current
601 KernelVersion: 3.19.0
602 Contact: Krzysztof Kozlowski <krzk@kernel.org>
604 This entry shows and sets the charging current threshold for
605 entering top-off charging mode. When charging current in fast
606 charge mode drops below this value, the charger will trigger
607 interrupt and start top-off charging mode.
610 - 100000 - 200000 (microamps), step by 25000 (rounded down)
611 - 200000 - 350000 (microamps), step by 50000 (rounded down)
614 What: /sys/class/power_supply/max77693-charger/device/top_off_timer
616 KernelVersion: 3.19.0
617 Contact: Krzysztof Kozlowski <krzk@kernel.org>
619 This entry shows and sets the maximum time the max77693
620 charger operates in top-off charge mode. When the timer expires
621 the device will terminate top-off charge mode (charging current
622 will drop to 0 A) and will trigger interrupt.
625 - 0 - 70 (minutes), step by 10 (rounded down)
627 What: /sys/class/power_supply/bq24257-charger/ovp_voltage
630 Contact: Andreas Dannenberg <dannenberg@ti.com>
632 This entry configures the overvoltage protection feature of bq24257-
633 type charger devices. This feature protects the device and other
634 components against damage from overvoltage on the input supply. See
635 device datasheet for details.
638 - 6000000, 6500000, 7000000, 8000000, 9000000, 9500000, 10000000,
641 What: /sys/class/power_supply/bq24257-charger/in_dpm_voltage
644 Contact: Andreas Dannenberg <dannenberg@ti.com>
646 This entry configures the input dynamic power path management voltage of
647 bq24257-type charger devices. Once the supply drops to the configured
648 voltage, the input current limit is reduced down to prevent the further
649 drop of the supply. When the IC enters this mode, the charge current is
650 lower than the set value. See device datasheet for details.
653 - 4200000, 4280000, 4360000, 4440000, 4520000, 4600000, 4680000,
656 What: /sys/class/power_supply/bq24257-charger/high_impedance_enable
659 Contact: Andreas Dannenberg <dannenberg@ti.com>
661 This entry allows enabling the high-impedance mode of bq24257-type
662 charger devices. If enabled, it places the charger IC into low power
663 standby mode with the switch mode controller disabled. When disabled,
664 the charger operates normally. See device datasheet for details.
670 What: /sys/class/power_supply/bq24257-charger/sysoff_enable
673 Contact: Andreas Dannenberg <dannenberg@ti.com>
675 This entry allows enabling the sysoff mode of bq24257-type charger
676 devices. If enabled and the input is removed, the internal battery FET
677 is turned off in order to reduce the leakage from the BAT pin to less
678 than 1uA. Note that on some devices/systems this disconnects the battery
679 from the system. See device datasheet for details.
685 What: /sys/class/power_supply/<supply_name>/manufacture_year
687 Contact: linux-pm@vger.kernel.org
689 Reports the year (following Gregorian calendar) when the device has been
693 Valid values: Reported as integer
695 What: /sys/class/power_supply/<supply_name>/manufacture_month
697 Contact: linux-pm@vger.kernel.org
699 Reports the month when the device has been manufactured.
704 What: /sys/class/power_supply/<supply_name>/manufacture_day
706 Contact: linux-pm@vger.kernel.org
708 Reports the day of month when the device has been manufactured.