/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20200528 (64-bit version)
* Copyright (c) 2000 - 2020 Intel Corporation
*
* Disassembling to symbolic ASL+ operators
*
* Disassembly of iASLppx7Ir.aml, Sat Oct 10 10:34:37 2020
*
* Original Table Header:
* Signature "SSDT"
* Length 0x000018C2 (6338)
* Revision 0x02
* Checksum 0xF8
* OEM ID "LENOVO"
* OEM Table ID "CB-01 "
* OEM Revision 0x00000001 (1)
* Compiler ID "ACPI"
* Compiler Version 0x00040000 (262144)
*/
DefinitionBlock ("", "SSDT", 2, "LENOVO", "CB-01 ", 0x00000001)
{
/*
* iASL Warning: There were 4 external control methods found during
* disassembly, but only 0 were resolved (4 unresolved). Additional
* ACPI tables may be required to properly disassemble the code. This
* resulting disassembler output file may not compile because the
* disassembler did not know how many arguments to assign to the
* unresolved methods. Note: SSDTs can be dynamically loaded at
* runtime and may or may not be available via the host OS.
*
* To specify the tables needed to resolve external control method
* references, the -e option can be used to specify the filenames.
* Example iASL invocations:
* iasl -e ssdt1.aml ssdt2.aml ssdt3.aml -d dsdt.aml
* iasl -e dsdt.aml ssdt2.aml -d ssdt1.aml
* iasl -e ssdt*.aml -d dsdt.aml
*
* In addition, the -fe option can be used to specify a file containing
* control method external declarations with the associated method
* argument counts. Each line of the file must be of the form:
* External (<method pathname>, MethodObj, <argument count>)
* Invocation:
* iasl -fe refs.txt -d dsdt.aml
*
* The following methods were unresolved and many not compile properly
* because the disassembler had to guess at the number of arguments
* required for each:
*/
External (_PR_.CPPC, UnknownObj)
External (_SB_.ADP1, UnknownObj)
External (_SB_.PCI0.LPCB.H_EC, DeviceObj)
External (_SB_.PCI0.PEG0.PEGP, UnknownObj)
External (_SB_.PCI0.PEG0.PEGP.PSAP, IntObj)
External (_SB_.PCI0.XHC_.RHUB, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS01, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS02, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS03, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS04, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS05, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS06, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS07, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS08, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS09, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS10, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS11, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS12, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS13, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.HS14, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.SS01, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.SS02, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.SS03, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.SS04, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.SS05, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.SS06, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.SS07, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.SS08, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.USR1, DeviceObj)
External (_SB_.PCI0.XHC_.RHUB.USR2, DeviceObj)
External (BNUM, UnknownObj)
External (DHCF, MethodObj) // Warning: Unknown method, guessing 2 arguments
External (E907, UnknownObj)
External (ECA2, IntObj)
External (LIDM, MethodObj) // Warning: Unknown method, guessing 0 arguments
External (P8XH, MethodObj) // Warning: Unknown method, guessing 2 arguments
External (PNOT, MethodObj) // Warning: Unknown method, guessing 0 arguments
External (PWRS, UnknownObj)
Scope (\_SB.PCI0.LPCB.H_EC)
{
OperationRegion (PRT0, SystemIO, 0xB2, 0x04)
Field (PRT0, DWordAcc, Lock, Preserve)
{
SSMP, 8,
SSM2, 8
}
OperationRegion (I2EC, SystemIO, 0x0380, 0x04)
Field (I2EC, ByteAcc, Lock, Preserve)
{
Offset (0x01),
ADDH, 8,
ADDL, 8,
ADDA, 8
}
OperationRegion (ECF4, EmbeddedControl, Zero, 0xFF)
Field (ECF4, ByteAcc, Lock, Preserve)
{
Offset (0x18),
Offset (0x19),
Offset (0x1A),
Offset (0x1B),
Offset (0x1C),
Offset (0x3C),
Offset (0x3D),
Offset (0x3E),
Offset (0x3F),
Offset (0x40),
VPWR, 1
}
OperationRegion (ECF3, EmbeddedControl, Zero, 0xFF)
Field (ECF3, ByteAcc, Lock, Preserve)
{
VCMD, 8,
VDAT, 8,
VSTA, 8,
Offset (0x04),
AIND, 8,
ANUM, 8,
F1PW, 8,
F2PW, 8,
F1RM, 8,
F2RM, 8,
ECLC, 1,
BTSM, 1,
CDMB, 1,
CD2B, 1,
BTCM, 1,
BCCM, 1,
MBBD, 1,
BTIL, 1,
BTPF, 1,
FCGM, 1,
M2BD, 1,
BTOV, 1,
, 1,
, 1,
BT1S, 1,
QKSP, 1,
ACST, 2,
SPSU, 1,
ADSU, 1,
B2CD, 1,
B2CM, 1,
SHPS, 1,
Offset (0x13),
PSTA, 8,
DSTA, 8,
Offset (0x18),
SMPR, 8,
SMST, 8,
SMAD, 8,
SMCM, 8,
SMD0, 256,
BCNT, 8,
SMAL, 8,
SMA0, 8,
SMA1, 8,
RPWR, 1,
WPSR, 1,
LSTE, 1,
TAST, 1,
Offset (0x41),
S3ON, 1,
S4ON, 1,
S5ON, 1,
Offset (0x42),
NOST, 1,
CRRE, 1,
Offset (0x43),
ACOS, 1,
KBLS, 1,
KBEN, 1,
TPOK, 1,
TPDS, 1,
RCST, 1,
UCSP, 1,
UCEN, 1,
SYSA, 1,
AUMO, 1,
HTKC, 1,
S4FG, 1,
, 1,
BFUC, 2,
FG78, 1,
, 7,
TPCS, 1,
ALSC, 1,
AKBC, 1,
AKBS, 1,
ALSS, 1,
KBLC, 1,
, 1,
HTKS, 1,
Offset (0x47),
EVS2, 8,
EVS3, 8,
OSSW, 1,
ROLO, 1,
LSTA, 1,
PRNO, 1,
VOLD, 1,
VOLU, 1,
BTON, 1,
WLEN, 1,
MIF2, 8,
MIF3, 8,
MIF4, 8,
BRIL, 8,
CRKF, 8,
PAID, 1,
PAIG, 1,
I2CS, 1,
Offset (0x50),
DR0T, 8,
DR1T, 8,
TPTP, 8,
VGAT, 8,
PCHT, 8,
SYST, 8,
SCPT, 8,
CTMP, 8,
FTMP, 7,
Offset (0x5E),
TMPC, 8,
Offset (0x60),
B1CH, 32,
B2CH, 32,
B1MO, 16,
B2MO, 16,
B1SN, 16,
B2SN, 16,
B1DT, 16,
B2DT, 16,
B1CY, 16,
FUSL, 8,
FUSH, 8,
BMIL, 8,
BMIH, 8,
HIDL, 8,
HIDH, 8,
FMVL, 8,
FMVH, 8,
DAVL, 8,
DAVH, 8,
B2IN, 1,
B2VA, 1,
B2IC, 1,
B2FU, 1,
, 1,
B2DE, 1,
B2AN, 1,
Offset (0x81),
, 1,
B2WC, 1,
B2PC, 1,
B2NC, 1,
B2DO, 1,
B2WO, 1,
B2PO, 1,
B2NO, 1,
B2TM, 16,
Offset (0x86),
Offset (0x88),
B2RS, 16,
Offset (0x8B),
TPTY, 3,
Offset (0x8C),
Offset (0x8F),
B1MA, 64,
Offset (0x98),
B2MA, 64,
Offset (0xA2),
Offset (0xA4),
Offset (0xA6),
B2CV, 16,
Offset (0xAA),
RTEP, 16,
BET2, 16,
Offset (0xB0),
CPUT, 8,
Offset (0xB2),
Offset (0xB3),
Offset (0xB4),
GPUT, 8,
Offset (0xB6),
B1TM, 16,
BAPV, 16,
Offset (0xBC),
B1CV, 16,
Offset (0xC1),
B1DI, 1,
B1IC, 1,
BATN, 1,
Offset (0xC2),
BARC, 16,
BADC, 16,
BADV, 16,
BDCW, 16,
BDCL, 16,
BAFC, 16,
BAPR, 16,
B1CR, 16,
B1AR, 16,
Offset (0xE0),
LUX1, 8,
LUX2, 8,
SBMA, 8,
Offset (0xF0),
BAPS, 1,
B1FU, 1,
BATT, 1,
B1DE, 1,
B1AN, 1,
Offset (0xF1),
, 1,
B1WC, 1,
B1PC, 1,
B1NC, 1,
B1DO, 1,
B1WO, 1,
B1PO, 1,
B1NO, 1,
Offset (0xF5),
F1SP, 16,
F2SP, 16,
FAN1, 8,
FAN2, 8,
BCG1, 16,
BCG2, 16
}
Mutex (BATM, 0x07)
Device (BAT1)
{
Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (ECA2)
{
If ((BNUM & One))
{
Return (0x1F)
}
}
Return (0x0B)
}
Method (_BIF, 0, NotSerialized) // _BIF: Battery Information
{
Name (BPKG, Package (0x0D)
{
Zero,
Ones,
Ones,
One,
Ones,
Zero,
Zero,
0x64,
Zero,
"VIUU4",
"BAT20101001",
"LiP",
"Lenovo IdeaPad"
})
Name (BPKH, Package (0x0D)
{
Zero,
Ones,
Ones,
One,
Ones,
Zero,
Zero,
0x64,
Zero,
"VIUU4",
"BAT20101001",
"LION",
"Lenovo IdeaPad"
})
Name (MDST, Buffer (0x05)
{
" "
})
Name (SNST, Buffer (0x05)
{
" "
})
Name (TPST, Buffer (0x05)
{
" "
})
Name (LENV, Buffer (0x09)
{
" "
})
If (ECA2)
{
Local0 = BAFC /* \_SB_.PCI0.LPCB.H_EC.BAFC */
If (Local0)
{
BPKG [One] = BADC /* \_SB_.PCI0.LPCB.H_EC.BADC */
BPKG [0x02] = Local0
BPKG [0x04] = BADV /* \_SB_.PCI0.LPCB.H_EC.BADV */
Divide (Local0, 0x0A, Local1, Local2)
BPKG [0x05] = Local2
Divide (Local0, 0x14, Local1, Local2)
BPKG [0x06] = Local2
BPKH [One] = BADC /* \_SB_.PCI0.LPCB.H_EC.BADC */
BPKH [0x02] = Local0
BPKH [0x04] = BADV /* \_SB_.PCI0.LPCB.H_EC.BADV */
Divide (Local0, 0x0A, Local1, Local2)
BPKH [0x05] = Local2
Divide (Local0, 0x14, Local1, Local2)
BPKH [0x06] = Local2
}
}
If ((B1CH == 0x0050694C))
{
Return (BPKG) /* \_SB_.PCI0.LPCB.H_EC.BAT1._BIF.BPKG */
}
Else
{
Return (BPKH) /* \_SB_.PCI0.LPCB.H_EC.BAT1._BIF.BPKH */
}
}
Method (POSW, 1, NotSerialized)
{
If ((Arg0 & 0x8000))
{
If ((Arg0 == 0xFFFF))
{
Return (Ones)
}
Else
{
Local0 = ~Arg0
Local0++
Local0 &= 0xFFFF
Return (Local0)
}
}
Else
{
Return (Arg0)
}
}
Method (_BST, 0, NotSerialized) // _BST: Battery Status
{
Acquire (BATM, 0xFFFF)
Name (PKG1, Package (0x04)
{
Ones,
Ones,
Ones,
Ones
})
If (ECA2)
{
Local0 = (B1IC << One)
Local1 = (B1DI | Local0)
PKG1 [Zero] = Local1
Local2 = B1CR /* \_SB_.PCI0.LPCB.H_EC.B1CR */
Local2 = POSW (Local2)
Local3 = BAPV /* \_SB_.PCI0.LPCB.H_EC.BAPV */
Divide (Local3, 0x03E8, Local4, Local3)
Local2 *= Local3
PKG1 [One] = Local2
PKG1 [0x02] = BARC /* \_SB_.PCI0.LPCB.H_EC.BARC */
PKG1 [0x03] = BAPV /* \_SB_.PCI0.LPCB.H_EC.BAPV */
}
Release (BATM)
Return (PKG1) /* \_SB_.PCI0.LPCB.H_EC.BAT1._BST.PKG1 */
}
Method (_PCL, 0, NotSerialized) // _PCL: Power Consumer List
{
Return (_SB) /* \_SB_ */
}
}
Device (VPC0)
{
Name (_HID, "VPC2004") // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Name (_VPC, 0xFCFDE104)
Name (VPCD, Zero)
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
Method (_CFG, 0, NotSerialized)
{
Return (_VPC) /* \_SB_.PCI0.LPCB.H_EC.VPC0._VPC */
}
Method (VPCR, 1, Serialized)
{
If ((Arg0 == One))
{
VPCD = VCMD /* \_SB_.PCI0.LPCB.H_EC.VCMD */
}
Else
{
VPCD = VDAT /* \_SB_.PCI0.LPCB.H_EC.VDAT */
}
Return (VPCD) /* \_SB_.PCI0.LPCB.H_EC.VPC0.VPCD */
}
Method (VPCW, 2, Serialized)
{
If ((Arg0 == One))
{
VCMD = Arg1
}
Else
{
VDAT = Arg1
}
Return (Zero)
}
Method (SVCR, 1, Serialized)
{
If ((Arg0 == Zero)){}
If ((Arg0 == One)){}
If ((Arg0 == 0x02))
{
AUMO = Zero
}
If ((Arg0 == 0x03))
{
AUMO = One
}
}
Method (HALS, 0, NotSerialized)
{
Local0 = Zero
If ((One == KBLC))
{
Local0 |= 0x10
}
If ((One == KBLS))
{
Local0 |= 0x20
}
If ((One == UCSP))
{
Local0 |= 0x40
}
If ((One == UCEN))
{
Local0 |= 0x80
}
If ((One == HTKS))
{
Local0 |= 0x0200
}
If ((Zero == HTKC))
{
Local0 |= 0x0400
}
Return (Local0)
}
Method (SALS, 1, Serialized)
{
If ((Arg0 == 0x08))
{
KBLS = One
Return (Zero)
}
If ((Arg0 == 0x09))
{
KBLS = Zero
Return (Zero)
}
If ((Arg0 == 0x0A))
{
UCEN = One
SSM2 = 0x33
SSMP = 0xCA
Return (Zero)
}
If ((Arg0 == 0x0B))
{
UCEN = Zero
SSM2 = 0x32
SSMP = 0xCA
Return (Zero)
}
If ((Arg0 == 0x0E))
{
HTKC = Zero
SSM2 = 0x31
SSMP = 0xCA
Return (Zero)
}
If ((Arg0 == 0x0F))
{
HTKC = One
SSM2 = 0x30
SSMP = 0xCA
Return (Zero)
}
Return (Zero)
}
Method (GBMD, 0, NotSerialized)
{
Local0 = 0x10000000
If ((One == CDMB))
{
Local0 |= One
}
If ((One == BTSM))
{
Local0 |= 0x02
}
If ((One == FCGM))
{
Local0 |= 0x04
}
If ((One == MBBD))
{
Local0 |= 0x08
}
If ((One == M2BD))
{
Local0 |= 0x10
}
If ((One == BTSM))
{
Local0 |= 0x20
}
If ((One == BTIL))
{
Local0 |= 0x80
}
If ((One == BTPF))
{
Local0 |= 0x0100
}
If ((Zero == BTCM))
{
Local0 |= 0x0200
}
If ((One == BTOV))
{
Local0 |= 0x0800
}
If ((One == ACST))
{
Local0 |= 0x8000
}
If ((0x02 == ACST))
{
Local0 |= 0x00010000
}
If ((0x03 == ACST))
{
Local0 |= 0x00018000
}
If ((One == QKSP))
{
Local0 |= 0x00020000
}
If ((One == SPSU))
{
Local0 |= 0x00040000
}
If ((One == ADSU))
{
Local0 |= 0x00080000
}
If ((One == SHPS))
{
Local0 |= 0x00400000
}
Return (Local0)
}
Method (SBMC, 1, NotSerialized)
{
If ((Arg0 == Zero))
{
CDMB = Zero
Return (Zero)
}
If ((Arg0 == One))
{
CDMB = One
Return (Zero)
}
If ((Arg0 == 0x03))
{
BTCM = One
Return (Zero)
}
If ((Arg0 == 0x05))
{
BTCM = Zero
Return (Zero)
}
If ((Arg0 == 0x06))
{
BTSM = Zero
}
If ((Arg0 == 0x07))
{
SBMA = Arg0
Return (Zero)
}
If ((Arg0 == 0x08))
{
SBMA = Arg0
Return (Zero)
}
If ((Arg0 == 0x09))
{
SHPS = One
Return (Zero)
}
If ((Arg0 == 0x0A)){}
If ((Arg0 == 0x0B)){}
If ((Arg0 == 0x10))
{
SHPS = Zero
Return (Zero)
}
Return (Zero)
}
Method (MHCF, 1, NotSerialized)
{
Local0 = Arg0
(Local0 & 0x20)
Local0 >>= 0x05
BFUC = Local0
Return (Local0)
}
Method (MHPF, 1, NotSerialized)
{
Name (BFWB, Buffer (0x25){})
CreateByteField (BFWB, Zero, FB0)
CreateByteField (BFWB, One, FB1)
CreateByteField (BFWB, 0x02, FB2)
CreateByteField (BFWB, 0x03, FB3)
CreateField (BFWB, 0x20, 0x0100, FB4)
CreateByteField (BFWB, 0x24, FB5)
If ((SizeOf (Arg0) <= 0x25))
{
If ((SMPR != Zero))
{
FB1 = SMST /* \_SB_.PCI0.LPCB.H_EC.SMST */
}
Else
{
BFWB = Arg0
SMAD = FB2 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB2_ */
SMCM = FB3 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB3_ */
BCNT = FB5 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB5_ */
Local0 = FB0 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB0_ */
If (((Local0 & One) == Zero))
{
SMD0 = FB4 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB4_ */
}
SMPR = FB0 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB0_ */
Local0 = 0x03E8
While (SMPR)
{
Sleep (One)
Local0--
}
Local0 = FB0 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB0_ */
If (((Local0 & One) != Zero))
{
FB4 = SMD0 /* \_SB_.PCI0.LPCB.H_EC.SMD0 */
}
FB1 = SMST /* \_SB_.PCI0.LPCB.H_EC.SMST */
}
Return (BFWB) /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.BFWB */
}
}
Method (SMTF, 1, NotSerialized)
{
If ((Arg0 == Zero))
{
Return (BET2) /* \_SB_.PCI0.LPCB.H_EC.BET2 */
}
If ((Arg0 == One))
{
Return (Zero)
}
Return (Zero)
}
Method (MHIF, 1, NotSerialized)
{
If ((Arg0 == Zero))
{
Name (RETB, Buffer (0x0A){})
RETB [Zero] = FUSL /* \_SB_.PCI0.LPCB.H_EC.FUSL */
RETB [One] = FUSH /* \_SB_.PCI0.LPCB.H_EC.FUSH */
RETB [0x02] = BMIL /* \_SB_.PCI0.LPCB.H_EC.BMIL */
RETB [0x03] = BMIH /* \_SB_.PCI0.LPCB.H_EC.BMIH */
RETB [0x04] = HIDL /* \_SB_.PCI0.LPCB.H_EC.HIDL */
RETB [0x05] = HIDH /* \_SB_.PCI0.LPCB.H_EC.HIDH */
RETB [0x06] = FMVL /* \_SB_.PCI0.LPCB.H_EC.FMVL */
RETB [0x07] = FMVH /* \_SB_.PCI0.LPCB.H_EC.FMVH */
RETB [0x08] = DAVL /* \_SB_.PCI0.LPCB.H_EC.DAVL */
RETB [0x09] = DAVH /* \_SB_.PCI0.LPCB.H_EC.DAVH */
Return (RETB) /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHIF.RETB */
}
}
Method (GSBI, 1, NotSerialized)
{
Name (BT11, Zero)
Name (BTIF, Buffer (0x53){})
CreateWordField (BTIF, Zero, IFDC)
CreateWordField (BTIF, 0x02, IFFC)
CreateWordField (BTIF, 0x04, IFRC)
CreateWordField (BTIF, 0x06, IFAT)
CreateWordField (BTIF, 0x08, IFAF)
CreateWordField (BTIF, 0x0A, IFVT)
CreateWordField (BTIF, 0x0C, IFCR)
CreateWordField (BTIF, 0x0E, IFTP)
CreateWordField (BTIF, 0x10, IFMD)
CreateWordField (BTIF, 0x12, IFFD)
CreateWordField (BTIF, 0x14, IFDV)
CreateField (BTIF, 0xB0, 0x50, IFCH)
CreateField (BTIF, 0x0100, 0x40, IFDN)
CreateField (BTIF, 0x0140, 0x60, IFMN)
CreateField (BTIF, 0x01A0, 0xB8, IFBC)
CreateField (BTIF, 0x0258, 0x40, IFBV)
IFDC = (BADC / 0x0A)
IFFC = (BAFC / 0x0A)
IFRC = (BARC / 0x0A)
IFAT = RTEP /* \_SB_.PCI0.LPCB.H_EC.RTEP */
IFAF = BET2 /* \_SB_.PCI0.LPCB.H_EC.BET2 */
IFVT = BAPV /* \_SB_.PCI0.LPCB.H_EC.BAPV */
IFCR = B1CR /* \_SB_.PCI0.LPCB.H_EC.B1CR */
IFTP = B1TM /* \_SB_.PCI0.LPCB.H_EC.B1TM */
IFMD = B1DT /* \_SB_.PCI0.LPCB.H_EC.B1DT */
IFFD = B1DT /* \_SB_.PCI0.LPCB.H_EC.B1DT */
IFDV = BADV /* \_SB_.PCI0.LPCB.H_EC.BADV */
IFCH = Zero
IFCH = B1CH /* \_SB_.PCI0.LPCB.H_EC.B1CH */
IFDN = Zero
IFDN = B2MA /* \_SB_.PCI0.LPCB.H_EC.B2MA */
IFMN = Zero
IFMN = B1MA /* \_SB_.PCI0.LPCB.H_EC.B1MA */
IFBC = Zero
BT11 = 0x17
While (BT11)
{
ADDH = 0x08
ADDL = (0x41 + BT11)
Sleep (0x02)
BTIF [(0x33 + BT11)] = ADDA /* \_SB_.PCI0.LPCB.H_EC.ADDA */
BT11--
}
IFBV = Zero
BTIF [0x4B] = BMIL /* \_SB_.PCI0.LPCB.H_EC.BMIL */
BTIF [0x4C] = BMIH /* \_SB_.PCI0.LPCB.H_EC.BMIH */
BTIF [0x4D] = HIDL /* \_SB_.PCI0.LPCB.H_EC.HIDL */
BTIF [0x4E] = HIDH /* \_SB_.PCI0.LPCB.H_EC.HIDH */
BTIF [0x4F] = FMVL /* \_SB_.PCI0.LPCB.H_EC.FMVL */
BTIF [0x50] = FMVH /* \_SB_.PCI0.LPCB.H_EC.FMVH */
BTIF [0x51] = DAVL /* \_SB_.PCI0.LPCB.H_EC.DAVL */
BTIF [0x52] = DAVH /* \_SB_.PCI0.LPCB.H_EC.DAVH */
E907 = BTIF /* \_SB_.PCI0.LPCB.H_EC.VPC0.GSBI.BTIF */
Return (BTIF) /* \_SB_.PCI0.LPCB.H_EC.VPC0.GSBI.BTIF */
}
Method (HODD, 0, NotSerialized)
{
Return (0xFF)
}
Method (SODD, 1, Serialized)
{
}
Method (GBID, 0, Serialized)
{
Name (GBUF, Package (0x04)
{
Buffer (0x02)
{
0x00, 0x00 // ..
},
Buffer (0x02)
{
0x00, 0x00 // ..
},
Buffer (0x08)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........
},
Buffer (0x08)
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // ........
}
})
DerefOf (GBUF [Zero]) [Zero] = B1CY /* \_SB_.PCI0.LPCB.H_EC.B1CY */
DerefOf (GBUF [One]) [Zero] = Zero
DerefOf (GBUF [0x02]) [Zero] = BMIL /* \_SB_.PCI0.LPCB.H_EC.BMIL */
DerefOf (GBUF [0x02]) [One] = BMIH /* \_SB_.PCI0.LPCB.H_EC.BMIH */
DerefOf (GBUF [0x02]) [0x02] = HIDL /* \_SB_.PCI0.LPCB.H_EC.HIDL */
DerefOf (GBUF [0x02]) [0x03] = HIDH /* \_SB_.PCI0.LPCB.H_EC.HIDH */
DerefOf (GBUF [0x02]) [0x04] = FMVL /* \_SB_.PCI0.LPCB.H_EC.FMVL */
DerefOf (GBUF [0x02]) [0x05] = FMVH /* \_SB_.PCI0.LPCB.H_EC.FMVH */
DerefOf (GBUF [0x02]) [0x06] = DAVL /* \_SB_.PCI0.LPCB.H_EC.DAVL */
DerefOf (GBUF [0x02]) [0x07] = DAVH /* \_SB_.PCI0.LPCB.H_EC.DAVH */
DerefOf (GBUF [0x03]) [Zero] = Zero
Return (GBUF) /* \_SB_.PCI0.LPCB.H_EC.VPC0.GBID.GBUF */
}
}
Method (_Q30, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
P8XH (Zero, 0x30)
Sleep (0x012C)
PWRS = One
PNOT ()
}
Method (_Q31, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
P8XH (Zero, 0x31)
Sleep (0x012C)
PWRS = Zero
PNOT ()
}
Method (_Q0A, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
P8XH (Zero, 0x31)
PWRS = RPWR /* \_SB_.PCI0.LPCB.H_EC.RPWR */
Notify (\_SB.ADP1, 0x80) // Status Change
PNOT ()
}
Method (_Q50, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
Notify (\_SB.PCI0.LPCB.H_EC.VPC0, 0x80) // Status Change
}
Method (_Q38, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
P8XH (Zero, 0x38)
Sleep (0x012C)
DHCF (0x02, Zero)
}
Method (_Q39, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
P8XH (Zero, 0x39)
Sleep (0x012C)
DHCF (0x03, Zero)
}
Method (_Q32, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
P8XH (Zero, 0x32)
PNOT ()
}
Method (_Q0B, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
P8XH (Zero, 0x33)
Sleep (0x05DC)
BNUM = Zero
BNUM |= BAPS /* \_SB_.PCI0.LPCB.H_EC.BAPS */
Notify (\_SB.PCI0.LPCB.H_EC.BAT1, 0x80) // Status Change
Sleep (0x05DC)
Notify (\_SB.PCI0.LPCB.H_EC.BAT1, 0x81) // Information Change
PNOT ()
}
Method (_Q0C, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
LIDM ()
}
Method (_Q0D, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
LIDM ()
}
Name (ECPS, Zero)
Method (PCA2, 0, NotSerialized)
{
Local0 = ECPS /* \_SB_.PCI0.LPCB.H_EC.ECPS */
If (CondRefOf (\_SB.PCI0.PEG0.PEGP.PSAP))
{
If ((ECPS < \_SB.PCI0.PEG0.PEGP.PSAP))
{
Local0 = \_SB.PCI0.PEG0.PEGP.PSAP /* External reference */
}
}
If (CondRefOf (\_PR.CPU0._PPC))
{
\_PR.CPPC = Local0
PNOT ()
}
Return (Local0)
}
Method (_Q72, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
P8XH (Zero, 0x72)
If ((PSTA != 0xFF))
{
ECPS = PSTA /* \_SB_.PCI0.LPCB.H_EC.PSTA */
PCA2 ()
PAID = Zero
}
}
Method (_Q73, 0, NotSerialized) // _Qxx: EC Query, xx=0x00-0xFF
{
P8XH (Zero, 0x73)
Notify (\_SB.PCI0.PEG0.PEGP, DSTA)
PAIG = Zero
}
}
Scope (\_SB.PCI0.XHC.RHUB)
{
Method (GPLD, 2, Serialized)
{
Name (PCKG, Package (0x01)
{
Buffer (0x10){}
})
CreateField (DerefOf (PCKG [Zero]), Zero, 0x07, REV)
REV = One
CreateField (DerefOf (PCKG [Zero]), 0x40, One, VISI)
VISI = Arg0
CreateField (DerefOf (PCKG [Zero]), 0x57, 0x08, GPOS)
GPOS = Arg1
Return (PCKG) /* \_SB_.PCI0.XHC_.RHUB.GPLD.PCKG */
}
Method (GUPC, 1, Serialized)
{
Name (PCKG, Package (0x04)
{
Zero,
0xFF,
Zero,
Zero
})
PCKG [Zero] = Arg0
Return (PCKG) /* \_SB_.PCI0.XHC_.RHUB.GUPC.PCKG */
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS01)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, Zero))
}
}
Scope (\_SB.PCI0.XHC.RHUB.USR1)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, Zero))
}
}
Scope (\_SB.PCI0.XHC.RHUB.SS01)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, Zero))
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS04)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (One))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x04))
}
Device (CRGB)
{
Method (_STA, 0, Serialized) // _STA: Status
{
Return (0x0F)
}
Method (_ADR, 0, Serialized) // _ADR: Address
{
Return (0x04)
}
Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities
{
Name (UPCP, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Return (UPCP) /* \_SB_.PCI0.XHC_.RHUB.HS04.CRGB._UPC.UPCP */
}
Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device
{
Name (PLDS, Package (0x01)
{
Buffer (0x10)
{
/* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0008 */ 0x24, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 // $.......
}
})
Name (PLDR, Package (0x01)
{
Buffer (0x14)
{
/* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0008 */ 0x24, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, // $.......
/* 0010 */ 0xC8, 0x00, 0xA1, 0x00 // ....
}
})
Return (PLDR) /* \_SB_.PCI0.XHC_.RHUB.HS04.CRGB._PLD.PLDR */
}
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS05)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (One))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x05))
}
Device (CRGB)
{
Method (_STA, 0, Serialized) // _STA: Status
{
Return (0x0F)
}
Method (_ADR, 0, Serialized) // _ADR: Address
{
Return (0x05)
}
Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities
{
Name (UPCP, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Return (UPCP) /* \_SB_.PCI0.XHC_.RHUB.HS05.CRGB._UPC.UPCP */
}
Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device
{
Name (PLDS, Package (0x01)
{
Buffer (0x10)
{
/* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0008 */ 0x24, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 // $.......
}
})
Name (PLDR, Package (0x01)
{
Buffer (0x14)
{
/* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0008 */ 0x24, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, // $.......
/* 0010 */ 0xC8, 0x00, 0xA1, 0x00 // ....
}
})
Return (PLDR) /* \_SB_.PCI0.XHC_.RHUB.HS05.CRGB._PLD.PLDR */
}
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS07)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (One))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x07))
}
Device (CRGB)
{
Method (_STA, 0, Serialized) // _STA: Status
{
Return (0x0F)
}
Method (_ADR, 0, Serialized) // _ADR: Address
{
Return (0x07)
}
Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities
{
Name (UPCP, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Return (UPCP) /* \_SB_.PCI0.XHC_.RHUB.HS07.CRGB._UPC.UPCP */
}
Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device
{
Name (PLDS, Package (0x01)
{
Buffer (0x10)
{
/* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0008 */ 0x24, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 // $.......
}
})
Name (PLDR, Package (0x01)
{
Buffer (0x14)
{
/* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0008 */ 0x24, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, // $.......
/* 0010 */ 0xC8, 0x00, 0xA1, 0x00 // ....
}
})
Return (PLDR) /* \_SB_.PCI0.XHC_.RHUB.HS07.CRGB._PLD.PLDR */
}
}
}
Scope (\_SB.PCI0.XHC.RHUB.SS04)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (One))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x05))
}
Device (CRGB)
{
Method (_STA, 0, Serialized) // _STA: Status
{
Return (0x0F)
}
Method (_ADR, 0, Serialized) // _ADR: Address
{
Return (0x14)
}
Method (_UPC, 0, Serialized) // _UPC: USB Port Capabilities
{
Name (UPCP, Package (0x04)
{
0xFF,
0xFF,
Zero,
Zero
})
Return (UPCP) /* \_SB_.PCI0.XHC_.RHUB.SS04.CRGB._UPC.UPCP */
}
Method (_PLD, 0, Serialized) // _PLD: Physical Location of Device
{
Name (PLDS, Package (0x01)
{
Buffer (0x10)
{
/* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0008 */ 0x24, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 // $.......
}
})
Name (PLDR, Package (0x01)
{
Buffer (0x14)
{
/* 0000 */ 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........
/* 0008 */ 0x24, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, // $.......
/* 0010 */ 0xC8, 0x00, 0xA1, 0x00 // ....
}
})
Return (PLDR) /* \_SB_.PCI0.XHC_.RHUB.SS04.CRGB._PLD.PLDR */
}
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS02)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (One))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (One, 0x02))
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS03)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (One))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (One, 0x03))
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS06)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (One))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (One, One))
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS08)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x08))
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS09)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x09))
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS10)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x0A))
}
}
Scope (\_SB.PCI0.XHC.RHUB.USR2)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, Zero))
}
}
Scope (\_SB.PCI0.XHC.RHUB.SS02)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (One))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (One, 0x03))
}
}
Scope (\_SB.PCI0.XHC.RHUB.SS03)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (One))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (One, 0x02))
}
}
Scope (\_SB.PCI0.XHC.RHUB.SS05)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x06))
}
}
Scope (\_SB.PCI0.XHC.RHUB.SS06)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x0C))
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS11)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x0D))
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS12)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x0E))
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS13)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x0F))
}
}
Scope (\_SB.PCI0.XHC.RHUB.HS14)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x10))
}
}
Scope (\_SB.PCI0.XHC.RHUB.SS07)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x11))
}
}
Scope (\_SB.PCI0.XHC.RHUB.SS08)
{
Method (_UPC, 0, NotSerialized) // _UPC: USB Port Capabilities
{
Return (GUPC (Zero))
}
Method (_PLD, 0, NotSerialized) // _PLD: Physical Location of Device
{
Return (GPLD (Zero, 0x12))
}
}
}