/* * 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) } } } } }