1**General Properties**
2
3What:		/sys/class/power_supply/<supply_name>/manufacturer
4Date:		May 2007
5Contact:	linux-pm@vger.kernel.org
6Description:
7		Reports the name of the device manufacturer.
8
9		Access: Read
10		Valid values: Represented as string
11
12What:		/sys/class/power_supply/<supply_name>/model_name
13Date:		May 2007
14Contact:	linux-pm@vger.kernel.org
15Description:
16		Reports the name of the device model.
17
18		Access: Read
19		Valid values: Represented as string
20
21What:		/sys/class/power_supply/<supply_name>/serial_number
22Date:		January 2008
23Contact:	linux-pm@vger.kernel.org
24Description:
25		Reports the serial number of the device.
26
27		Access: Read
28		Valid values: Represented as string
29
30What:		/sys/class/power_supply/<supply_name>/type
31Date:		May 2010
32Contact:	linux-pm@vger.kernel.org
33Description:
34		Describes the main type of the supply.
35
36		Access: Read
37		Valid values: "Battery", "UPS", "Mains", "USB", "Wireless"
38
39**Battery and USB properties**
40
41What:		/sys/class/power_supply/<supply_name>/current_avg
42Date:		May 2007
43Contact:	linux-pm@vger.kernel.org
44Description:
45		Battery:
46
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
50		  value.
51
52		USB:
53
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.
57
58		Access: Read
59
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.
63
64What:		/sys/class/power_supply/<supply_name>/current_max
65Date:		October 2010
66Contact:	linux-pm@vger.kernel.org
67Description:
68		Battery:
69
70		  Reports the maximum IBAT current allowed into the battery.
71
72		USB:
73
74		  Reports the maximum IBUS current the supply can support.
75
76		Access: Read
77		Valid values: Represented in microamps
78
79What: 		/sys/class/power_supply/<supply_name>/current_now
80Date:		May 2007
81Contact:	linux-pm@vger.kernel.org
82Description:
83
84		Battery:
85
86		  Reports an instant, single IBAT current reading for the
87		  battery. This value is not averaged/smoothed.
88
89		  Access: Read
90
91		USB:
92
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.
97
98		  Access: Read, Write
99
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.
103
104What:		/sys/class/power_supply/<supply_name>/temp
105Date:		May 2007
106Contact:	linux-pm@vger.kernel.org
107Description:
108		Battery:
109
110		  Reports the current TBAT battery temperature reading.
111
112		USB:
113
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)
117
118		Access: Read
119
120		Valid values: Represented in 1/10 Degrees Celsius
121
122What:		/sys/class/power_supply/<supply_name>/temp_alert_max
123Date:		July 2012
124Contact:	linux-pm@vger.kernel.org
125Description:
126		Battery:
127
128		  Maximum TBAT temperature trip-wire value where the supply will
129		  notify user-space of the event.
130
131		USB:
132
133		  Maximum supply temperature trip-wire value where the supply
134		  will notify user-space of the event.
135
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
140		stopped).
141
142		Access: Read
143
144		Valid values: Represented in 1/10 Degrees Celsius
145
146What:		/sys/class/power_supply/<supply_name>/temp_alert_min
147Date:		July 2012
148Contact:	linux-pm@vger.kernel.org
149Description:
150
151		Battery:
152
153		  Minimum TBAT temperature trip-wire value where the supply will
154		  notify user-space of the event.
155
156		USB:
157
158		  Minimum supply temperature trip-wire value where the supply
159		  will notify user-space of the event.
160
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).
166
167		Access: Read
168
169		Valid values: Represented in 1/10 Degrees Celsius
170
171What:		/sys/class/power_supply/<supply_name>/temp_max
172Date:		July 2014
173Contact:	linux-pm@vger.kernel.org
174Description:
175		Battery:
176
177		  Reports the maximum allowed TBAT battery temperature for
178		  charging.
179
180		USB:
181
182		  Reports the maximum allowed supply temperature for operation.
183
184		Access: Read
185
186		Valid values: Represented in 1/10 Degrees Celsius
187
188What:		/sys/class/power_supply/<supply_name>/temp_min
189Date:		July 2014
190Contact:	linux-pm@vger.kernel.org
191Description:
192		Battery:
193
194		  Reports the minimum allowed TBAT battery temperature for
195		  charging.
196
197		USB:
198
199		  Reports the minimum allowed supply temperature for operation.
200
201		Access: Read
202
203		Valid values: Represented in 1/10 Degrees Celsius
204
205What:		/sys/class/power_supply/<supply_name>/voltage_max,
206Date:		January 2008
207Contact:	linux-pm@vger.kernel.org
208Description:
209		Battery:
210
211		  Reports the maximum safe VBAT voltage permitted for the
212		  battery, during charging.
213
214		USB:
215
216		  Reports the maximum VBUS voltage the supply can support.
217
218		Access: Read
219
220		Valid values: Represented in microvolts
221
222What:		/sys/class/power_supply/<supply_name>/voltage_min,
223Date:		January 2008
224Contact:	linux-pm@vger.kernel.org
225Description:
226		Battery:
227
228		  Reports the minimum safe VBAT voltage permitted for the
229		  battery, during discharging.
230
231		USB:
232
233		  Reports the minimum VBUS voltage the supply can support.
234
235		Access: Read
236
237		Valid values: Represented in microvolts
238
239What:		/sys/class/power_supply/<supply_name>/voltage_now,
240Date:		May 2007
241Contact:	linux-pm@vger.kernel.org
242Description:
243		Battery:
244
245		  Reports an instant, single VBAT voltage reading for the
246		  battery. This value is not averaged/smoothed.
247
248		  Access: Read
249
250		USB:
251
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.
256
257		  Access: Read, Write
258
259		Valid values: Represented in microvolts
260
261**Battery Properties**
262
263What:		/sys/class/power_supply/<supply_name>/capacity
264Date:		May 2007
265Contact:	linux-pm@vger.kernel.org
266Description:
267		Fine grain representation of battery capacity.
268
269		Access: Read
270
271		Valid values: 0 - 100 (percent)
272
273What:		/sys/class/power_supply/<supply_name>/capacity_alert_max
274Date:		July 2012
275Contact:	linux-pm@vger.kernel.org
276Description:
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
282		low).
283
284		Access: Read, Write
285
286		Valid values: 0 - 100 (percent)
287
288What:		/sys/class/power_supply/<supply_name>/capacity_alert_min
289Date:		July 2012
290Contact:	linux-pm@vger.kernel.org
291Description:
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
297		critically low).
298
299		Access: Read, Write
300
301		Valid values: 0 - 100 (percent)
302
303What:		/sys/class/power_supply/<supply_name>/capacity_error_margin
304Date:		April 2019
305Contact:	linux-pm@vger.kernel.org
306Description:
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
313		completely useless.
314
315		Access: Read
316
317		Valid values: 0 - 100 (percent)
318
319What:		/sys/class/power_supply/<supply_name>/capacity_level
320Date:		June 2009
321Contact:	linux-pm@vger.kernel.org
322Description:
323		Coarse representation of battery capacity.
324
325		Access: Read
326
327		Valid values:
328			      "Unknown", "Critical", "Low", "Normal", "High",
329			      "Full"
330
331What:		/sys/class/power_supply/<supply_name>/charge_control_limit
332Date:		Oct 2012
333Contact:	linux-pm@vger.kernel.org
334Description:
335		Maximum allowable charging current. Used for charge rate
336		throttling for thermal cooling or improving battery health.
337
338		Access: Read, Write
339
340		Valid values: Represented in microamps
341
342What:		/sys/class/power_supply/<supply_name>/charge_control_limit_max
343Date:		Oct 2012
344Contact:	linux-pm@vger.kernel.org
345Description:
346		Maximum legal value for the charge_control_limit property.
347
348		Access: Read
349
350		Valid values: Represented in microamps
351
352What:		/sys/class/power_supply/<supply_name>/charge_control_start_threshold
353Date:		April 2019
354Contact:	linux-pm@vger.kernel.org
355Description:
356		Represents a battery percentage level, below which charging will
357		begin.
358
359		Access: Read, Write
360		Valid values: 0 - 100 (percent)
361
362What:		/sys/class/power_supply/<supply_name>/charge_control_end_threshold
363Date:		April 2019
364Contact:	linux-pm@vger.kernel.org
365Description:
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.
371
372		Access: Read, Write
373
374		Valid values: 0 - 100 (percent)
375
376What:		/sys/class/power_supply/<supply_name>/charge_type
377Date:		July 2009
378Contact:	linux-pm@vger.kernel.org
379Description:
380		Represents the type of charging currently being applied to the
381		battery. "Trickle", "Fast", and "Standard" all mean different
382		charging speeds. "Adaptive" means that the charger uses some
383		algorithm to adjust the charge rate dynamically, without
384		any user configuration required. "Custom" means that the charger
385		uses the charge_control_* properties as configuration for some
386		different algorithm. "Long Life" means the charger reduces its
387		charging rate in order to prolong the battery health. "Bypass"
388		means the charger bypasses the charging path around the
389		integrated converter allowing for a "smart" wall adaptor to
390		perform the power conversion externally.
391
392		Access: Read, Write
393
394		Valid values:
395			      "Unknown", "N/A", "Trickle", "Fast", "Standard",
396			      "Adaptive", "Custom", "Long Life", "Bypass"
397
398What:		/sys/class/power_supply/<supply_name>/charge_term_current
399Date:		July 2014
400Contact:	linux-pm@vger.kernel.org
401Description:
402		Reports the charging current value which is used to determine
403		when the battery is considered full and charging should end.
404
405		Access: Read
406
407		Valid values: Represented in microamps
408
409What:		/sys/class/power_supply/<supply_name>/health
410Date:		May 2007
411Contact:	linux-pm@vger.kernel.org
412Description:
413		Reports the health of the battery or battery side of charger
414		functionality.
415
416		Access: Read
417
418		Valid values:
419			      "Unknown", "Good", "Overheat", "Dead",
420			      "Over voltage", "Unspecified failure", "Cold",
421			      "Watchdog timer expire", "Safety timer expire",
422			      "Over current", "Calibration required", "Warm",
423			      "Cool", "Hot", "No battery"
424
425What:		/sys/class/power_supply/<supply_name>/precharge_current
426Date:		June 2017
427Contact:	linux-pm@vger.kernel.org
428Description:
429		Reports the charging current applied during pre-charging phase
430		for a battery charge cycle.
431
432		Access: Read
433
434		Valid values: Represented in microamps
435
436What:		/sys/class/power_supply/<supply_name>/present
437Date:		May 2007
438Contact:	linux-pm@vger.kernel.org
439Description:
440		Reports whether a battery is present or not in the system. If the
441		property does not exist, the battery is considered to be present.
442
443		Access: Read
444
445		Valid values:
446
447			== =======
448			0: Absent
449			1: Present
450			== =======
451
452What:		/sys/class/power_supply/<supply_name>/status
453Date:		May 2007
454Contact:	linux-pm@vger.kernel.org
455Description:
456		Represents the charging status of the battery. Normally this
457		is read-only reporting although for some supplies this can be
458		used to enable/disable charging to the battery.
459
460		Access: Read, Write
461
462		Valid values:
463			      "Unknown", "Charging", "Discharging",
464			      "Not charging", "Full"
465
466What:		/sys/class/power_supply/<supply_name>/charge_behaviour
467Date:		November 2021
468Contact:	linux-pm@vger.kernel.org
469Description:
470		Represents the charging behaviour.
471
472		Access: Read, Write
473
474		Valid values:
475			================ ====================================
476			auto:            Charge normally, respect thresholds
477			inhibit-charge:  Do not charge while AC is attached
478			force-discharge: Force discharge while AC is attached
479			================ ====================================
480
481What:		/sys/class/power_supply/<supply_name>/technology
482Date:		May 2007
483Contact:	linux-pm@vger.kernel.org
484Description:
485		Describes the battery technology supported by the supply.
486
487		Access: Read
488
489		Valid values:
490			      "Unknown", "NiMH", "Li-ion", "Li-poly", "LiFe",
491			      "NiCd", "LiMn"
492
493
494What:		/sys/class/power_supply/<supply_name>/voltage_avg,
495Date:		May 2007
496Contact:	linux-pm@vger.kernel.org
497Description:
498		Reports an average VBAT voltage reading for the battery, over a
499		fixed period. Normally devices will provide a fixed interval in
500		which they average readings to smooth out the reported value.
501
502		Access: Read
503
504		Valid values: Represented in microvolts
505
506What:		/sys/class/power_supply/<supply_name>/cycle_count
507Date:		January 2010
508Contact:	linux-pm@vger.kernel.org
509Description:
510		Reports the number of full charge + discharge cycles the
511		battery has undergone.
512
513		Access: Read
514
515		Valid values:
516			Integer > 0: representing full cycles
517			Integer = 0: cycle_count info is not available
518
519**USB Properties**
520
521What:		/sys/class/power_supply/<supply_name>/input_current_limit
522Date:		July 2014
523Contact:	linux-pm@vger.kernel.org
524Description:
525		Details the incoming IBUS current limit currently set in the
526		supply. Normally this is configured based on the type of
527		connection made (e.g. A configured SDP should output a maximum
528		of 500mA so the input current limit is set to the same value).
529		Use preferably input_power_limit, and for problems that can be
530		solved using power limit use input_current_limit.
531
532		Access: Read, Write
533
534		Valid values: Represented in microamps
535
536What:		/sys/class/power_supply/<supply_name>/input_voltage_limit
537Date:		May 2019
538Contact:	linux-pm@vger.kernel.org
539Description:
540		This entry configures the incoming VBUS voltage limit currently
541		set in the supply. Normally this is configured based on
542		system-level knowledge or user input (e.g. This is part of the
543		Pixel C's thermal management strategy to effectively limit the
544		input power to 5V when the screen is on to meet Google's skin
545		temperature targets). Note that this feature should not be
546		used for safety critical things.
547		Use preferably input_power_limit, and for problems that can be
548		solved using power limit use input_voltage_limit.
549
550		Access: Read, Write
551
552		Valid values: Represented in microvolts
553
554What:		/sys/class/power_supply/<supply_name>/input_power_limit
555Date:		May 2019
556Contact:	linux-pm@vger.kernel.org
557Description:
558		This entry configures the incoming power limit currently set
559		in the supply. Normally this is configured based on
560		system-level knowledge or user input. Use preferably this
561		feature to limit the incoming power and use current/voltage
562		limit only for problems that can be solved using power limit.
563
564		Access: Read, Write
565
566		Valid values: Represented in microwatts
567
568What:		/sys/class/power_supply/<supply_name>/online,
569Date:		May 2007
570Contact:	linux-pm@vger.kernel.org
571Description:
572		Indicates if VBUS is present for the supply. When the supply is
573		online, and the supply allows it, then it's possible to switch
574		between online states (e.g. Fixed -> Programmable for a PD_PPS
575		USB supply so voltage and current can be controlled).
576
577		Access: Read, Write
578
579		Valid values:
580
581			== ==================================================
582			0: Offline
583			1: Online Fixed - Fixed Voltage Supply
584			2: Online Programmable - Programmable Voltage Supply
585			== ==================================================
586
587What: 		/sys/class/power_supply/<supply_name>/usb_type
588Date:		March 2018
589Contact:	linux-pm@vger.kernel.org
590Description:
591		Reports what type of USB connection is currently active for
592		the supply, for example it can show if USB-PD capable source
593		is attached.
594
595		Access: Read-Only
596
597		Valid values:
598			      "Unknown", "SDP", "DCP", "CDP", "ACA", "C", "PD",
599			      "PD_DRP", "PD_PPS", "BrickID"
600
601**Device Specific Properties**
602
603What:		/sys/class/power/ds2760-battery.*/charge_now
604Date:		May 2010
605KernelVersion:	2.6.35
606Contact:	Daniel Mack <daniel@caiaq.de>
607Description:
608		This file is writeable and can be used to set the current
609		coloumb counter value inside the battery monitor chip. This
610		is needed for unavoidable corrections of aging batteries.
611		A userspace daemon can monitor the battery charging logic
612		and once the counter drops out of considerable bounds, take
613		appropriate action.
614
615What:		/sys/class/power/ds2760-battery.*/charge_full
616Date:		May 2010
617KernelVersion:	2.6.35
618Contact:	Daniel Mack <daniel@caiaq.de>
619Description:
620		This file is writeable and can be used to set the assumed
621		battery 'full level'. As batteries age, this value has to be
622		amended over time.
623
624What:		/sys/class/power_supply/max14577-charger/device/fast_charge_timer
625Date:		October 2014
626KernelVersion:	3.18.0
627Contact:	Krzysztof Kozlowski <krzk@kernel.org>
628Description:
629		This entry shows and sets the maximum time the max14577
630		charger operates in fast-charge mode. When the timer expires
631		the device will terminate fast-charge mode (charging current
632		will drop to 0 A) and will trigger interrupt.
633
634		Valid values:
635
636		- 5, 6 or 7 (hours),
637		- 0: disabled.
638
639What:		/sys/class/power_supply/max77693-charger/device/fast_charge_timer
640Date:		January 2015
641KernelVersion:	3.19.0
642Contact:	Krzysztof Kozlowski <krzk@kernel.org>
643Description:
644		This entry shows and sets the maximum time the max77693
645		charger operates in fast-charge mode. When the timer expires
646		the device will terminate fast-charge mode (charging current
647		will drop to 0 A) and will trigger interrupt.
648
649		Valid values:
650
651		- 4 - 16 (hours), step by 2 (rounded down)
652		- 0: disabled.
653
654What:		/sys/class/power_supply/max77693-charger/device/top_off_threshold_current
655Date:		January 2015
656KernelVersion:	3.19.0
657Contact:	Krzysztof Kozlowski <krzk@kernel.org>
658Description:
659		This entry shows and sets the charging current threshold for
660		entering top-off charging mode. When charging current in fast
661		charge mode drops below this value, the charger will trigger
662		interrupt and start top-off charging mode.
663
664		Valid values:
665
666		- 100000 - 200000 (microamps), step by 25000 (rounded down)
667		- 200000 - 350000 (microamps), step by 50000 (rounded down)
668		- 0: disabled.
669
670What:		/sys/class/power_supply/max77693-charger/device/top_off_timer
671Date:		January 2015
672KernelVersion:	3.19.0
673Contact:	Krzysztof Kozlowski <krzk@kernel.org>
674Description:
675		This entry shows and sets the maximum time the max77693
676		charger operates in top-off charge mode. When the timer expires
677		the device will terminate top-off charge mode (charging current
678		will drop to 0 A) and will trigger interrupt.
679
680		Valid values:
681
682		- 0 - 70 (minutes), step by 10 (rounded down)
683
684What:		/sys/class/power_supply/bq24257-charger/ovp_voltage
685Date:		October 2015
686KernelVersion:	4.4.0
687Contact:	Andreas Dannenberg <dannenberg@ti.com>
688Description:
689		This entry configures the overvoltage protection feature of bq24257-
690		type charger devices. This feature protects the device and other
691		components against damage from overvoltage on the input supply. See
692		device datasheet for details.
693
694		Valid values:
695
696		- 6000000, 6500000, 7000000, 8000000, 9000000, 9500000, 10000000,
697		  10500000 (all uV)
698
699What:		/sys/class/power_supply/bq24257-charger/in_dpm_voltage
700Date:		October 2015
701KernelVersion:	4.4.0
702Contact:	Andreas Dannenberg <dannenberg@ti.com>
703Description:
704		This entry configures the input dynamic power path management voltage of
705		bq24257-type charger devices. Once the supply drops to the configured
706		voltage, the input current limit is reduced down to prevent the further
707		drop of the supply. When the IC enters this mode, the charge current is
708		lower than the set value. See device datasheet for details.
709
710		Valid values:
711
712		- 4200000, 4280000, 4360000, 4440000, 4520000, 4600000, 4680000,
713		  4760000 (all uV)
714
715What:		/sys/class/power_supply/bq24257-charger/high_impedance_enable
716Date:		October 2015
717KernelVersion:	4.4.0
718Contact:	Andreas Dannenberg <dannenberg@ti.com>
719Description:
720		This entry allows enabling the high-impedance mode of bq24257-type
721		charger devices. If enabled, it places the charger IC into low power
722		standby mode with the switch mode controller disabled. When disabled,
723		the charger operates normally. See device datasheet for details.
724
725		Valid values:
726
727		- 1: enabled
728		- 0: disabled
729
730What:		/sys/class/power_supply/bq24257-charger/sysoff_enable
731Date:		October 2015
732KernelVersion:	4.4.0
733Contact:	Andreas Dannenberg <dannenberg@ti.com>
734Description:
735		This entry allows enabling the sysoff mode of bq24257-type charger
736		devices. If enabled and the input is removed, the internal battery FET
737		is turned off in order to reduce the leakage from the BAT pin to less
738		than 1uA. Note that on some devices/systems this disconnects the battery
739		from the system. See device datasheet for details.
740
741		Valid values:
742
743		- 1: enabled
744		- 0: disabled
745
746What:		/sys/class/power_supply/<supply_name>/manufacture_year
747Date:		January 2020
748Contact:	linux-pm@vger.kernel.org
749Description:
750		Reports the year (following Gregorian calendar) when the device has been
751		manufactured.
752
753		Access: Read
754
755		Valid values: Reported as integer
756
757What:		/sys/class/power_supply/<supply_name>/manufacture_month
758Date:		January 2020
759Contact:	linux-pm@vger.kernel.org
760Description:
761		Reports the month when the device has been manufactured.
762
763		Access: Read
764
765		Valid values: 1-12
766
767What:		/sys/class/power_supply/<supply_name>/manufacture_day
768Date:		January 2020
769Contact:	linux-pm@vger.kernel.org
770Description:
771		Reports the day of month when the device has been manufactured.
772
773		Access: Read
774		Valid values: 1-31
775