blob: 12c07b1f3983d1109b0e962b0a3f0de17e9efc36 [file] [log] [blame]
/* 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
And (Local1, 0x02, Local1)
If (LEqual (Local1, 0x02))
{
Local0 = 0x1F
}
Printf ("<----- BAT0: _STA")
Return (Local0)
}
Method (_BIF, 0, Serialized)
{
Printf ("-----> BAT0: _BIF")
PBIF[2] = B0FC
PBIF[5] = Divide (Multiply (B0FC, 6), 100)
PBIF[6] = Divide (Multiply (B0FC, 3), 100)
Printf ("<----- BAT0: _BIF")
Return (PBIF)
}
Method (_BST, 0, Serialized)
{
Printf ("-----> BAT0: _BST")
Local0 = B0ST
And (Local0, 0x40, Local0)
If (LEqual (Local0, 0x40))
{
If (LEqual (PWRS, 1))
{
PBST[0] = 0x00
}
Else
{
PBST[0] = 0x01
}
}
Else
{
PBST[0] = 0x02
}
Local1 = B0AC
If (LGreaterEqual (Local1, 0x8000))
{
Subtract (0x00010000, Local1, Local1)
}
PBST[1] = Local1
PBST[2] = B0RC
PBST[3] = B0VT
Printf ("<----- BAT0: _BST")
Return (PBST)
}
}