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