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
|
/* SPDX-License-Identifier: GPL-2.0-only */
//SCOPE EC0
Device (BAT0)
{
Name (_HID, EISAID ("PNP0C0A"))
Name (_UID, 1)
Name (_PCL, Package () { \_SB })
//
// Default Static Battery Information
//
Name (PBIF, Package (13)
{
1, // 0: Power Unit
4800, // 1: Design Capacity
4650, // 2: Last Full Charge Capacity
1, // 3: Battery Technology(Rechargeable)
12608, // 4: Design Voltage 10.8V
0, // 5: Design capacity of warning
0, // 6: Design capacity of low
0, // 7: Battery capacity granularity 1
0, // 8: Battery capacity granularity 2
"BAT0", // 9: Model Number
"RT672", // 10: Serial Number
"LiON", // 11: Battery Type
"ASP" // 12: OEM Information
})
Name (PBST, Package (4)
{
0x00000000, // Battery State
0xffffffff, // Battery Present Rate
0xffffffff, // Battery Remaining Capacity
0xffffffff, // Battery Present Voltage
})
// Battery Slot Status
Method (_STA, 0, Serialized)
{
Printf ("-----> BAT0: _STA")
Local0 = 0x0f
Local1 = ECPS & 0x02
If (Local1 == 0x02)
{
Local0 = 0x1f
}
Printf ("<----- BAT0: _STA")
Return (Local0)
}
Method (_BIF, 0, Serialized)
{
Printf ("-----> BAT0: _BIF")
PBIF[2] = B0FC
PBIF[5] = (B0FC * 6) / 100
PBIF[6] = (B0FC * 3) / 100
Printf ("<----- BAT0: _BIF")
Return (PBIF)
}
Method (_BST, 0, Serialized)
{
Printf ("-----> BAT0: _BST")
Local0 = B0ST & 0x40
If (Local0 == 0x40)
{
If (PWRS == 1)
{
PBST[0] = 0x00
}
Else
{
PBST[0] = 0x01
}
}
Else
{
PBST[0] = 0x02
}
Local1 = B0AC
If (Local1 >= 0x8000)
{
Local1 = 0x00010000 - Local1
}
PBST[1] = Local1
PBST[2] = B0RC
PBST[3] = B0VT
Printf ("<----- BAT0: _BST")
Return (PBST)
}
}
|