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