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