Paste #158902

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

Raw