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