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