Device (BAT1)
{
Name (_HID, EisaId ("PNP0C0A"))
Name (_UID, One)
Name (CBTI, Zero)
Name (PBTI, Zero)
Name (BTIN, Zero)
Name (BTCH, Zero)
Name (BIFI, Zero)
Name (SEL0, Zero)
Name (BCRI, Zero)
Name (PBIF, Package (0x0D)
{
One,
0x0FA0,
0x0FA0,
One,
0x2B5C,
0x012C,
0xC8,
0x20,
0x20,
"PA3593U-1BRS",
"",
"LION ",
" "
})
Name (PBST, Package (0x04)
{
Zero,
0xFFFFFFFF,
0xFFFFFFFF,
0x2710
})
Name (ERRC, Zero)
Name (_PCL, Package (0x01)
{
_SB
})
Method (_STA, 0, NotSerialized)
{
If (BTIN)
{
Return (0x1F)
}
Else
{
Return (0x0F)
}
}
Method (_BIF, 0, NotSerialized)
{
If (LEqual (BIFI, Zero))
{
UBIF ()
Store (One, BIFI)
}
Return (PBIF)
}
Name (LFCC, 0x1130)
Method (UBIF, 0, NotSerialized)
{
If (ECON)
{
Store (^^PCI0.LPCB.EC0.BTDC, Local0)
Store (^^PCI0.LPCB.EC0.LFCC, Local1)
Store (^^PCI0.LPCB.EC0.MBVG, Local2)
Store (^^PCI0.LPCB.EC0.BTMD, Local3)
Store (^^PCI0.LPCB.EC0.BTMN, Local4)
Store (^^PCI0.LPCB.EC0.BTSN, Local5)
Store (^^PCI0.LPCB.EC0.LION, Local6)
Store (Local0, Index (PBIF, One))
Store (Local1, Index (PBIF, 0x02))
Store (Local2, Index (PBIF, 0x04))
Store (Local1, LFCC)
If (Local6)
{
Store ("NiMH", Index (PBIF, 0x0B))
}
Else
{
Store ("LION", Index (PBIF, 0x0B))
}
Store (^^PCI0.LPCB.EC0.MBPN, Index (PBIF, 0x09))
If (LEqual (Local4, 0x05))
{
Store ("Panasonic", Index (PBIF, 0x0C))
}
Else
{
If (LEqual (Local4, 0x03))
{
Store ("SANYO", Index (PBIF, 0x0C))
}
Else
{
If (LEqual (Local4, 0x04))
{
Store ("SONY", Index (PBIF, 0x0C))
}
Else
{
If (LEqual (Local4, 0x02))
{
Store ("LGC", Index (PBIF, 0x0C))
}
Else
{
Store ("UNKNOWN", Index (PBIF, 0x0C))
}
}
}
}
}
}
Name (RCAP, Zero)
Method (_BST, 0, NotSerialized)
{
If (LEqual (BTIN, Zero))
{
Store (Zero, Index (PBST, Zero))
Store (0xFFFFFFFF, Index (PBST, One))
Store (0xFFFFFFFF, Index (PBST, 0x02))
Store (0xFFFFFFFF, Index (PBST, 0x03))
Return (PBST)
}
If (ECON)
{
Store (^^PCI0.LPCB.EC0.MBTC, Local0)
Sleep (0x32)
Store (^^PCI0.LPCB.EC0.MBRM, Local1)
Sleep (0x32)
Store (^^PCI0.LPCB.EC0.MBVG, Local2)
Sleep (0x32)
Store (^^PCI0.LPCB.EC0.MCUR, Local3)
Sleep (0x32)
Store (^^PCI0.LPCB.EC0.BTST, Local4)
Sleep (0x32)
Store (^^PCI0.LPCB.EC0.MBTF, Local5)
Sleep (0x32)
Store (^^PCI0.LPCB.EC0.ACDF, Local6)
Sleep (0x32)
If (Local6)
{
If (LEqual (Local5, One))
{
Store (Zero, Local7)
Store (LFCC, Local1)
}
Else
{
If (LEqual (Local0, One))
{
Store (0x02, Local7)
}
Else
{
Store (Zero, Local7)
}
}
}
Else
{
If (LAnd (Local4, One))
{
Store (One, Local7)
}
Else
{
Store (Zero, Local7)
}
}
And (Local4, 0x04, Local4)
If (LEqual (Local4, 0x04))
{
Or (Local7, Local4, Local7)
}
Store (Local7, Index (PBST, Zero))
If (LNot (And (Local1, 0x8000)))
{
Store (Local1, Index (PBST, 0x02))
}
If (LNot (And (Local2, 0x8000)))
{
Store (Local2, Index (PBST, 0x03))
}
If (LAnd (Local3, 0x8000))
{
If (LNotEqual (Local3, 0xFFFF))
{
Not (Local3, Local3)
Increment (Local3)
And (Local3, 0xFFFF, Local3)
}
}
Store (Local3, Index (PBST, One))
}
Return (PBST)
}
Method (BSTA, 0, NotSerialized)
{
If (ECON)
{
Store (^^PCI0.LPCB.EC0.MBTS, Local0)
If (LEqual (Local0, One))
{
If (LEqual (BTIN, Zero))
{
Store (One, BTCH)
Store (Zero, BIFI)
}
Store (One, BTIN)
}
Else
{
If (LEqual (BTIN, One))
{
Store (One, BTCH)
Store (Zero, BIFI)
}
Store (Zero, BTIN)
}
}
}
}
看了半天愣是没看懂,楼主帮帮忙