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", "Warm",
209			      "Cool", "Hot"
210
211What:		/sys/class/power_supply/<supply_name>/precharge_current
212Date:		June 2017
213Contact:	linux-pm@vger.kernel.org
214Description:
215		Reports the charging current applied during pre-charging phase
216		for a battery charge cycle.
217
218		Access: Read
219		Valid values: Represented in microamps
220
221What:		/sys/class/power_supply/<supply_name>/present
222Date:		May 2007
223Contact:	linux-pm@vger.kernel.org
224Description:
225		Reports whether a battery is present or not in the system.
226
227		Access: Read
228		Valid values:
229			0: Absent
230			1: Present
231
232What:		/sys/class/power_supply/<supply_name>/status
233Date:		May 2007
234Contact:	linux-pm@vger.kernel.org
235Description:
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.
239
240		Access: Read, Write
241		Valid values: "Unknown", "Charging", "Discharging",
242			      "Not charging", "Full"
243
244What:		/sys/class/power_supply/<supply_name>/technology
245Date:		May 2007
246Contact:	linux-pm@vger.kernel.org
247Description:
248		Describes the battery technology supported by the supply.
249
250		Access: Read
251		Valid values: "Unknown", "NiMH", "Li-ion", "Li-poly", "LiFe",
252			      "NiCd", "LiMn"
253
254What:		/sys/class/power_supply/<supply_name>/temp
255Date:		May 2007
256Contact:	linux-pm@vger.kernel.org
257Description:
258		Reports the current TBAT battery temperature reading.
259
260		Access: Read
261		Valid values: Represented in 1/10 Degrees Celsius
262
263What:		/sys/class/power_supply/<supply_name>/temp_alert_max
264Date:		July 2012
265Contact:	linux-pm@vger.kernel.org
266Description:
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).
273
274		Access: Read
275		Valid values: Represented in 1/10 Degrees Celsius
276
277What:		/sys/class/power_supply/<supply_name>/temp_alert_min
278Date:		July 2012
279Contact:	linux-pm@vger.kernel.org
280Description:
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).
288
289		Access: Read
290		Valid values: Represented in 1/10 Degrees Celsius
291
292What:		/sys/class/power_supply/<supply_name>/temp_max
293Date:		July 2014
294Contact:	linux-pm@vger.kernel.org
295Description:
296		Reports the maximum allowed TBAT battery temperature for
297		charging.
298
299		Access: Read
300		Valid values: Represented in 1/10 Degrees Celsius
301
302What:		/sys/class/power_supply/<supply_name>/temp_min
303Date:		July 2014
304Contact:	linux-pm@vger.kernel.org
305Description:
306		Reports the minimum allowed TBAT battery temperature for
307		charging.
308
309		Access: Read
310		Valid values: Represented in 1/10 Degrees Celsius
311
312What:		/sys/class/power_supply/<supply_name>/voltage_avg,
313Date:		May 2007
314Contact:	linux-pm@vger.kernel.org
315Description:
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.
319
320		Access: Read
321		Valid values: Represented in microvolts
322
323What:		/sys/class/power_supply/<supply_name>/voltage_max,
324Date:		January 2008
325Contact:	linux-pm@vger.kernel.org
326Description:
327		Reports the maximum safe VBAT voltage permitted for the battery,
328		during charging.
329
330		Access: Read
331		Valid values: Represented in microvolts
332
333What:		/sys/class/power_supply/<supply_name>/voltage_min,
334Date:		January 2008
335Contact:	linux-pm@vger.kernel.org
336Description:
337		Reports the minimum safe VBAT voltage permitted for the battery,
338		during discharging.
339
340		Access: Read
341		Valid values: Represented in microvolts
342
343What:		/sys/class/power_supply/<supply_name>/voltage_now,
344Date:		May 2007
345Contact:	linux-pm@vger.kernel.org
346Description:
347		Reports an instant, single VBAT voltage reading for the battery.
348		This value is not averaged/smoothed.
349
350		Access: Read
351		Valid values: Represented in microvolts
352
353===== USB Properties =====
354
355What: 		/sys/class/power_supply/<supply_name>/current_avg
356Date:		May 2007
357Contact:	linux-pm@vger.kernel.org
358Description:
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.
362
363		Access: Read
364		Valid values: Represented in microamps
365
366
367What: 		/sys/class/power_supply/<supply_name>/current_max
368Date:		October 2010
369Contact:	linux-pm@vger.kernel.org
370Description:
371		Reports the maximum IBUS current the supply can support.
372
373		Access: Read
374		Valid values: Represented in microamps
375
376What: 		/sys/class/power_supply/<supply_name>/current_now
377Date:		May 2007
378Contact:	linux-pm@vger.kernel.org
379Description:
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.
384
385		Access: Read, Write
386		Valid values: Represented in microamps
387
388What:		/sys/class/power_supply/<supply_name>/input_current_limit
389Date:		July 2014
390Contact:	linux-pm@vger.kernel.org
391Description:
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.
398
399		Access: Read, Write
400		Valid values: Represented in microamps
401
402What:		/sys/class/power_supply/<supply_name>/input_voltage_limit
403Date:		May 2019
404Contact:	linux-pm@vger.kernel.org
405Description:
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.
415
416		Access: Read, Write
417		Valid values: Represented in microvolts
418
419What:		/sys/class/power_supply/<supply_name>/input_power_limit
420Date:		May 2019
421Contact:	linux-pm@vger.kernel.org
422Description:
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.
428
429		Access: Read, Write
430		Valid values: Represented in microwatts
431
432What:		/sys/class/power_supply/<supply_name>/online,
433Date:		May 2007
434Contact:	linux-pm@vger.kernel.org
435Description:
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).
440
441		Access: Read, Write
442		Valid values:
443			0: Offline
444			1: Online Fixed - Fixed Voltage Supply
445			2: Online Programmable - Programmable Voltage Supply
446
447What:		/sys/class/power_supply/<supply_name>/temp
448Date:		May 2007
449Contact:	linux-pm@vger.kernel.org
450Description:
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)
454
455		Access: Read
456		Valid values: Represented in 1/10 Degrees Celsius
457
458What:		/sys/class/power_supply/<supply_name>/temp_alert_max
459Date:		July 2012
460Contact:	linux-pm@vger.kernel.org
461Description:
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).
469
470		Access: Read
471		Valid values: Represented in 1/10 Degrees Celsius
472
473What:		/sys/class/power_supply/<supply_name>/temp_alert_min
474Date:		July 2012
475Contact:	linux-pm@vger.kernel.org
476Description:
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).
484
485		Access: Read
486		Valid values: Represented in 1/10 Degrees Celsius
487
488What:		/sys/class/power_supply/<supply_name>/temp_max
489Date:		July 2014
490Contact:	linux-pm@vger.kernel.org
491Description:
492		Reports the maximum allowed supply temperature for operation.
493
494		Access: Read
495		Valid values: Represented in 1/10 Degrees Celsius
496
497What:		/sys/class/power_supply/<supply_name>/temp_min
498Date:		July 2014
499Contact:	linux-pm@vger.kernel.org
500Description:
501		Reports the mainimum allowed supply temperature for operation.
502
503		Access: Read
504		Valid values: Represented in 1/10 Degrees Celsius
505
506What: 		/sys/class/power_supply/<supply_name>/usb_type
507Date:		March 2018
508Contact:	linux-pm@vger.kernel.org
509Description:
510		Reports what type of USB connection is currently active for
511		the supply, for example it can show if USB-PD capable source
512		is attached.
513
514		Access: Read-Only
515		Valid values: "Unknown", "SDP", "DCP", "CDP", "ACA", "C", "PD",
516			      "PD_DRP", "PD_PPS", "BrickID"
517
518What: 		/sys/class/power_supply/<supply_name>/voltage_max
519Date:		January 2008
520Contact:	linux-pm@vger.kernel.org
521Description:
522		Reports the maximum VBUS voltage the supply can support.
523
524		Access: Read
525		Valid values: Represented in microvolts
526
527What: 		/sys/class/power_supply/<supply_name>/voltage_min
528Date:		January 2008
529Contact:	linux-pm@vger.kernel.org
530Description:
531		Reports the minimum VBUS voltage the supply can support.
532
533		Access: Read
534		Valid values: Represented in microvolts
535
536What: 		/sys/class/power_supply/<supply_name>/voltage_now
537Date:		May 2007
538Contact:	linux-pm@vger.kernel.org
539Description:
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.
544
545		Access: Read, Write
546		Valid values: Represented in microvolts
547
548===== Device Specific Properties =====
549
550What:		/sys/class/power/ds2760-battery.*/charge_now
551Date:		May 2010
552KernelVersion:	2.6.35
553Contact:	Daniel Mack <daniel@caiaq.de>
554Description:
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
560		appropriate action.
561
562What:		/sys/class/power/ds2760-battery.*/charge_full
563Date:		May 2010
564KernelVersion:	2.6.35
565Contact:	Daniel Mack <daniel@caiaq.de>
566Description:
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
569		amended over time.
570
571What:		/sys/class/power_supply/max14577-charger/device/fast_charge_timer
572Date:		October 2014
573KernelVersion:	3.18.0
574Contact:	Krzysztof Kozlowski <krzk@kernel.org>
575Description:
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.
580
581		Valid values:
582		- 5, 6 or 7 (hours),
583		- 0: disabled.
584
585What:		/sys/class/power_supply/max77693-charger/device/fast_charge_timer
586Date:		January 2015
587KernelVersion:	3.19.0
588Contact:	Krzysztof Kozlowski <krzk@kernel.org>
589Description:
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.
594
595		Valid values:
596		- 4 - 16 (hours), step by 2 (rounded down)
597		- 0: disabled.
598
599What:		/sys/class/power_supply/max77693-charger/device/top_off_threshold_current
600Date:		January 2015
601KernelVersion:	3.19.0
602Contact:	Krzysztof Kozlowski <krzk@kernel.org>
603Description:
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.
608
609		Valid values:
610		- 100000 - 200000 (microamps), step by 25000 (rounded down)
611		- 200000 - 350000 (microamps), step by 50000 (rounded down)
612		- 0: disabled.
613
614What:		/sys/class/power_supply/max77693-charger/device/top_off_timer
615Date:		January 2015
616KernelVersion:	3.19.0
617Contact:	Krzysztof Kozlowski <krzk@kernel.org>
618Description:
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.
623
624		Valid values:
625		- 0 - 70 (minutes), step by 10 (rounded down)
626
627What:		/sys/class/power_supply/bq24257-charger/ovp_voltage
628Date:		October 2015
629KernelVersion:	4.4.0
630Contact:	Andreas Dannenberg <dannenberg@ti.com>
631Description:
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.
636
637		Valid values:
638		- 6000000, 6500000, 7000000, 8000000, 9000000, 9500000, 10000000,
639		  10500000 (all uV)
640
641What:		/sys/class/power_supply/bq24257-charger/in_dpm_voltage
642Date:		October 2015
643KernelVersion:	4.4.0
644Contact:	Andreas Dannenberg <dannenberg@ti.com>
645Description:
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.
651
652		Valid values:
653		- 4200000, 4280000, 4360000, 4440000, 4520000, 4600000, 4680000,
654		  4760000 (all uV)
655
656What:		/sys/class/power_supply/bq24257-charger/high_impedance_enable
657Date:		October 2015
658KernelVersion:	4.4.0
659Contact:	Andreas Dannenberg <dannenberg@ti.com>
660Description:
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.
665
666		Valid values:
667		- 1: enabled
668		- 0: disabled
669
670What:		/sys/class/power_supply/bq24257-charger/sysoff_enable
671Date:		October 2015
672KernelVersion:	4.4.0
673Contact:	Andreas Dannenberg <dannenberg@ti.com>
674Description:
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.
680
681		Valid values:
682		- 1: enabled
683		- 0: disabled
684
685What:		/sys/class/power_supply/<supply_name>/manufacture_year
686Date:		January 2020
687Contact:	linux-pm@vger.kernel.org
688Description:
689		Reports the year (following Gregorian calendar) when the device has been
690		manufactured.
691
692		Access: Read
693		Valid values: Reported as integer
694
695What:		/sys/class/power_supply/<supply_name>/manufacture_month
696Date:		January 2020
697Contact:	linux-pm@vger.kernel.org
698Description:
699		Reports the month when the device has been manufactured.
700
701		Access: Read
702		Valid values: 1-12
703
704What:		/sys/class/power_supply/<supply_name>/manufacture_day
705Date:		January 2020
706Contact:	linux-pm@vger.kernel.org
707Description:
708		Reports the day of month when the device has been manufactured.
709
710		Access: Read
711		Valid values: 1-31
712