• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* SPDX-License-Identifier: GPL-2.0-only */
2
3Device (BAT0)
4{
5	Name (_HID, EisaId("PNP0C0A"))
6	Name (_UID, 0)
7	Method (_STA, 0, NotSerialized)
8	{
9		// Battery Status
10		// 0x80 BIT1 0x01 = Present
11		// 0x80 BIT1 0x00 = Not Present
12		If (ECPS & 0x02)
13		{
14			Return (0x1F)
15		}
16		Return (0x0F)
17	}
18
19	Name (SBIF, Package (13)
20	{
21		1,					//  0: Power Unit			0:	mWh
22							//					1:	mA
23		0xffffffff,				//  1: Design Capacity
24		0xffffffff,				//  2: Last Full Charge Capacity
25		1,					//  3: Battery Technology		0:	Primary (non-rechargeable)
26							//					1:	Secondary (rechargeable)
27		0xffffffff,				//  4: Design Voltage
28		0,					//  5: Design capacity of Warning
29		0,					//  6: Design capacity of Low
30		0xffffffff,				//  7: Battery capacity Decrement Granularity
31		0xffffffff,				//  8: Battery capacity Increment Granularity
32		CONFIG_EC_STARLABS_BATTERY_MODEL,	//  9: Model Number
33		"Unknown",				// 10: Serial Number
34		CONFIG_EC_STARLABS_BATTERY_TYPE,	// 11: Battery Type
35		CONFIG_EC_STARLABS_BATTERY_OEM		// 12: OEM Information
36	})
37	Method (_BIF, 0, NotSerialized)
38	{
39		If (B1DC) {
40			SBIF  [1] = B1DC
41			If (B1FC != 0xffff) {
42				SBIF  [2] = B1FC
43			} Else {
44				SBIF  [2] = B1DC
45			}
46			SBIF  [4] = B1DV
47			SBIF  [5] = B1DC / 5	// 20%
48			SBIF  [6] = B1DC / 20	// 5%
49			SBIF  [7] = B1DC / 500	// 0.2%
50			SBIF  [8] = B1DC / 500	// 0.2%
51			If (B1SN != 0xffff) {
52				SBIF [10] = B1SN
53			}
54		}
55		Return (SBIF)
56	}
57
58	Name (XBIF, Package (21)
59	{
60		1,					//  0: Revision				0:	3.0
61							//					1:	4.0
62		1,					//  1: Power Unit			0:	mWh
63							//					1:	mA
64		0xffffffff,				//  2: Design Capacity
65		0xffffffff,				//  3: Last Full Charge Capacity
66		1,					//  4: Battery Technology		0:	Primary (non-rechargeable)
67							//					1:	Secondary (rechargeable)
68		0xffffffff,				//  5: Design Voltage
69		0xffffffff,				//  6: Design Capacity of Warning
70		0xffffffff,				//  7: Design Capacity of Low
71		0xffffffff,				//  8: Cycle Count
72		2,					//  9: Measurement Accuracy
73		5000,					// 10: Max Sampling Time (ms)
74		1000,					// 11: Min Sampling Time (ms)
75		5000,					// 12: Max Averaging Interval
76		1000,					// 13: Min Averaging Interval
77		0xffffffff,				// 14: Battery Capacity Decrement Granularity
78		0xffffffff,				// 15: Battery Capacity Increment Granularity
79		CONFIG_EC_STARLABS_BATTERY_MODEL,	// 16: Model Number
80		"Unknown",				// 17: Serial Number
81		CONFIG_EC_STARLABS_BATTERY_TYPE,	// 18: Battery Type
82		CONFIG_EC_STARLABS_BATTERY_OEM,		// 19: OEM Information
83		1,					// 20: Swapping Capability		0:	Non swappable
84							//					1:	Cold swappable
85							//					16:	Hot swappable
86	})
87	Method (_BIX, 0, NotSerialized)
88	{
89		If (B1DC) {
90			XBIF  [2] = B1DC
91			If (B1FC != 0xffff) {
92				XBIF  [3] = B1FC
93			} Else {
94				XBIF  [3] = B1DC
95			}
96			XBIF  [5] = B1DV
97			XBIF  [6] = B1DC / 5	// 20%
98			XBIF  [7] = B1DC / 20	// 5%
99			If (B1CC != 0xffff) {
100				XBIF  [8] = B1CC
101			}
102			XBIF [14] = B1DC / 500	// 0.2%
103			XBIF [15] = B1DC / 500	// 0.2%
104			If (B1SN != 0xffff) {
105				XBIF [17] = B1SN
106			}
107		}
108		Return (XBIF)
109	}
110
111	Name (PKG1, Package (4)
112	{
113		0xffffffff,	//  0: Battery State
114		0xffffffff,	//  1: Battery Present Rate
115		0xffffffff,	//  2: Battery Remaining Capacity
116		0xffffffff,	//  3: Battery Present Voltage
117	})
118	Method (_BST, 0, NotSerialized)
119	{
120		PKG1[0] = (B1ST & 0x07)
121		PKG1[1] = B1PR
122		If (B1RC != 0xffff) {
123			PKG1[2] = B1RC
124		} Else {
125			PKG1[2] = B1RP * (B1DC / 100)
126		}
127		PKG1[3] = B1PV
128		Return (PKG1)
129	}
130	Method (_PCL, 0, NotSerialized)
131	{
132		Return (
133			Package() { _SB }
134		)
135	}
136}
137