/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20180810 (64-bit version)
* Copyright (c) 2000 - 2018 Intel Corporation
*
* Disassembling to symbolic ASL+ operators
*
* Disassembly of DSDT, Mon Jan 25 11:10:00 2021
*
* Original Table Header:
* Signature "DSDT"
* Length 0x00003D45 (15685)
* Revision 0x02
* Checksum 0x86
* OEM ID "COREv4"
* OEM Table ID "COREBOOT"
* OEM Revision 0x00010001 (65537)
* Compiler ID "INTL"
* Compiler Version 0x20200717 (538969879)
*/
DefinitionBlock ("", "DSDT", 2, "COREv4", "COREBOOT", 0x00010001)
{
External (_SB_.ALIB, MethodObj) // 2 Arguments
External (_SB_.C000, DeviceObj)
External (_SB_.C001, DeviceObj)
External (_SB_.C002, DeviceObj)
External (_SB_.C003, DeviceObj)
External (_SB_.C004, DeviceObj)
External (_SB_.C005, DeviceObj)
External (_SB_.C006, DeviceObj)
External (_SB_.C007, DeviceObj)
External (_SB_.PCI0.TOM1, UnknownObj)
External (_SB_.PCI0.TOM2, UnknownObj)
External (NVSA, UnknownObj)
External (OIPG, UnknownObj)
External (TOM1, IntObj)
Scope (\)
{
Name (OIPG, Package (0x02)
{
Package (0x04)
{
One,
Zero,
0xFFFFFFFFFFFFFFFF,
"AMD0030"
},
Package (0x04)
{
0x03,
Zero,
0x89,
"AMD0030"
}
})
}
Scope (\)
{
Name (NVSA, 0xCA683000)
}
Name (PMOD, Zero)
OperationRegion (GNVS, SystemMemory, NVSA, 0x1000)
Field (GNVS, ByteAcc, NoLock, Preserve)
{
PCNT, 8,
LIDS, 8,
PWRS, 8,
CBMC, 32,
PM1I, 64,
GPEI, 64,
TMPS, 8,
TCRT, 8,
TPSV, 8,
Offset (0x100),
VBT0, 32,
VBT1, 32,
VBT2, 32,
VBT3, 16,
VBT4, 2048,
VBT5, 512,
VBT6, 512,
VBT7, 32,
VBT8, 32,
VBT9, 32,
CHVD, 24576,
VBTA, 32,
MEHH, 256,
RMOB, 32,
RMOL, 32,
ROVP, 32,
ROVL, 32,
RWVP, 32,
RWVL, 32
}
OperationRegion (PRQM, SystemIO, 0x0C00, 0x02)
Field (PRQM, ByteAcc, NoLock, Preserve)
{
PRQI, 8,
PRQD, 8
}
IndexField (PRQI, PRQD, ByteAcc, NoLock, Preserve)
{
PIRA, 8,
PIRB, 8,
PIRC, 8,
PIRD, 8,
PIRE, 8,
PIRF, 8,
PIRG, 8,
PIRH, 8,
Offset (0x43),
PMMC, 8,
Offset (0x62),
PGPI, 8,
Offset (0x70),
PI20, 8,
PI21, 8,
PI22, 8,
PI23, 8,
PUA0, 8,
PUA1, 8,
PI24, 8,
PI25, 8,
PUA2, 8,
PUA3, 8,
Offset (0x80),
IORA, 8,
IORB, 8,
IORC, 8,
IORD, 8,
IORE, 8,
IORF, 8,
IORG, 8,
IORH, 8,
Offset (0xC3),
IMMC, 8,
Offset (0xE2),
IGPI, 8,
Offset (0xF0),
II20, 8,
II21, 8,
II22, 8,
II23, 8,
IUA0, 8,
IUA1, 8,
II24, 8,
II25, 8,
IUA2, 8,
IUA3, 8
}
Method (WAL1, 0, NotSerialized)
{
Local0 = Buffer (0x03){}
CreateWordField (Local0, Zero, F1SZ)
CreateByteField (Local0, 0x02, F1DA)
F1SZ = 0x03
F1DA = (PWRS ^ One)
Debug = Concatenate ("ALIB call: func 1 params ", Local0)
\_SB.ALIB (One, Local0)
}
Method (PNOT, 0, NotSerialized)
{
WAL1 ()
}
Method (PPKG, 0, NotSerialized)
{
If ((PCNT >= 0x08))
{
Return (Package (0x08)
{
\_SB.C000,
\_SB.C001,
\_SB.C002,
\_SB.C003,
\_SB.C004,
\_SB.C005,
\_SB.C006,
\_SB.C007
})
}
ElseIf ((PCNT >= 0x04))
{
Return (Package (0x04)
{
\_SB.C000,
\_SB.C001,
\_SB.C002,
\_SB.C003
})
}
ElseIf ((PCNT >= 0x02))
{
Return (Package (0x02)
{
\_SB.C000,
\_SB.C001
})
}
Else
{
Return (Package (0x01)
{
\_SB.C000
})
}
}
Name (SSFG, 0x09)
If (One)
{
SSFG = 0x0D
}
If (Zero)
{
SSFG = (SSFG & 0xF7)
}
Name (_S0, Package (0x04) // _S0_: S0 System State
{
Zero,
Zero,
Zero,
Zero
})
If ((SSFG & One))
{
Name (_S1, Package (0x04) // _S1_: S1 System State
{
One,
One,
Zero,
Zero
})
}
If ((SSFG & 0x02))
{
Name (_S2, Package (0x04) // _S2_: S2 System State
{
0x02,
0x02,
Zero,
Zero
})
}
If ((SSFG & 0x04))
{
Name (_S3, Package (0x04) // _S3_: S3 System State
{
0x03,
0x03,
Zero,
Zero
})
}
If ((SSFG & 0x08))
{
Name (_S4, Package (0x04) // _S4_: S4 System State
{
0x04,
0x04,
Zero,
Zero
})
}
Name (_S5, Package (0x04) // _S5_: S5 System State
{
0x05,
0x05,
Zero,
Zero
})
Scope (_SB)
{
Method (_SWS, 0, NotSerialized) // _SWS: System Wake Source
{
Return (PM1I) /* \PM1I */
}
}
Scope (_GPE)
{
Method (_SWS, 0, NotSerialized) // _SWS: System Wake Source
{
Return (GPEI) /* \GPEI */
}
}
Scope (_SB)
{
Method (MIN, 2, NotSerialized)
{
If ((Arg0 < Arg1))
{
Return (Arg0)
}
Else
{
Return (Arg1)
}
}
Method (SLEN, 1, NotSerialized)
{
Local0 = Arg0
Return (SizeOf (Local0))
}
Method (S2BF, 1, Serialized)
{
Local0 = (SLEN (Arg0) + One)
Name (BUFF, Buffer (Local0){})
BUFF = Arg0
Return (BUFF) /* \_SB_.S2BF.BUFF */
}
Method (SCMP, 2, NotSerialized)
{
Local0 = S2BF (Arg0)
Local1 = S2BF (Arg1)
Local4 = Zero
Local5 = SLEN (Arg0)
Local6 = SLEN (Arg1)
Local7 = MIN (Local5, Local6)
While ((Local4 < Local7))
{
Local2 = DerefOf (Local0 [Local4])
Local3 = DerefOf (Local1 [Local4])
If ((Local2 > Local3))
{
Return (One)
}
ElseIf ((Local2 < Local3))
{
Return (Ones)
}
Local4++
}
If ((Local4 < Local5))
{
Return (One)
}
ElseIf ((Local4 < Local6))
{
Return (Ones)
}
Else
{
Return (Zero)
}
}
Method (WCMP, 2, NotSerialized)
{
Local0 = S2BF (Arg0)
Local1 = S2BF (Arg1)
If ((SLEN (Arg0) < SLEN (Arg1)))
{
Return (Zero)
}
Local2 = Zero
Local3 = SLEN (Arg1)
While ((Local2 < Local3))
{
If ((DerefOf (Local0 [Local2]) != DerefOf (Local1 [Local2]
)))
{
Return (Zero)
}
Local2++
}
Return (One)
}
Method (I2BM, 1, NotSerialized)
{
Local0 = Zero
If ((Arg0 != Zero))
{
Local1 = One
Local0 = (Local1 << Arg0)
}
Return (Local0)
}
Device (PCI0)
{
Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID
Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID
Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number
{
Return (Zero)
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0B)
}
Name (PR0, Package (0x10)
{
Package (0x04)
{
0xFFFF,
Zero,
INTA,
Zero
},
Package (0x04)
{
0xFFFF,
Zero,
INTB,
Zero
},
Package (0x04)
{
0xFFFF,
Zero,
INTC,
Zero
},
Package (0x04)
{
0xFFFF,
Zero,
INTD,
Zero
},
Package (0x04)
{
0x0001FFFF,
Zero,
INTA,
Zero
},
Package (0x04)
{
0x0001FFFF,
One,
INTB,
Zero
},
Package (0x04)
{
0x0001FFFF,
0x02,
INTC,
Zero
},
Package (0x04)
{
0x0001FFFF,
0x03,
INTD,
Zero
},
Package (0x04)
{
0x0008FFFF,
Zero,
INTA,
Zero
},
Package (0x04)
{
0x0008FFFF,
One,
INTB,
Zero
},
Package (0x04)
{
0x0008FFFF,
0x02,
INTC,
Zero
},
Package (0x04)
{
0x0008FFFF,
0x03,
INTD,
Zero
},
Package (0x04)
{
0x0014FFFF,
Zero,
INTA,
Zero
},
Package (0x04)
{
0x0014FFFF,
One,
INTB,
Zero
},
Package (0x04)
{
0x0014FFFF,
0x02,
INTC,
Zero
},
Package (0x04)
{
0x0014FFFF,
0x03,
INTD,
Zero
}
})
Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table
{
Return (PR0) /* \_SB_.PCI0.PR0_ */
}
Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities
{
If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
{
Return (Arg3)
}
Else
{
CreateDWordField (Arg3, Zero, CDW1)
CDW1 |= 0x04
Return (Arg3)
}
}
Device (LPCB)
{
Name (_ADR, 0x00140003) // _ADR: Address
OperationRegion (CFG, PCI_Config, Zero, 0x0100)
Field (CFG, DWordAcc, NoLock, Preserve)
{
Offset (0xA0),
BAR, 32
}
Device (LDRC)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Name (CRS, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00001000, // Address Length
_Y00)
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00001000, // Address Length
_Y01)
})
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
CreateDWordField (CRS, \_SB.PCI0.LPCB.LDRC._Y00._BAS, SPIB) // _BAS: Base Address
CreateDWordField (CRS, \_SB.PCI0.LPCB.LDRC._Y01._BAS, ESPB) // _BAS: Base Address
Local0 = (BAR & 0xFFFFFF00)
SPIB = Local0
Local1 = (Local0 + 0x00010000)
ESPB = Local1
Return (CRS) /* \_SB_.PCI0.LPCB.LDRC.CRS_ */
}
}
Device (RTC0)
{
Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IRQNoFlags ()
{8}
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x02, // Length
)
})
}
Device (TMR)
{
Name (_HID, EisaId ("PNP0100") /* PC-class System Timer */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IRQNoFlags ()
{0}
IO (Decode16,
0x0040, // Range Minimum
0x0040, // Range Maximum
0x00, // Alignment
0x04, // Length
)
})
}
Device (SPKR)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0061, // Range Minimum
0x0061, // Range Maximum
0x00, // Alignment
0x01, // Length
)
})
}
Device (PIC)
{
Name (_HID, EisaId ("PNP0000") /* 8259-compatible Programmable Interrupt Controller */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IRQNoFlags ()
{2}
IO (Decode16,
0x0020, // Range Minimum
0x0020, // Range Maximum
0x00, // Alignment
0x02, // Length
)
IO (Decode16,
0x00A0, // Range Minimum
0x00A0, // Range Maximum
0x00, // Alignment
0x02, // Length
)
})
}
Device (MAD)
{
Name (_HID, EisaId ("PNP0200") /* PC-class DMA Controller */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
DMA (Compatibility, BusMaster, Transfer8, )
{4}
IO (Decode16,
0x0000, // Range Minimum
0x0000, // Range Maximum
0x10, // Alignment
0x10, // Length
)
IO (Decode16,
0x0081, // Range Minimum
0x0081, // Range Maximum
0x01, // Alignment
0x03, // Length
)
IO (Decode16,
0x0087, // Range Minimum
0x0087, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0089, // Range Minimum
0x0089, // Range Maximum
0x01, // Alignment
0x03, // Length
)
IO (Decode16,
0x008F, // Range Minimum
0x008F, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x00C0, // Range Minimum
0x00C0, // Range Maximum
0x10, // Alignment
0x20, // Length
)
})
}
Device (COPR)
{
Name (_HID, EisaId ("PNP0C04") /* x87-compatible Floating Point Processing Unit */) // _HID: Hardware ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x00F0, // Range Minimum
0x00F0, // Range Maximum
0x00, // Alignment
0x10, // Length
)
IRQNoFlags ()
{13}
})
}
}
Name (CRES, ResourceTemplate ()
{
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
0x0000, // Granularity
0x0000, // Range Minimum
0x00FF, // Range Maximum
0x0000, // Translation Offset
0x0100, // Length
,, _Y03)
IO (Decode16,
0x0CF8, // Range Minimum
0x0CF8, // Range Maximum
0x01, // Alignment
0x08, // Length
)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0000, // Range Minimum
0x0CF7, // Range Maximum
0x0000, // Translation Offset
0x0CF8, // Length
,, , TypeStatic, DenseTranslation)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x03B0, // Range Minimum
0x03DF, // Range Maximum
0x0000, // Translation Offset
0x0030, // Length
,, , TypeStatic, DenseTranslation)
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
0x0000, // Granularity
0x0D00, // Range Minimum
0xFFFF, // Range Maximum
0x0000, // Translation Offset
0xF300, // Length
,, , TypeStatic, DenseTranslation)
Memory32Fixed (ReadOnly,
0x000A0000, // Address Base
0x00020000, // Address Length
)
Memory32Fixed (ReadOnly,
0x000C0000, // Address Base
0x00020000, // Address Length
)
Memory32Fixed (ReadOnly,
0x00000000, // Address Base
0x00000000, // Address Length
_Y02)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CreateDWordField (CRES, \_SB.PCI0._Y02._BAS, MM1B) // _BAS: Base Address
CreateDWordField (CRES, \_SB.PCI0._Y02._LEN, MM1L) // _LEN: Length
MM1B = TOM1 /* External reference */
Local0 = 0x0000000100000000
Local0 -= TOM1 /* External reference */
MM1L = Local0
CreateWordField (CRES, \_SB.PCI0._Y03._MAX, BMAX) // _MAX: Maximum Base Address
CreateWordField (CRES, \_SB.PCI0._Y03._LEN, BLEN) // _LEN: Length
BMAX = 0x3F
BLEN = 0x40
Return (CRES) /* \_SB_.PCI0.CRES */
}
}
Method (\_PIC, 1, NotSerialized) // _PIC: Interrupt Model
{
Debug = Concatenate ("PIC MODE: ", Arg0)
PMOD = Arg0
}
Name (IRQP, ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
{
0x00000001,
0x00000003,
0x00000004,
0x00000005,
0x00000006,
0x00000007,
0x00000008,
0x00000009,
0x0000000A,
0x0000000B,
0x0000000C,
0x0000000E,
0x0000000F,
}
})
Name (IRQI, ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
{
0x00000010,
0x00000011,
0x00000012,
0x00000013,
0x00000014,
0x00000015,
0x00000016,
0x00000017,
}
})
Device (INTA)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (PMOD)
{
Local0 = IORA /* \IORA */
}
Else
{
Local0 = PIRA /* \PIRA */
}
If ((Local0 != 0x1F))
{
Debug = Concatenate (Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTA"), "._STA: "), Local0
), ", Enabled")
Return (0x0B)
}
Else
{
Debug = Concatenate (Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTA"), "._STA: "), Local0
), ", Disabled")
Return (0x09)
}
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
If (PMOD)
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTA"), "._DIS APIC")
IORA = 0x1F
}
Else
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTA"), "._DIS PIC")
PIRA = 0x1F
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
If (PMOD)
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTA"), "._PRS => APIC")
Return (IRQI) /* \_SB_.IRQI */
}
Else
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTA"), "._PRS => PIC")
Return (IRQP) /* \_SB_.IRQP */
}
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
{
0x00000000,
}
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTA"), "._CRS APIC: "), IORA)
IRQN = IORA /* \IORA */
}
Else
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTA"), "._CRS PIC: "), PIRA)
IRQN = PIRA /* \PIRA */
}
If ((IRQN == 0x1F))
{
Return (Buffer (0x02)
{
0x79, 0x00 // y.
})
}
Else
{
Return (Local0)
}
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x05, IRQN)
If (PMOD)
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTA"), "._SRS APIC: "), IRQN)
IORA = IRQN /* \_SB_.INTA._SRS.IRQN */
}
Else
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTA"), "._SRS PIC: "), IRQN)
PIRA = IRQN /* \_SB_.INTA._SRS.IRQN */
}
}
}
Device (INTB)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (PMOD)
{
Local0 = IORB /* \IORB */
}
Else
{
Local0 = PIRB /* \PIRB */
}
If ((Local0 != 0x1F))
{
Debug = Concatenate (Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTB"), "._STA: "), Local0
), ", Enabled")
Return (0x0B)
}
Else
{
Debug = Concatenate (Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTB"), "._STA: "), Local0
), ", Disabled")
Return (0x09)
}
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
If (PMOD)
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTB"), "._DIS APIC")
IORB = 0x1F
}
Else
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTB"), "._DIS PIC")
PIRB = 0x1F
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
If (PMOD)
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTB"), "._PRS => APIC")
Return (IRQI) /* \_SB_.IRQI */
}
Else
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTB"), "._PRS => PIC")
Return (IRQP) /* \_SB_.IRQP */
}
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
{
0x00000000,
}
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTB"), "._CRS APIC: "), IORB)
IRQN = IORB /* \IORB */
}
Else
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTB"), "._CRS PIC: "), PIRB)
IRQN = PIRB /* \PIRB */
}
If ((IRQN == 0x1F))
{
Return (Buffer (0x02)
{
0x79, 0x00 // y.
})
}
Else
{
Return (Local0)
}
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x05, IRQN)
If (PMOD)
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTB"), "._SRS APIC: "), IRQN)
IORB = IRQN /* \_SB_.INTB._SRS.IRQN */
}
Else
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTB"), "._SRS PIC: "), IRQN)
PIRB = IRQN /* \_SB_.INTB._SRS.IRQN */
}
}
}
Device (INTC)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (PMOD)
{
Local0 = IORC /* \IORC */
}
Else
{
Local0 = PIRC /* \PIRC */
}
If ((Local0 != 0x1F))
{
Debug = Concatenate (Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTC"), "._STA: "), Local0
), ", Enabled")
Return (0x0B)
}
Else
{
Debug = Concatenate (Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTC"), "._STA: "), Local0
), ", Disabled")
Return (0x09)
}
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
If (PMOD)
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTC"), "._DIS APIC")
IORC = 0x1F
}
Else
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTC"), "._DIS PIC")
PIRC = 0x1F
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
If (PMOD)
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTC"), "._PRS => APIC")
Return (IRQI) /* \_SB_.IRQI */
}
Else
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTC"), "._PRS => PIC")
Return (IRQP) /* \_SB_.IRQP */
}
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
{
0x00000000,
}
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTC"), "._CRS APIC: "), IORC)
IRQN = IORC /* \IORC */
}
Else
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTC"), "._CRS PIC: "), PIRC)
IRQN = PIRC /* \PIRC */
}
If ((IRQN == 0x1F))
{
Return (Buffer (0x02)
{
0x79, 0x00 // y.
})
}
Else
{
Return (Local0)
}
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x05, IRQN)
If (PMOD)
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTC"), "._SRS APIC: "), IRQN)
IORC = IRQN /* \_SB_.INTC._SRS.IRQN */
}
Else
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTC"), "._SRS PIC: "), IRQN)
PIRC = IRQN /* \_SB_.INTC._SRS.IRQN */
}
}
}
Device (INTD)
{
Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (PMOD)
{
Local0 = IORD /* \IORD */
}
Else
{
Local0 = PIRD /* \PIRD */
}
If ((Local0 != 0x1F))
{
Debug = Concatenate (Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTD"), "._STA: "), Local0
), ", Enabled")
Return (0x0B)
}
Else
{
Debug = Concatenate (Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTD"), "._STA: "), Local0
), ", Disabled")
Return (0x09)
}
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
If (PMOD)
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTD"), "._DIS APIC")
IORD = 0x1F
}
Else
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTD"), "._DIS PIC")
PIRD = 0x1F
}
}
Method (_PRS, 0, NotSerialized) // _PRS: Possible Resource Settings
{
If (PMOD)
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTD"), "._PRS => APIC")
Return (IRQI) /* \_SB_.IRQI */
}
Else
{
Debug = Concatenate (Concatenate ("PCI: \\_SB.", "INTD"), "._PRS => PIC")
Return (IRQP) /* \_SB_.IRQP */
}
}
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
{
0x00000000,
}
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTD"), "._CRS APIC: "), IORD)
IRQN = IORD /* \IORD */
}
Else
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTD"), "._CRS PIC: "), PIRD)
IRQN = PIRD /* \PIRD */
}
If ((IRQN == 0x1F))
{
Return (Buffer (0x02)
{
0x79, 0x00 // y.
})
}
Else
{
Return (Local0)
}
}
Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings
{
CreateWordField (Arg0, 0x05, IRQN)
If (PMOD)
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTD"), "._SRS APIC: "), IRQN)
IORD = IRQN /* \_SB_.INTD._SRS.IRQN */
}
Else
{
Debug = Concatenate (Concatenate (Concatenate ("PCI: \\_SB.", "INTD"), "._SRS PIC: "), IRQN)
PIRD = IRQN /* \_SB_.INTD._SRS.IRQN */
}
}
}
Device (AOAC)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x08)
}
PowerResource (I2C2, 0x00, 0x0000)
{
OperationRegion (AOAC, SystemMemory, 0xFED81E4E, 0x02)
Field (AOAC, ByteAcc, NoLock, Preserve)
{
TDS, 2,
DS, 1,
POD, 1,
SPRB, 1,
SRCO, 1,
SRB, 1,
ISWC, 1,
PRBS, 1,
RCOS, 1,
RBS, 1,
DOGS, 1,
D3CS, 1,
COS, 1,
STA0, 1,
STA1, 1
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = ((PRBS && RCOS) && RBS)
Debug = Concatenate (Concatenate (Concatenate ("AOAC.", "I2C2"), "._STA: "), Local0)
If (Local0)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_ON, 0, Serialized) // _ON_: Power On
{
Debug = Concatenate (Concatenate ("AOAC.", "I2C2"), "._ON")
ISWC = Zero
POD = One
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to power on"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_OFF, 0, Serialized) // _OFF: Power Off
{
Debug = Concatenate (Concatenate ("AOAC.", "I2C2"), "._OFF")
ISWC = Zero
POD = Zero
While (((PRBS || RCOS) || RBS))
{
Debug = "Waiting for device to power off"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_RST, 0, Serialized) // _RST: Device Reset
{
Debug = Concatenate (Concatenate ("AOAC.", "I2C2"), "._RST")
ISWC = One
SRB = One
Stall (0xC8)
SRB = Zero
ISWC = Zero
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to complete reset"
Stall (0x64)
}
}
}
PowerResource (I2C3, 0x00, 0x0000)
{
OperationRegion (AOAC, SystemMemory, 0xFED81E50, 0x02)
Field (AOAC, ByteAcc, NoLock, Preserve)
{
TDS, 2,
DS, 1,
POD, 1,
SPRB, 1,
SRCO, 1,
SRB, 1,
ISWC, 1,
PRBS, 1,
RCOS, 1,
RBS, 1,
DOGS, 1,
D3CS, 1,
COS, 1,
STA0, 1,
STA1, 1
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = ((PRBS && RCOS) && RBS)
Debug = Concatenate (Concatenate (Concatenate ("AOAC.", "I2C3"), "._STA: "), Local0)
If (Local0)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_ON, 0, Serialized) // _ON_: Power On
{
Debug = Concatenate (Concatenate ("AOAC.", "I2C3"), "._ON")
ISWC = Zero
POD = One
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to power on"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_OFF, 0, Serialized) // _OFF: Power Off
{
Debug = Concatenate (Concatenate ("AOAC.", "I2C3"), "._OFF")
ISWC = Zero
POD = Zero
While (((PRBS || RCOS) || RBS))
{
Debug = "Waiting for device to power off"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_RST, 0, Serialized) // _RST: Device Reset
{
Debug = Concatenate (Concatenate ("AOAC.", "I2C3"), "._RST")
ISWC = One
SRB = One
Stall (0xC8)
SRB = Zero
ISWC = Zero
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to complete reset"
Stall (0x64)
}
}
}
PowerResource (FUR0, 0x00, 0x0000)
{
OperationRegion (AOAC, SystemMemory, 0xFED81E56, 0x02)
Field (AOAC, ByteAcc, NoLock, Preserve)
{
TDS, 2,
DS, 1,
POD, 1,
SPRB, 1,
SRCO, 1,
SRB, 1,
ISWC, 1,
PRBS, 1,
RCOS, 1,
RBS, 1,
DOGS, 1,
D3CS, 1,
COS, 1,
STA0, 1,
STA1, 1
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = ((PRBS && RCOS) && RBS)
Debug = Concatenate (Concatenate (Concatenate ("AOAC.", "FUR0"), "._STA: "), Local0)
If (Local0)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_ON, 0, Serialized) // _ON_: Power On
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR0"), "._ON")
ISWC = Zero
POD = One
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to power on"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_OFF, 0, Serialized) // _OFF: Power Off
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR0"), "._OFF")
ISWC = Zero
POD = Zero
While (((PRBS || RCOS) || RBS))
{
Debug = "Waiting for device to power off"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_RST, 0, Serialized) // _RST: Device Reset
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR0"), "._RST")
ISWC = One
SRB = One
Stall (0xC8)
SRB = Zero
ISWC = Zero
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to complete reset"
Stall (0x64)
}
}
}
PowerResource (FUR1, 0x00, 0x0000)
{
OperationRegion (AOAC, SystemMemory, 0xFED81E58, 0x02)
Field (AOAC, ByteAcc, NoLock, Preserve)
{
TDS, 2,
DS, 1,
POD, 1,
SPRB, 1,
SRCO, 1,
SRB, 1,
ISWC, 1,
PRBS, 1,
RCOS, 1,
RBS, 1,
DOGS, 1,
D3CS, 1,
COS, 1,
STA0, 1,
STA1, 1
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = ((PRBS && RCOS) && RBS)
Debug = Concatenate (Concatenate (Concatenate ("AOAC.", "FUR1"), "._STA: "), Local0)
If (Local0)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_ON, 0, Serialized) // _ON_: Power On
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR1"), "._ON")
ISWC = Zero
POD = One
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to power on"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_OFF, 0, Serialized) // _OFF: Power Off
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR1"), "._OFF")
ISWC = Zero
POD = Zero
While (((PRBS || RCOS) || RBS))
{
Debug = "Waiting for device to power off"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_RST, 0, Serialized) // _RST: Device Reset
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR1"), "._RST")
ISWC = One
SRB = One
Stall (0xC8)
SRB = Zero
ISWC = Zero
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to complete reset"
Stall (0x64)
}
}
}
PowerResource (FUR2, 0x00, 0x0000)
{
OperationRegion (AOAC, SystemMemory, 0xFED81E60, 0x02)
Field (AOAC, ByteAcc, NoLock, Preserve)
{
TDS, 2,
DS, 1,
POD, 1,
SPRB, 1,
SRCO, 1,
SRB, 1,
ISWC, 1,
PRBS, 1,
RCOS, 1,
RBS, 1,
DOGS, 1,
D3CS, 1,
COS, 1,
STA0, 1,
STA1, 1
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = ((PRBS && RCOS) && RBS)
Debug = Concatenate (Concatenate (Concatenate ("AOAC.", "FUR2"), "._STA: "), Local0)
If (Local0)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_ON, 0, Serialized) // _ON_: Power On
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR2"), "._ON")
ISWC = Zero
POD = One
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to power on"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_OFF, 0, Serialized) // _OFF: Power Off
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR2"), "._OFF")
ISWC = Zero
POD = Zero
While (((PRBS || RCOS) || RBS))
{
Debug = "Waiting for device to power off"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_RST, 0, Serialized) // _RST: Device Reset
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR2"), "._RST")
ISWC = One
SRB = One
Stall (0xC8)
SRB = Zero
ISWC = Zero
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to complete reset"
Stall (0x64)
}
}
}
PowerResource (FUR3, 0x00, 0x0000)
{
OperationRegion (AOAC, SystemMemory, 0xFED81E74, 0x02)
Field (AOAC, ByteAcc, NoLock, Preserve)
{
TDS, 2,
DS, 1,
POD, 1,
SPRB, 1,
SRCO, 1,
SRB, 1,
ISWC, 1,
PRBS, 1,
RCOS, 1,
RBS, 1,
DOGS, 1,
D3CS, 1,
COS, 1,
STA0, 1,
STA1, 1
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Local0 = ((PRBS && RCOS) && RBS)
Debug = Concatenate (Concatenate (Concatenate ("AOAC.", "FUR3"), "._STA: "), Local0)
If (Local0)
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_ON, 0, Serialized) // _ON_: Power On
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR3"), "._ON")
ISWC = Zero
POD = One
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to power on"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_OFF, 0, Serialized) // _OFF: Power Off
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR3"), "._OFF")
ISWC = Zero
POD = Zero
While (((PRBS || RCOS) || RBS))
{
Debug = "Waiting for device to power off"
Stall (0x64)
}
Debug = "Done waiting"
}
Method (_RST, 0, Serialized) // _RST: Device Reset
{
Debug = Concatenate (Concatenate ("AOAC.", "FUR3"), "._RST")
ISWC = One
SRB = One
Stall (0xC8)
SRB = Zero
ISWC = Zero
While (((!PRBS || !RCOS) || !RBS))
{
Debug = "Waiting for device to complete reset"
Stall (0x64)
}
}
}
}
Device (AAHB)
{
Name (_HID, "AAHB0000") // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
Memory32Fixed (ReadWrite,
0xFEDC0000, // Address Base
0x00002000, // Address Length
)
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
Device (GPIO)
{
Name (_HID, "AMD0030") // _HID: Hardware ID
Name (_CID, "AMD0030") // _CID: Compatible ID
Name (_UID, Zero) // _UID: Unique ID
Name (_DDN, "GPIO Controller") // _DDN: DOS Device Name
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
{
0x00000000,
}
Memory32Fixed (ReadWrite,
0xFED81500, // Address Base
0x00000300, // Address Length
)
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
IRQN = IGPI /* \IGPI */
}
Else
{
IRQN = PGPI /* \PGPI */
}
If ((IRQN == 0x1F))
{
Return (ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFED81500, // Address Base
0x00000300, // Address Length
)
})
}
Else
{
Return (Local0)
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
Device (MMC0)
{
Name (_HID, "AMDI0040") // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, ,, )
{
0x00000000,
}
Memory32Fixed (ReadWrite,
0xFEDD5000, // Address Base
0x00001000, // Address Length
)
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
IRQN = IMMC /* \IMMC */
}
Else
{
IRQN = PMMC /* \PMMC */
}
If ((IRQN == 0x1F))
{
Return (ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFEDD5000, // Address Base
0x00001000, // Address Length
)
})
}
Else
{
Return (Local0)
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
Device (FUR0)
{
Name (_HID, "AMD0020") // _HID: Hardware ID
Name (_UID, Zero) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
{
0x00000000,
}
Memory32Fixed (ReadWrite,
0xFEDC9000, // Address Base
0x00001000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFEDC7000, // Address Base
0x00001000, // Address Length
)
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
IRQN = IUA0 /* \IUA0 */
}
Else
{
IRQN = PUA0 /* \PUA0 */
}
If ((IRQN == 0x1F))
{
Return (ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFEDC9000, // Address Base
0x00001000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFEDC7000, // Address Base
0x00001000, // Address Length
)
})
}
Else
{
Return (Local0)
}
}
Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
{
^AOAC.FUR0
})
Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
{
^AOAC.FUR0
})
Name (_PR3, Package (0x01) // _PR3: Power Resources for D3hot
{
^AOAC.FUR0
})
Method (_PS0, 0, Serialized) // _PS0: Power State 0
{
Debug = "FUR0._PS0"
^^AOAC.FUR0.TDS = One
}
Method (_PS3, 0, Serialized) // _PS3: Power State 3
{
Debug = "FUR0._PS3"
^^AOAC.FUR0.TDS = 0x03
}
}
Device (FUR1)
{
Name (_HID, "AMD0020") // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
{
0x00000000,
}
Memory32Fixed (ReadWrite,
0xFEDCA000, // Address Base
0x00001000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFEDC8000, // Address Base
0x00001000, // Address Length
)
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
IRQN = IUA1 /* \IUA1 */
}
Else
{
IRQN = PUA1 /* \PUA1 */
}
If ((IRQN == 0x1F))
{
Return (ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFEDCA000, // Address Base
0x00001000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFEDC8000, // Address Base
0x00001000, // Address Length
)
})
}
Else
{
Return (Local0)
}
}
Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
{
^AOAC.FUR1
})
Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
{
^AOAC.FUR1
})
Name (_PR3, Package (0x01) // _PR3: Power Resources for D3hot
{
^AOAC.FUR1
})
Method (_PS0, 0, Serialized) // _PS0: Power State 0
{
Debug = "FUR1._PS0"
^^AOAC.FUR1.TDS = One
}
Method (_PS3, 0, Serialized) // _PS3: Power State 3
{
Debug = "FUR1._PS3"
^^AOAC.FUR1.TDS = 0x03
}
}
Device (FUR2)
{
Name (_HID, "AMD0020") // _HID: Hardware ID
Name (_UID, 0x02) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
{
0x00000000,
}
Memory32Fixed (ReadWrite,
0xFEDCE000, // Address Base
0x00001000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFEDCC000, // Address Base
0x00001000, // Address Length
)
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
IRQN = IUA2 /* \IUA2 */
}
Else
{
IRQN = PUA2 /* \PUA2 */
}
If ((IRQN == 0x1F))
{
Return (ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFEDCE000, // Address Base
0x00001000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFEDCC000, // Address Base
0x00001000, // Address Length
)
})
}
Else
{
Return (Local0)
}
}
Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
{
^AOAC.FUR2
})
Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
{
^AOAC.FUR2
})
Name (_PR3, Package (0x01) // _PR3: Power Resources for D3hot
{
^AOAC.FUR2
})
Method (_PS0, 0, Serialized) // _PS0: Power State 0
{
Debug = "FUR2._PS0"
^^AOAC.FUR2.TDS = One
}
Method (_PS3, 0, Serialized) // _PS3: Power State 3
{
Debug = "FUR2._PS3"
^^AOAC.FUR2.TDS = 0x03
}
}
Device (FUR3)
{
Name (_HID, "AMD0020") // _HID: Hardware ID
Name (_UID, 0x03) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
{
0x00000000,
}
Memory32Fixed (ReadWrite,
0xFEDCF000, // Address Base
0x00001000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFEDCD000, // Address Base
0x00001000, // Address Length
)
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
IRQN = IUA3 /* \IUA3 */
}
Else
{
IRQN = PUA3 /* \PUA3 */
}
If ((IRQN == 0x1F))
{
Return (ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFEDCF000, // Address Base
0x00001000, // Address Length
)
Memory32Fixed (ReadWrite,
0xFEDCD000, // Address Base
0x00001000, // Address Length
)
})
}
Else
{
Return (Local0)
}
}
Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
{
^AOAC.FUR3
})
Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
{
^AOAC.FUR3
})
Name (_PR3, Package (0x01) // _PR3: Power Resources for D3hot
{
^AOAC.FUR3
})
Method (_PS0, 0, Serialized) // _PS0: Power State 0
{
Debug = "FUR3._PS0"
^^AOAC.FUR3.TDS = One
}
Method (_PS3, 0, Serialized) // _PS3: Power State 3
{
Debug = "FUR3._PS3"
^^AOAC.FUR3.TDS = 0x03
}
}
Device (I2C2)
{
Name (_HID, "AMD0010") // _HID: Hardware ID
Name (_UID, 0x02) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
{
0x00000000,
}
Memory32Fixed (ReadWrite,
0xFEDC4000, // Address Base
0x00001000, // Address Length
)
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
IRQN = II22 /* \II22 */
}
Else
{
IRQN = PI22 /* \PI22 */
}
If ((IRQN == 0x1F))
{
Return (ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFEDC4000, // Address Base
0x00001000, // Address Length
)
})
}
Else
{
Return (Local0)
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
{
^AOAC.I2C2
})
Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
{
^AOAC.I2C2
})
Name (_PR3, Package (0x01) // _PR3: Power Resources for D3hot
{
^AOAC.I2C2
})
Method (_PS0, 0, Serialized) // _PS0: Power State 0
{
Debug = "I2C2._PS0"
^^AOAC.I2C2.TDS = One
}
Method (_PS3, 0, Serialized) // _PS3: Power State 3
{
Debug = "I2C2._PS3"
^^AOAC.I2C2.TDS = 0x03
}
}
Device (I2C3)
{
Name (_HID, "AMD0010") // _HID: Hardware ID
Name (_UID, 0x03) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Local0 = ResourceTemplate ()
{
Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )
{
0x00000000,
}
Memory32Fixed (ReadWrite,
0xFEDC5000, // Address Base
0x00001000, // Address Length
)
}
CreateDWordField (Local0, 0x05, IRQN)
If (PMOD)
{
IRQN = II23 /* \II23 */
}
Else
{
IRQN = PI23 /* \PI23 */
}
If ((IRQN == 0x1F))
{
Return (ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFEDC5000, // Address Base
0x00001000, // Address Length
)
})
}
Else
{
Return (Local0)
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
Name (_PR0, Package (0x01) // _PR0: Power Resources for D0
{
^AOAC.I2C3
})
Name (_PR2, Package (0x01) // _PR2: Power Resources for D2
{
^AOAC.I2C3
})
Name (_PR3, Package (0x01) // _PR3: Power Resources for D3hot
{
^AOAC.I2C3
})
Method (_PS0, 0, Serialized) // _PS0: Power State 0
{
Debug = "I2C3._PS0"
^^AOAC.I2C3.TDS = One
}
Method (_PS3, 0, Serialized) // _PS3: Power State 3
{
Debug = "I2C3._PS3"
^^AOAC.I2C3.TDS = 0x03
}
}
Device (MISC)
{
Name (_HID, "AMD0040") // _HID: Hardware ID
Name (_UID, 0x03) // _UID: Unique ID
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
Memory32Fixed (ReadWrite,
0xFED80E00, // Address Base
0x00000100, // Address Length
)
})
Name (_DSD, Package (0x02) // _DSD: Device-Specific Data
{
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301") /* Device Properties for _DSD */,
Package (0x01)
{
Package (0x02)
{
"is-rv",
One
}
}
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
Method (GPAD, 1, NotSerialized)
{
Return (((Arg0 * 0x04) + 0xFED81500))
}
Method (GPRD, 1, Serialized)
{
Local0 = Arg0
OperationRegion (GPDW, SystemMemory, Local0, 0x04)
Field (GPDW, AnyAcc, NoLock, Preserve)
{
TEMP, 32
}
Return (TEMP) /* \_SB_.GPRD.TEMP */
}
Method (GPWR, 2, Serialized)
{
Local0 = Arg0
OperationRegion (GPDW, SystemMemory, Local0, 0x04)
Field (GPDW, AnyAcc, NoLock, Preserve)
{
TEMP, 32
}
TEMP = Arg1
}
Method (GPGB, 2, NotSerialized)
{
Local2 = (Arg1 * 0x08)
Return (((GPRD (Arg0) >> Local2) & 0xFF))
}
Method (GPSB, 3, NotSerialized)
{
Local2 = (Arg1 * 0x08)
Local3 = ((GPRD (Arg0) >> Local2) & 0xFFFFFF00)
Local4 = (((Arg2 & 0xFF) | Local3) << Local2)
GPWR (Arg0, Local4)
}
Method (GPR0, 1, NotSerialized)
{
Return (GPGB (Arg0, Zero))
}
Method (GPR1, 1, NotSerialized)
{
Return (GPGB (Arg0, One))
}
Method (GPR2, 1, NotSerialized)
{
Return (GPGB (Arg0, 0x02))
}
Method (GPR3, 1, NotSerialized)
{
Return (GPGB (Arg0, 0x03))
}
Method (GPW0, 2, NotSerialized)
{
GPSB (Arg0, Zero, Arg1)
}
Method (GPW1, 2, NotSerialized)
{
GPSB (Arg0, One, Arg1)
}
Method (GPW2, 2, NotSerialized)
{
GPSB (Arg0, 0x02, Arg1)
}
Method (GPW3, 2, NotSerialized)
{
GPSB (Arg0, 0x03, Arg1)
}
}
Scope (_TZ)
{
ThermalZone (THRM)
{
Name (_TC1, 0x02) // _TC1: Thermal Constant 1
Name (_TC2, 0x05) // _TC2: Thermal Constant 2
Name (_TZP, 0x64) // _TZP: Thermal Zone Polling
Name (_TSP, 0x14) // _TSP: Thermal Sampling Period
Method (CTOK, 1, NotSerialized)
{
Local0 = (Arg0 * 0x0A)
Local0 += 0x0AAC
Return (Local0)
}
Method (_CRT, 0, Serialized) // _CRT: Critical Temperature
{
Return (CTOK (TCRT))
}
Method (_PSV, 0, Serialized) // _PSV: Passive Temperature
{
Return (CTOK (TPSV))
}
Method (_PSL, 0, Serialized) // _PSL: Passive List
{
Return (PPKG ())
}
Method (_TMP, 0, Serialized) // _TMP: Temperature
{
Local0 = \_SB.PCI0.LPCB.EC0.TSRD (TMPS)
Local1 = CTOK (TCRT)
If ((Local0 >= Local1))
{
Debug = "CRITICAL TEMPERATURE"
Debug = Local0
Sleep (0x03E8)
Local0 = \_SB.PCI0.LPCB.EC0.TSRD (TMPS)
Debug = "RE-READ TEMPERATURE"
Debug = Local0
}
Return (Local0)
}
}
}
Device (CRHW)
{
Name (_HID, "GOOG0016") // _HID: Hardware ID
Name (_CID, EisaId ("GGL0001")) // _CID: Compatible ID
Method (_STA, 0, Serialized) // _STA: Status
{
Return (0x0B)
}
Method (CHSW, 0, Serialized)
{
Name (WSHC, Package (0x01)
{
VBT3
})
Return (WSHC) /* \CRHW.CHSW.WSHC */
}
Method (FWID, 0, Serialized)
{
Name (DIW1, "")
ToString (VBT5, 0x3F, DIW1) /* \CRHW.FWID.DIW1 */
Name (DIWF, Package (0x01)
{
DIW1
})
Return (DIWF) /* \CRHW.FWID.DIWF */
}
Method (FRID, 0, Serialized)
{
Name (DIR1, "")
ToString (VBT6, 0x3F, DIR1) /* \CRHW.FRID.DIR1 */
Name (DIRF, Package (0x01)
{
DIR1
})
Return (DIRF) /* \CRHW.FRID.DIRF */
}
Method (HWID, 0, Serialized)
{
Name (DIW0, "")
ToString (VBT4, 0xFF, DIW0) /* \CRHW.HWID.DIW0 */
Name (DIWH, Package (0x01)
{
DIW0
})
Return (DIWH) /* \CRHW.HWID.DIWH */
}
Method (BINF, 0, Serialized)
{
Name (FNIB, Package (0x05)
{
VBT0,
VBT1,
VBT2,
VBT7,
VBT8
})
Return (FNIB) /* \CRHW.BINF.FNIB */
}
Method (GPIO, 0, Serialized)
{
Return (OIPG) /* External reference */
}
Method (VBNV, 0, Serialized)
{
Name (VNBV, Package (0x02)
{
0x2A,
0x10
})
Return (VNBV) /* \CRHW.VBNV.VNBV */
}
Method (VDAT, 0, Serialized)
{
Name (TAD0, "")
ToBuffer (CHVD, TAD0) /* \CRHW.VDAT.TAD0 */
Name (TADV, Package (0x01)
{
TAD0
})
Return (TADV) /* \CRHW.VDAT.TADV */
}
Method (FMAP, 0, Serialized)
{
Name (PAMF, Package (0x01)
{
VBT9
})
Return (PAMF) /* \CRHW.FMAP.PAMF */
}
Method (MECK, 0, Serialized)
{
Name (HASH, Package (0x01)
{
MEHH
})
Return (HASH) /* \CRHW.MECK.HASH */
}
Method (MLST, 0, Serialized)
{
Name (TSLM, Package (0x0A)
{
"CHSW",
"FWID",
"HWID",
"FRID",
"BINF",
"GPIO",
"VBNV",
"VDAT",
"FMAP",
"MECK"
})
Return (TSLM) /* \CRHW.MLST.TSLM */
}
}
Scope (_SB)
{
Device (RMOP)
{
Name (_HID, "GOOG9999") // _HID: Hardware ID
Name (_CID, "GOOG9999") // _CID: Compatible ID
Name (_UID, One) // _UID: Unique ID
Name (RBUF, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0x00000000, // Address Base
0x00000000, // Address Length
_Y04)
})
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
CreateDWordField (RBUF, \_SB.RMOP._Y04._BAS, RBAS) // _BAS: Base Address
CreateDWordField (RBUF, \_SB.RMOP._Y04._LEN, RLEN) // _LEN: Length
RBAS = RMOB /* \RMOB */
RLEN = RMOL /* \RMOL */
Return (RBUF) /* \_SB_.RMOP.RBUF */
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0B)
}
}
}
Scope (_SB.PCI0.LPCB)
{
Device (SIO)
{
Name (_UID, Zero) // _UID: Unique ID
Name (_ADR, Zero) // _ADR: Address
Device (ECMM)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Name (_UID, 0x04) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0900, // Range Minimum
0x0900, // Range Maximum
0x08, // Alignment
0xFF, // Length
)
})
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
IO (Decode16,
0x0900, // Range Minimum
0x0900, // Range Maximum
0x08, // Alignment
0xFF, // Length
)
})
}
Device (ECUI)
{
Name (_HID, EisaId ("PNP0C02") /* PNP Motherboard Resources */) // _HID: Hardware ID
Name (_UID, 0x03) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0200, // Range Minimum
0x0200, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0204, // Range Minimum
0x0204, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0800, // Range Minimum
0x0800, // Range Maximum
0x08, // Alignment
0x80, // Length
)
IO (Decode16,
0x0880, // Range Minimum
0x0880, // Range Maximum
0x08, // Alignment
0x80, // Length
)
})
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16,
0x0200, // Range Minimum
0x0200, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0204, // Range Minimum
0x0204, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0800, // Range Minimum
0x0800, // Range Maximum
0x08, // Alignment
0x80, // Length
)
IO (Decode16,
0x0880, // Range Minimum
0x0880, // Range Maximum
0x08, // Alignment
0x80, // Length
)
}
EndDependentFn ()
})
}
}
Scope (^^PCI0)
{
Device (PS2K)
{
Name (_UID, Zero) // _UID: Unique ID
Name (_HID, "GOOG000A") // _HID: Hardware ID
Name (_CID, Package (0x02) // _CID: Compatible ID
{
EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */,
EisaId ("PNP030B")
})
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{1}
})
Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings
{
StartDependentFn (0x00, 0x00)
{
IO (Decode16,
0x0060, // Range Minimum
0x0060, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IO (Decode16,
0x0064, // Range Minimum
0x0064, // Range Maximum
0x01, // Alignment
0x01, // Length
)
IRQ (Edge, ActiveHigh, Exclusive, )
{1}
}
EndDependentFn ()
})
}
}
Device (EC0)
{
Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Name (_GPE, 0x03) // _GPE: General Purpose Events
Name (TOFS, 0xC8)
Name (TNCA, 0xFC)
Name (TNOP, 0xFD)
Name (TBAD, 0xFE)
Name (TNPR, 0xFF)
Name (DWRN, 0x0F)
Name (DLOW, 0x0A)
OperationRegion (ERAM, EmbeddedControl, Zero, 0x20)
Field (ERAM, ByteAcc, Lock, Preserve)
{
RAMV, 8,
TSTB, 8,
TSTC, 8,
KBLV, 8,
FAND, 8,
PATI, 8,
PATT, 8,
PATC, 8,
CHGL, 8,
TBMD, 1,
DDPN, 3,
Offset (0x0A),
DFUD, 1,
FLSH, 1,
PFAN, 1,
KBLE, 1,
LTBR, 1,
LEDC, 1,
MTNS, 1,
KEYB, 1,
PSTR, 1,
P80P, 1,
THRM, 1,
SBKL, 1,
WIFI, 1,
HOST, 1,
GPIO, 1,
I2CB, 1,
CHRG, 1,
BATT, 1,
SBAT, 1,
HANG, 1,
PMUI, 1,
DSEC, 1,
UPDC, 1,
UMUX, 1,
MSFF, 1,
TVST, 1,
TCMV, 1,
RTCD, 1,
FPRD, 1,
TPAD, 1,
RWSG, 1,
DEVE, 1,
Offset (0x12),
BTID, 8,
USPP, 8
}
OperationRegion (EMEM, SystemIO, 0x0900, 0xFF)
Field (EMEM, ByteAcc, NoLock, Preserve)
{
TIN0, 8,
TIN1, 8,
TIN2, 8,
TIN3, 8,
TIN4, 8,
TIN5, 8,
TIN6, 8,
TIN7, 8,
TIN8, 8,
TIN9, 8,
Offset (0x10),
FAN0, 16,
Offset (0x24),
BTVR, 8,
Offset (0x30),
LIDS, 1,
PBTN, 1,
WPDI, 1,
RECK, 1,
RECD, 1,
Offset (0x40),
BTVO, 32,
BTPR, 32,
BTRA, 32,
ACEX, 1,
BTEX, 1,
BFDC, 1,
BFCG, 1,
BFCR, 1,
Offset (0x4D),
BTCN, 8,
BTIX, 8,
Offset (0x50),
BTDA, 32,
BTDV, 32,
BTDF, 32,
BTCC, 32,
BMFG, 64,
BMOD, 64,
BSER, 64,
BTYP, 64,
ALS0, 16
}
Device (LID0)
{
Name (_HID, EisaId ("PNP0C0D") /* Lid Device */) // _HID: Hardware ID
Method (_LID, 0, NotSerialized) // _LID: Lid Status
{
Return (LIDS) /* \_SB_.PCI0.LPCB.EC0_.LIDS */
}
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0F,
0x05
})
}
Method (TINS, 1, Serialized)
{
Switch (ToInteger (Arg0))
{
Case (Zero)
{
Return (TIN0) /* \_SB_.PCI0.LPCB.EC0_.TIN0 */
}
Case (One)
{
Return (TIN1) /* \_SB_.PCI0.LPCB.EC0_.TIN1 */
}
Case (0x02)
{
Return (TIN2) /* \_SB_.PCI0.LPCB.EC0_.TIN2 */
}
Case (0x03)
{
Return (TIN3) /* \_SB_.PCI0.LPCB.EC0_.TIN3 */
}
Case (0x04)
{
Return (TIN4) /* \_SB_.PCI0.LPCB.EC0_.TIN4 */
}
Case (0x05)
{
Return (TIN5) /* \_SB_.PCI0.LPCB.EC0_.TIN5 */
}
Case (0x06)
{
Return (TIN6) /* \_SB_.PCI0.LPCB.EC0_.TIN6 */
}
Case (0x07)
{
Return (TIN7) /* \_SB_.PCI0.LPCB.EC0_.TIN7 */
}
Case (0x08)
{
Return (TIN8) /* \_SB_.PCI0.LPCB.EC0_.TIN8 */
}
Case (0x09)
{
Return (TIN9) /* \_SB_.PCI0.LPCB.EC0_.TIN9 */
}
Default
{
Return (TIN0) /* \_SB_.PCI0.LPCB.EC0_.TIN0 */
}
}
}
Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
{
Name (ECMD, ResourceTemplate ()
{
IO (Decode16,
0x0062, // Range Minimum
0x0062, // Range Maximum
0x00, // Alignment
0x01, // Length
)
IO (Decode16,
0x0066, // Range Minimum
0x0066, // Range Maximum
0x00, // Alignment
0x01, // Length
)
})
Return (ECMD) /* \_SB_.PCI0.LPCB.EC0_._CRS.ECMD */
}
Method (_REG, 2, NotSerialized) // _REG: Region Availability
{
PWRS = ACEX /* \_SB_.PCI0.LPCB.EC0_.ACEX */
PNOT ()
\LIDS = LIDS /* \_SB_.PCI0.LPCB.EC0_.LIDS */
}
Method (TSRD, 1, Serialized)
{
Local0 = TINS (Arg0)
If ((Local0 == TNCA))
{
Return (Zero)
}
If ((Local0 == TNPR))
{
Return (Zero)
}
If ((Local0 == TNOP))
{
Return (Zero)
}
If ((Local0 == TBAD))
{
Return (Zero)
}
Local0 += TOFS
Local0 *= 0x0A
Return (Local0)
}
Method (_Q01, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: LID CLOSE"
\LIDS = LIDS /* \_SB_.PCI0.LPCB.EC0_.LIDS */
Notify (LID0, 0x80) // Status Change
}
Method (_Q02, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: LID OPEN"
\LIDS = LIDS /* \_SB_.PCI0.LPCB.EC0_.LIDS */
Notify (CREC, 0x02) // Device Wake
Notify (LID0, 0x80) // Status Change
}
Method (_Q03, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: POWER BUTTON"
}
Method (_Q04, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: AC CONNECTED"
PWRS = ACEX /* \_SB_.PCI0.LPCB.EC0_.ACEX */
Notify (AC, 0x80) // Status Change
PNOT ()
}
Method (_Q05, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: AC DISCONNECTED"
PWRS = ACEX /* \_SB_.PCI0.LPCB.EC0_.ACEX */
Notify (AC, 0x80) // Status Change
PNOT ()
}
Method (_Q06, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: BATTERY LOW"
Notify (BAT0, 0x80) // Status Change
}
Method (_Q07, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: BATTERY CRITICAL"
Notify (BAT0, 0x80) // Status Change
}
Method (_Q08, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: BATTERY INFO"
Notify (BAT0, 0x81) // Information Change
}
Method (_Q0A, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: THERMAL OVERLOAD"
Notify (_TZ, 0x80) // Status Change
}
Method (_Q0B, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: THERMAL"
Notify (_TZ, 0x80) // Status Change
}
Method (_Q0C, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: USB CHARGER"
}
Method (_Q0D, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: KEY PRESSED"
Notify (CREC, 0x02) // Device Wake
}
Method (_Q10, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: THERMAL SHUTDOWN"
Notify (_TZ, 0x80) // Status Change
}
Method (_Q11, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: BATTERY SHUTDOWN"
Notify (BAT0, 0x80) // Status Change
}
Method (_Q12, 0, NotSerialized) // _Qxx: EC Query
{
}
Method (_Q13, 0, NotSerialized) // _Qxx: EC Query
{
}
Method (_Q16, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: GOT PD EVENT"
Notify (^CREC.ECPD, 0x80) // Status Change
}
Method (_Q17, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: BATTERY STATUS"
Notify (BAT0, 0x80) // Status Change
}
Method (_Q1B, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: MKBP"
Notify (CREC, 0x80) // Status Change
}
Method (_Q1C, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: USB MUX"
Notify (^CREC.ECPD, 0x80) // Status Change
}
Method (_Q1D, 0, NotSerialized) // _Qxx: EC Query
{
Debug = "EC: TABLET mode switch Event"
Notify (CREC, 0x02) // Device Wake
Notify (TBMC, 0x80) // Status Change
}
Mutex (PATM, 0x01)
Method (PAT0, 2, Serialized)
{
If (Acquire (PATM, 0x03E8))
{
Return (Zero)
}
PATI = ToInteger (Arg0)
Local1 = (ToInteger (Arg1) / 0x0A)
PATT = (Local1 - TOFS) /* \_SB_.PCI0.LPCB.EC0_.TOFS */
PATC = 0x02
Release (PATM)
Return (One)
}
Method (PAT1, 2, Serialized)
{
If (Acquire (PATM, 0x03E8))
{
Return (Zero)
}
PATI = ToInteger (Arg0)
Local1 = (ToInteger (Arg1) / 0x0A)
PATT = (Local1 - TOFS) /* \_SB_.PCI0.LPCB.EC0_.TOFS */
PATC = 0x03
Release (PATM)
Return (One)
}
Method (PATD, 1, Serialized)
{
If (Acquire (PATM, 0x03E8))
{
Return (Zero)
}
PATI = ToInteger (Arg0)
PATT = Zero
PATC = Zero
PATC = One
Release (PATM)
Return (One)
}
Method (_Q09, 0, NotSerialized) // _Qxx: EC Query
{
If (!Acquire (PATM, 0x03E8))
{
Local0 = PATI /* \_SB_.PCI0.LPCB.EC0_.PATI */
While ((Local0 != 0xFF))
{
Local0 = PATI /* \_SB_.PCI0.LPCB.EC0_.PATI */
}
Release (PATM)
}
}
Method (CHGS, 1, Serialized)
{
CHGL = ToInteger (Arg0)
}
Method (CHGD, 0, Serialized)
{
CHGL = 0xFF
}
Method (RCTM, 0, NotSerialized)
{
Return (TBMD) /* \_SB_.PCI0.LPCB.EC0_.TBMD */
}
Device (AC)
{
Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})
Method (_PSR, 0, NotSerialized) // _PSR: Power Source
{
Return (ACEX) /* \_SB_.PCI0.LPCB.EC0_.ACEX */
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
}
Mutex (BATM, 0x00)
Method (BTSW, 1, NotSerialized)
{
If ((Zero != Arg0))
{
Return (One)
}
Return (Zero)
}
Method (BSTA, 1, Serialized)
{
If (Acquire (BATM, 0x03E8))
{
Return (Zero)
}
If ((~BTSW (Arg0) & BTEX))
{
Local0 = 0x1F
}
Else
{
Local0 = 0x0F
}
Release (BATM)
Return (Local0)
}
Method (BBIF, 2, Serialized)
{
If (Acquire (BATM, 0x03E8))
{
Return (Arg1)
}
If (BTSW (Arg0))
{
Release (BATM)
Return (Arg1)
}
Arg1 [0x02] = BTDF /* \_SB_.PCI0.LPCB.EC0_.BTDF */
Arg1 [0x04] = BTDV /* \_SB_.PCI0.LPCB.EC0_.BTDV */
Local0 = BTDA /* \_SB_.PCI0.LPCB.EC0_.BTDA */
Arg1 [One] = Local0
Local2 = ((Local0 * DWRN) / 0x64)
Arg1 [0x05] = Local2
Local2 = ((Local0 * DLOW) / 0x64)
Arg1 [0x06] = Local2
Arg1 [0x09] = ToString (Concatenate (BMOD, Zero), Ones)
Arg1 [0x0A] = ToString (Concatenate (BSER, Zero), Ones)
Arg1 [0x0C] = ToString (Concatenate (BMFG, Zero), Ones)
Release (BATM)
Return (Arg1)
}
Method (BBIX, 2, Serialized)
{
If (Acquire (BATM, 0x03E8))
{
Return (Arg1)
}
If (BTSW (Arg0))
{
Release (BATM)
Return (Arg1)
}
Arg1 [0x03] = BTDF /* \_SB_.PCI0.LPCB.EC0_.BTDF */
Arg1 [0x05] = BTDV /* \_SB_.PCI0.LPCB.EC0_.BTDV */
Local0 = BTDA /* \_SB_.PCI0.LPCB.EC0_.BTDA */
Arg1 [0x02] = Local0
Local2 = ((Local0 * DWRN) / 0x64)
Arg1 [0x06] = Local2
Local2 = ((Local0 * DLOW) / 0x64)
Arg1 [0x07] = Local2
Arg1 [0x08] = BTCC /* \_SB_.PCI0.LPCB.EC0_.BTCC */
Arg1 [0x10] = ToString (Concatenate (BMOD, Zero), Ones)
Arg1 [0x11] = ToString (Concatenate (BSER, Zero), Ones)
Arg1 [0x13] = ToString (Concatenate (BMFG, Zero), Ones)
Release (BATM)
Return (Arg1)
}
Method (BBST, 4, Serialized)
{
If (Acquire (BATM, 0x03E8))
{
Return (Arg1)
}
If (BTSW (Arg0))
{
Release (BATM)
Return (Arg1)
}
Local1 = Zero
If (ACEX)
{
If (BFCG)
{
Local1 = 0x02
}
ElseIf (BFDC)
{
Local1 = One
}
}
Else
{
Local1 = One
}
If (BFCR)
{
Local1 |= 0x04
}
Arg1 [Zero] = Local1
If ((Local1 != DerefOf (Arg2)))
{
Arg2 = Local1
If ((Arg0 == Zero))
{
Notify (BAT0, 0x80) // Status Change
}
}
Arg1 [One] = BTPR /* \_SB_.PCI0.LPCB.EC0_.BTPR */
Local1 = BTRA /* \_SB_.PCI0.LPCB.EC0_.BTRA */
If ((Arg3 && (ACEX && !(BFDC && BFCG))))
{
Local2 = BTDF /* \_SB_.PCI0.LPCB.EC0_.BTDF */
Local3 = (Local2 >> 0x04)
If (((Local1 > (Local2 - Local3)) && (Local1 < (Local2 +
Local3))))
{
Local1 = Local2
}
}
Arg1 [0x02] = Local1
Arg1 [0x03] = BTVO /* \_SB_.PCI0.LPCB.EC0_.BTVO */
Release (BATM)
Return (Arg1)
}
Device (BAT0)
{
Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Name (_PCL, Package (0x01) // _PCL: Power Consumer List
{
_SB
})
Name (PBIF, Package (0x0D)
{
One,
0xFFFFFFFF,
0xFFFFFFFF,
One,
0xFFFFFFFF,
0x03,
0xFFFFFFFF,
One,
One,
"",
"",
"LION",
""
})
Name (PBIX, Package (0x14)
{
Zero,
One,
0xFFFFFFFF,
0xFFFFFFFF,
One,
0xFFFFFFFF,
0x03,
0xFFFFFFFF,
Zero,
0x00018000,
0x01F4,
0x0A,
0xFFFFFFFF,
0xFFFFFFFF,
One,
One,
"",
"",
"LION",
""
})
Name (PBST, Package (0x04)
{
Zero,
0xFFFFFFFF,
0xFFFFFFFF,
0xFFFFFFFF
})
Name (BSTP, Zero)
Name (BFWK, Zero)
Method (BFWE, 0, NotSerialized)
{
BFWK = One
}
Method (BFWD, 0, NotSerialized)
{
BFWK = Zero
}
Method (_STA, 0, Serialized) // _STA: Status
{
Return (BSTA (Zero))
}
Method (_BIF, 0, Serialized) // _BIF: Battery Information
{
Return (BBIF (Zero, PBIF))
}
Method (_BIX, 0, Serialized) // _BIX: Battery Information Extended
{
Return (BBIX (Zero, PBIX))
}
Method (_BST, 0, Serialized) // _BST: Battery Status
{
Return (BBST (Zero, PBST, RefOf (BSTP), BFWK))
}
}
Device (CREC)
{
Name (_HID, "GOOG0004") // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Name (_DDN, "EC Command Device") // _DDN: DOS Device Name
Name (_PRW, Package (0x02) // _PRW: Power Resources for Wake
{
0x0F,
0x05
})
Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
{
GpioInt (Level, ActiveLow, Exclusive, PullDefault, 0x0000,
"\\_SB.GPIO", 0x00, ResourceConsumer, ,
)
{ // Pin list
0x001F
}
})
Device (ECPD)
{
Name (_HID, "GOOG0003") // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Name (_DDN, "EC PD Device") // _DDN: DOS Device Name
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0B)
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0B)
}
}
Device (ALS)
{
Name (_HID, "ACPI0008" /* Ambient Light Sensor Device */) // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0F)
}
Method (_ALI, 0, NotSerialized) // _ALI: Ambient Light Illuminance
{
Return (ALS0) /* \_SB_.PCI0.LPCB.EC0_.ALS0 */
}
Name (_ALP, 0x0A) // _ALP: Ambient Light Polling
Name (_ALR, Package (0x02) // _ALR: Ambient Light Response
{
Package (0x02)
{
0x46,
0x1E
},
Package (0x02)
{
0x96,
0x03E8
}
})
}
Scope (\_SB)
{
Device (KBLT)
{
Name (_HID, "GOOG0002") // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
If ((One == ^^PCI0.LPCB.EC0.DFUD))
{
Return (0x0F)
}
If ((One == ^^PCI0.LPCB.EC0.KBLE))
{
Return (0x0F)
}
Return (Zero)
}
Method (KBQC, 0, NotSerialized)
{
Return (^^PCI0.LPCB.EC0.KBLV) /* \_SB_.PCI0.LPCB.EC0_.KBLV */
}
Method (KBCM, 1, NotSerialized)
{
^^PCI0.LPCB.EC0.KBLV = Arg0
}
}
}
Device (TBMC)
{
Name (_HID, "GOOG0006") // _HID: Hardware ID
Name (_UID, One) // _UID: Unique ID
Name (_DDN, "Tablet Motion Control") // _DDN: DOS Device Name
Method (TBMC, 0, NotSerialized)
{
If ((RCTM () == One))
{
Return (One)
}
Else
{
Return (Zero)
}
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
Return (0x0B)
}
}
}
}
}