Skip to content

Latest commit

 

History

History
executable file
·
1640 lines (1479 loc) · 47.3 KB

SSDT-1-CB-01.md

File metadata and controls

executable file
·
1640 lines (1479 loc) · 47.3 KB
/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20200528 (64-bit version)
 * Copyright (c) 2000 - 2020 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of iASLppx7Ir.aml, Sat Oct 10 10:34:37 2020
 *
 * Original Table Header:
 *     Signature        "SSDT"
 *     Length           0x000018C2 (6338)
 *     Revision         0x02
 *     Checksum         0xF8
 *     OEM ID           "LENOVO"
 *     OEM Table ID     "CB-01   "
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "ACPI"
 *     Compiler Version 0x00040000 (262144)
 */
DefinitionBlock ("", "SSDT", 2, "LENOVO", "CB-01   ", 0x00000001)
{
    /*
     * iASL Warning: There were 4 external control methods found during
     * disassembly, but only 0 were resolved (4 unresolved). Additional
     * ACPI tables may be required to properly disassemble the code. This
     * resulting disassembler output file may not compile because the
     * disassembler did not know how many arguments to assign to the
     * unresolved methods. Note: SSDTs can be dynamically loaded at
     * runtime and may or may not be available via the host OS.
     *
     * To specify the tables needed to resolve external control method
     * references, the -e option can be used to specify the filenames.
     * Example iASL invocations:
     *     iasl -e ssdt1.aml ssdt2.aml ssdt3.aml -d dsdt.aml
     *     iasl -e dsdt.aml ssdt2.aml -d ssdt1.aml
     *     iasl -e ssdt*.aml -d dsdt.aml
     *
     * In addition, the -fe option can be used to specify a file containing
     * control method external declarations with the associated method
     * argument counts. Each line of the file must be of the form:
     *     External (<method pathname>, MethodObj, <argument count>)
     * Invocation:
     *     iasl -fe refs.txt -d dsdt.aml
     *
     * The following methods were unresolved and many not compile properly
     * because the disassembler had to guess at the number of arguments
     * required for each:
     */
    External (_PR_.CPPC, UnknownObj)
    External (_SB_.ADP1, UnknownObj)
    External (_SB_.PCI0.LPCB.H_EC, DeviceObj)
    External (_SB_.PCI0.PEG0.PEGP, UnknownObj)
    External (_SB_.PCI0.PEG0.PEGP.PSAP, IntObj)
    External (_SB_.PCI0.XHC_.RHUB, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS01, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS02, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS03, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS04, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS05, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS06, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS07, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS08, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS09, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS10, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS11, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS12, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS13, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.HS14, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.SS01, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.SS02, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.SS03, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.SS04, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.SS05, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.SS06, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.SS07, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.SS08, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.USR1, DeviceObj)
    External (_SB_.PCI0.XHC_.RHUB.USR2, DeviceObj)
    External (BNUM, UnknownObj)
    External (DHCF, MethodObj)    // Warning: Unknown method, guessing 2 arguments
    External (E907, UnknownObj)
    External (ECA2, IntObj)
    External (LIDM, MethodObj)    // Warning: Unknown method, guessing 0 arguments
    External (P8XH, MethodObj)    // Warning: Unknown method, guessing 2 arguments
    External (PNOT, MethodObj)    // Warning: Unknown method, guessing 0 arguments
    External (PWRS, UnknownObj)

    Scope (\_SB.PCI0.LPCB.H_EC)
    {
        OperationRegion (PRT0, SystemIO, 0xB2, 0x04)
        Field (PRT0, DWordAcc, Lock, Preserve)
        {
            SSMP,   8, 
            SSM2,   8
        }

        OperationRegion (I2EC, SystemIO, 0x0380, 0x04)
        Field (I2EC, ByteAcc, Lock, Preserve)
        {
            Offset (0x01), 
            ADDH,   8, 
            ADDL,   8, 
            ADDA,   8
        }

        OperationRegion (ECF4, EmbeddedControl, Zero, 0xFF)
        Field (ECF4, ByteAcc, Lock, Preserve)
        {
            Offset (0x18), 
            Offset (0x19), 
            Offset (0x1A), 
            Offset (0x1B), 
            Offset (0x1C), 
            Offset (0x3C), 
            Offset (0x3D), 
            Offset (0x3E), 
            Offset (0x3F), 
            Offset (0x40), 
            VPWR,   1
        }

        OperationRegion (ECF3, EmbeddedControl, Zero, 0xFF)
        Field (ECF3, ByteAcc, Lock, Preserve)
        {
            VCMD,   8, 
            VDAT,   8, 
            VSTA,   8, 
            Offset (0x04), 
            AIND,   8, 
            ANUM,   8, 
            F1PW,   8, 
            F2PW,   8, 
            F1RM,   8, 
            F2RM,   8, 
            ECLC,   1, 
            BTSM,   1, 
            CDMB,   1, 
            CD2B,   1, 
            BTCM,   1, 
            BCCM,   1, 
            MBBD,   1, 
            BTIL,   1, 
            BTPF,   1, 
            FCGM,   1, 
            M2BD,   1, 
            BTOV,   1, 
                ,   1, 
                ,   1, 
            BT1S,   1, 
            QKSP,   1, 
            ACST,   2, 
            SPSU,   1, 
            ADSU,   1, 
            B2CD,   1, 
            B2CM,   1, 
            SHPS,   1, 
            Offset (0x13), 
            PSTA,   8, 
            DSTA,   8, 
            Offset (0x18), 
            SMPR,   8, 
            SMST,   8, 
            SMAD,   8, 
            SMCM,   8, 
            SMD0,   256, 
            BCNT,   8, 
            SMAL,   8, 
            SMA0,   8, 
            SMA1,   8, 
            RPWR,   1, 
            WPSR,   1, 
            LSTE,   1, 
            TAST,   1, 
            Offset (0x41), 
            S3ON,   1, 
            S4ON,   1, 
            S5ON,   1, 
            Offset (0x42), 
            NOST,   1, 
            CRRE,   1, 
            Offset (0x43), 
            ACOS,   1, 
            KBLS,   1, 
            KBEN,   1, 
            TPOK,   1, 
            TPDS,   1, 
            RCST,   1, 
            UCSP,   1, 
            UCEN,   1, 
            SYSA,   1, 
            AUMO,   1, 
            HTKC,   1, 
            S4FG,   1, 
                ,   1, 
            BFUC,   2, 
            FG78,   1, 
                ,   7, 
            TPCS,   1, 
            ALSC,   1, 
            AKBC,   1, 
            AKBS,   1, 
            ALSS,   1, 
            KBLC,   1, 
                ,   1, 
            HTKS,   1, 
            Offset (0x47), 
            EVS2,   8, 
            EVS3,   8, 
            OSSW,   1, 
            ROLO,   1, 
            LSTA,   1, 
            PRNO,   1, 
            VOLD,   1, 
            VOLU,   1, 
            BTON,   1, 
            WLEN,   1, 
            MIF2,   8, 
            MIF3,   8, 
            MIF4,   8, 
            BRIL,   8, 
            CRKF,   8, 
            PAID,   1, 
            PAIG,   1, 
            I2CS,   1, 
            Offset (0x50), 
            DR0T,   8, 
            DR1T,   8, 
            TPTP,   8, 
            VGAT,   8, 
            PCHT,   8, 
            SYST,   8, 
            SCPT,   8, 
            CTMP,   8, 
            FTMP,   7, 
            Offset (0x5E), 
            TMPC,   8, 
            Offset (0x60), 
            B1CH,   32, 
            B2CH,   32, 
            B1MO,   16, 
            B2MO,   16, 
            B1SN,   16, 
            B2SN,   16, 
            B1DT,   16, 
            B2DT,   16, 
            B1CY,   16, 
            FUSL,   8, 
            FUSH,   8, 
            BMIL,   8, 
            BMIH,   8, 
            HIDL,   8, 
            HIDH,   8, 
            FMVL,   8, 
            FMVH,   8, 
            DAVL,   8, 
            DAVH,   8, 
            B2IN,   1, 
            B2VA,   1, 
            B2IC,   1, 
            B2FU,   1, 
                ,   1, 
            B2DE,   1, 
            B2AN,   1, 
            Offset (0x81), 
                ,   1, 
            B2WC,   1, 
            B2PC,   1, 
            B2NC,   1, 
            B2DO,   1, 
            B2WO,   1, 
            B2PO,   1, 
            B2NO,   1, 
            B2TM,   16, 
            Offset (0x86), 
            Offset (0x88), 
            B2RS,   16, 
            Offset (0x8B), 
            TPTY,   3, 
            Offset (0x8C), 
            Offset (0x8F), 
            B1MA,   64, 
            Offset (0x98), 
            B2MA,   64, 
            Offset (0xA2), 
            Offset (0xA4), 
            Offset (0xA6), 
            B2CV,   16, 
            Offset (0xAA), 
            RTEP,   16, 
            BET2,   16, 
            Offset (0xB0), 
            CPUT,   8, 
            Offset (0xB2), 
            Offset (0xB3), 
            Offset (0xB4), 
            GPUT,   8, 
            Offset (0xB6), 
            B1TM,   16, 
            BAPV,   16, 
            Offset (0xBC), 
            B1CV,   16, 
            Offset (0xC1), 
            B1DI,   1, 
            B1IC,   1, 
            BATN,   1, 
            Offset (0xC2), 
            BARC,   16, 
            BADC,   16, 
            BADV,   16, 
            BDCW,   16, 
            BDCL,   16, 
            BAFC,   16, 
            BAPR,   16, 
            B1CR,   16, 
            B1AR,   16, 
            Offset (0xE0), 
            LUX1,   8, 
            LUX2,   8, 
            SBMA,   8, 
            Offset (0xF0), 
            BAPS,   1, 
            B1FU,   1, 
            BATT,   1, 
            B1DE,   1, 
            B1AN,   1, 
            Offset (0xF1), 
                ,   1, 
            B1WC,   1, 
            B1PC,   1, 
            B1NC,   1, 
            B1DO,   1, 
            B1WO,   1, 
            B1PO,   1, 
            B1NO,   1, 
            Offset (0xF5), 
            F1SP,   16, 
            F2SP,   16, 
            FAN1,   8, 
            FAN2,   8, 
            BCG1,   16, 
            BCG2,   16
        }

        Mutex (BATM, 0x07)
        Device (BAT1)
        {
            Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */)  // _HID: Hardware ID
            Name (_UID, One)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (ECA2)
                {
                    If ((BNUM & One))
                    {
                        Return (0x1F)
                    }
                }

                Return (0x0B)
            }

            Method (_BIF, 0, NotSerialized)  // _BIF: Battery Information
            {
                Name (BPKG, Package (0x0D)
                {
                    Zero, 
                    Ones, 
                    Ones, 
                    One, 
                    Ones, 
                    Zero, 
                    Zero, 
                    0x64, 
                    Zero, 
                    "VIUU4", 
                    "BAT20101001", 
                    "LiP", 
                    "Lenovo IdeaPad"
                })
                Name (BPKH, Package (0x0D)
                {
                    Zero, 
                    Ones, 
                    Ones, 
                    One, 
                    Ones, 
                    Zero, 
                    Zero, 
                    0x64, 
                    Zero, 
                    "VIUU4", 
                    "BAT20101001", 
                    "LION", 
                    "Lenovo IdeaPad"
                })
                Name (MDST, Buffer (0x05)
                {
                    "    "
                })
                Name (SNST, Buffer (0x05)
                {
                    "    "
                })
                Name (TPST, Buffer (0x05)
                {
                    "    "
                })
                Name (LENV, Buffer (0x09)
                {
                    "        "
                })
                If (ECA2)
                {
                    Local0 = BAFC /* \_SB_.PCI0.LPCB.H_EC.BAFC */
                    If (Local0)
                    {
                        BPKG [One] = BADC /* \_SB_.PCI0.LPCB.H_EC.BADC */
                        BPKG [0x02] = Local0
                        BPKG [0x04] = BADV /* \_SB_.PCI0.LPCB.H_EC.BADV */
                        Divide (Local0, 0x0A, Local1, Local2)
                        BPKG [0x05] = Local2
                        Divide (Local0, 0x14, Local1, Local2)
                        BPKG [0x06] = Local2
                        BPKH [One] = BADC /* \_SB_.PCI0.LPCB.H_EC.BADC */
                        BPKH [0x02] = Local0
                        BPKH [0x04] = BADV /* \_SB_.PCI0.LPCB.H_EC.BADV */
                        Divide (Local0, 0x0A, Local1, Local2)
                        BPKH [0x05] = Local2
                        Divide (Local0, 0x14, Local1, Local2)
                        BPKH [0x06] = Local2
                    }
                }

                If ((B1CH == 0x0050694C))
                {
                    Return (BPKG) /* \_SB_.PCI0.LPCB.H_EC.BAT1._BIF.BPKG */
                }
                Else
                {
                    Return (BPKH) /* \_SB_.PCI0.LPCB.H_EC.BAT1._BIF.BPKH */
                }
            }

            Method (POSW, 1, NotSerialized)
            {
                If ((Arg0 & 0x8000))
                {
                    If ((Arg0 == 0xFFFF))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Local0 = ~Arg0
                        Local0++
                        Local0 &= 0xFFFF
                        Return (Local0)
                    }
                }
                Else
                {
                    Return (Arg0)
                }
            }

            Method (_BST, 0, NotSerialized)  // _BST: Battery Status
            {
                Acquire (BATM, 0xFFFF)
                Name (PKG1, Package (0x04)
                {
                    Ones, 
                    Ones, 
                    Ones, 
                    Ones
                })
                If (ECA2)
                {
                    Local0 = (B1IC << One)
                    Local1 = (B1DI | Local0)
                    PKG1 [Zero] = Local1
                    Local2 = B1CR /* \_SB_.PCI0.LPCB.H_EC.B1CR */
                    Local2 = POSW (Local2)
                    Local3 = BAPV /* \_SB_.PCI0.LPCB.H_EC.BAPV */
                    Divide (Local3, 0x03E8, Local4, Local3)
                    Local2 *= Local3
                    PKG1 [One] = Local2
                    PKG1 [0x02] = BARC /* \_SB_.PCI0.LPCB.H_EC.BARC */
                    PKG1 [0x03] = BAPV /* \_SB_.PCI0.LPCB.H_EC.BAPV */
                }

                Release (BATM)
                Return (PKG1) /* \_SB_.PCI0.LPCB.H_EC.BAT1._BST.PKG1 */
            }

            Method (_PCL, 0, NotSerialized)  // _PCL: Power Consumer List
            {
                Return (_SB) /* \_SB_ */
            }
        }

        Device (VPC0)
        {
            Name (_HID, "VPC2004")  // _HID: Hardware ID
            Name (_UID, Zero)  // _UID: Unique ID
            Name (_VPC, 0xFCFDE104)
            Name (VPCD, Zero)
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }

            Method (_CFG, 0, NotSerialized)
            {
                Return (_VPC) /* \_SB_.PCI0.LPCB.H_EC.VPC0._VPC */
            }

            Method (VPCR, 1, Serialized)
            {
                If ((Arg0 == One))
                {
                    VPCD = VCMD /* \_SB_.PCI0.LPCB.H_EC.VCMD */
                }
                Else
                {
                    VPCD = VDAT /* \_SB_.PCI0.LPCB.H_EC.VDAT */
                }

                Return (VPCD) /* \_SB_.PCI0.LPCB.H_EC.VPC0.VPCD */
            }

            Method (VPCW, 2, Serialized)
            {
                If ((Arg0 == One))
                {
                    VCMD = Arg1
                }
                Else
                {
                    VDAT = Arg1
                }

                Return (Zero)
            }

            Method (SVCR, 1, Serialized)
            {
                If ((Arg0 == Zero)){}
                If ((Arg0 == One)){}
                If ((Arg0 == 0x02))
                {
                    AUMO = Zero
                }

                If ((Arg0 == 0x03))
                {
                    AUMO = One
                }
            }

            Method (HALS, 0, NotSerialized)
            {
                Local0 = Zero
                If ((One == KBLC))
                {
                    Local0 |= 0x10
                }

                If ((One == KBLS))
                {
                    Local0 |= 0x20
                }

                If ((One == UCSP))
                {
                    Local0 |= 0x40
                }

                If ((One == UCEN))
                {
                    Local0 |= 0x80
                }

                If ((One == HTKS))
                {
                    Local0 |= 0x0200
                }

                If ((Zero == HTKC))
                {
                    Local0 |= 0x0400
                }

                Return (Local0)
            }

            Method (SALS, 1, Serialized)
            {
                If ((Arg0 == 0x08))
                {
                    KBLS = One
                    Return (Zero)
                }

                If ((Arg0 == 0x09))
                {
                    KBLS = Zero
                    Return (Zero)
                }

                If ((Arg0 == 0x0A))
                {
                    UCEN = One
                    SSM2 = 0x33
                    SSMP = 0xCA
                    Return (Zero)
                }

                If ((Arg0 == 0x0B))
                {
                    UCEN = Zero
                    SSM2 = 0x32
                    SSMP = 0xCA
                    Return (Zero)
                }

                If ((Arg0 == 0x0E))
                {
                    HTKC = Zero
                    SSM2 = 0x31
                    SSMP = 0xCA
                    Return (Zero)
                }

                If ((Arg0 == 0x0F))
                {
                    HTKC = One
                    SSM2 = 0x30
                    SSMP = 0xCA
                    Return (Zero)
                }

                Return (Zero)
            }

            Method (GBMD, 0, NotSerialized)
            {
                Local0 = 0x10000000
                If ((One == CDMB))
                {
                    Local0 |= One
                }

                If ((One == BTSM))
                {
                    Local0 |= 0x02
                }

                If ((One == FCGM))
                {
                    Local0 |= 0x04
                }

                If ((One == MBBD))
                {
                    Local0 |= 0x08
                }

                If ((One == M2BD))
                {
                    Local0 |= 0x10
                }

                If ((One == BTSM))
                {
                    Local0 |= 0x20
                }

                If ((One == BTIL))
                {
                    Local0 |= 0x80
                }

                If ((One == BTPF))
                {
                    Local0 |= 0x0100
                }

                If ((Zero == BTCM))
                {
                    Local0 |= 0x0200
                }

                If ((One == BTOV))
                {
                    Local0 |= 0x0800
                }

                If ((One == ACST))
                {
                    Local0 |= 0x8000
                }

                If ((0x02 == ACST))
                {
                    Local0 |= 0x00010000
                }

                If ((0x03 == ACST))
                {
                    Local0 |= 0x00018000
                }

                If ((One == QKSP))
                {
                    Local0 |= 0x00020000
                }

                If ((One == SPSU))
                {
                    Local0 |= 0x00040000
                }

                If ((One == ADSU))
                {
                    Local0 |= 0x00080000
                }

                If ((One == SHPS))
                {
                    Local0 |= 0x00400000
                }

                Return (Local0)
            }

            Method (SBMC, 1, NotSerialized)
            {
                If ((Arg0 == Zero))
                {
                    CDMB = Zero
                    Return (Zero)
                }

                If ((Arg0 == One))
                {
                    CDMB = One
                    Return (Zero)
                }

                If ((Arg0 == 0x03))
                {
                    BTCM = One
                    Return (Zero)
                }

                If ((Arg0 == 0x05))
                {
                    BTCM = Zero
                    Return (Zero)
                }

                If ((Arg0 == 0x06))
                {
                    BTSM = Zero
                }

                If ((Arg0 == 0x07))
                {
                    SBMA = Arg0
                    Return (Zero)
                }

                If ((Arg0 == 0x08))
                {
                    SBMA = Arg0
                    Return (Zero)
                }

                If ((Arg0 == 0x09))
                {
                    SHPS = One
                    Return (Zero)
                }

                If ((Arg0 == 0x0A)){}
                If ((Arg0 == 0x0B)){}
                If ((Arg0 == 0x10))
                {
                    SHPS = Zero
                    Return (Zero)
                }

                Return (Zero)
            }

            Method (MHCF, 1, NotSerialized)
            {
                Local0 = Arg0
                (Local0 & 0x20)
                Local0 >>= 0x05
                BFUC = Local0
                Return (Local0)
            }

            Method (MHPF, 1, NotSerialized)
            {
                Name (BFWB, Buffer (0x25){})
                CreateByteField (BFWB, Zero, FB0)
                CreateByteField (BFWB, One, FB1)
                CreateByteField (BFWB, 0x02, FB2)
                CreateByteField (BFWB, 0x03, FB3)
                CreateField (BFWB, 0x20, 0x0100, FB4)
                CreateByteField (BFWB, 0x24, FB5)
                If ((SizeOf (Arg0) <= 0x25))
                {
                    If ((SMPR != Zero))
                    {
                        FB1 = SMST /* \_SB_.PCI0.LPCB.H_EC.SMST */
                    }
                    Else
                    {
                        BFWB = Arg0
                        SMAD = FB2 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB2_ */
                        SMCM = FB3 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB3_ */
                        BCNT = FB5 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB5_ */
                        Local0 = FB0 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB0_ */
                        If (((Local0 & One) == Zero))
                        {
                            SMD0 = FB4 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB4_ */
                        }

                        SMPR = FB0 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB0_ */
                        Local0 = 0x03E8
                        While (SMPR)
                        {
                            Sleep (One)
                            Local0--
                        }

                        Local0 = FB0 /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.FB0_ */
                        If (((Local0 & One) != Zero))
                        {
                            FB4 = SMD0 /* \_SB_.PCI0.LPCB.H_EC.SMD0 */
                        }

                        FB1 = SMST /* \_SB_.PCI0.LPCB.H_EC.SMST */
                    }

                    Return (BFWB) /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHPF.BFWB */
                }
            }

            Method (SMTF, 1, NotSerialized)
            {
                If ((Arg0 == Zero))
                {
                    Return (BET2) /* \_SB_.PCI0.LPCB.H_EC.BET2 */
                }

                If ((Arg0 == One))
                {
                    Return (Zero)
                }

                Return (Zero)
            }

            Method (MHIF, 1, NotSerialized)
            {
                If ((Arg0 == Zero))
                {
                    Name (RETB, Buffer (0x0A){})
                    RETB [Zero] = FUSL /* \_SB_.PCI0.LPCB.H_EC.FUSL */
                    RETB [One] = FUSH /* \_SB_.PCI0.LPCB.H_EC.FUSH */
                    RETB [0x02] = BMIL /* \_SB_.PCI0.LPCB.H_EC.BMIL */
                    RETB [0x03] = BMIH /* \_SB_.PCI0.LPCB.H_EC.BMIH */
                    RETB [0x04] = HIDL /* \_SB_.PCI0.LPCB.H_EC.HIDL */
                    RETB [0x05] = HIDH /* \_SB_.PCI0.LPCB.H_EC.HIDH */
                    RETB [0x06] = FMVL /* \_SB_.PCI0.LPCB.H_EC.FMVL */
                    RETB [0x07] = FMVH /* \_SB_.PCI0.LPCB.H_EC.FMVH */
                    RETB [0x08] = DAVL /* \_SB_.PCI0.LPCB.H_EC.DAVL */
                    RETB [0x09] = DAVH /* \_SB_.PCI0.LPCB.H_EC.DAVH */
                    Return (RETB) /* \_SB_.PCI0.LPCB.H_EC.VPC0.MHIF.RETB */
                }
            }

            Method (GSBI, 1, NotSerialized)
            {
                Name (BT11, Zero)
                Name (BTIF, Buffer (0x53){})
                CreateWordField (BTIF, Zero, IFDC)
                CreateWordField (BTIF, 0x02, IFFC)
                CreateWordField (BTIF, 0x04, IFRC)
                CreateWordField (BTIF, 0x06, IFAT)
                CreateWordField (BTIF, 0x08, IFAF)
                CreateWordField (BTIF, 0x0A, IFVT)
                CreateWordField (BTIF, 0x0C, IFCR)
                CreateWordField (BTIF, 0x0E, IFTP)
                CreateWordField (BTIF, 0x10, IFMD)
                CreateWordField (BTIF, 0x12, IFFD)
                CreateWordField (BTIF, 0x14, IFDV)
                CreateField (BTIF, 0xB0, 0x50, IFCH)
                CreateField (BTIF, 0x0100, 0x40, IFDN)
                CreateField (BTIF, 0x0140, 0x60, IFMN)
                CreateField (BTIF, 0x01A0, 0xB8, IFBC)
                CreateField (BTIF, 0x0258, 0x40, IFBV)
                IFDC = (BADC / 0x0A)
                IFFC = (BAFC / 0x0A)
                IFRC = (BARC / 0x0A)
                IFAT = RTEP /* \_SB_.PCI0.LPCB.H_EC.RTEP */
                IFAF = BET2 /* \_SB_.PCI0.LPCB.H_EC.BET2 */
                IFVT = BAPV /* \_SB_.PCI0.LPCB.H_EC.BAPV */
                IFCR = B1CR /* \_SB_.PCI0.LPCB.H_EC.B1CR */
                IFTP = B1TM /* \_SB_.PCI0.LPCB.H_EC.B1TM */
                IFMD = B1DT /* \_SB_.PCI0.LPCB.H_EC.B1DT */
                IFFD = B1DT /* \_SB_.PCI0.LPCB.H_EC.B1DT */
                IFDV = BADV /* \_SB_.PCI0.LPCB.H_EC.BADV */
                IFCH = Zero
                IFCH = B1CH /* \_SB_.PCI0.LPCB.H_EC.B1CH */
                IFDN = Zero
                IFDN = B2MA /* \_SB_.PCI0.LPCB.H_EC.B2MA */
                IFMN = Zero
                IFMN = B1MA /* \_SB_.PCI0.LPCB.H_EC.B1MA */
                IFBC = Zero
                BT11 = 0x17
                While (BT11)
                {
                    ADDH = 0x08
                    ADDL = (0x41 + BT11)
                    Sleep (0x02)
                    BTIF [(0x33 + BT11)] = ADDA /* \_SB_.PCI0.LPCB.H_EC.ADDA */
                    BT11--
                }

                IFBV = Zero
                BTIF [0x4B] = BMIL /* \_SB_.PCI0.LPCB.H_EC.BMIL */
                BTIF [0x4C] = BMIH /* \_SB_.PCI0.LPCB.H_EC.BMIH */
                BTIF [0x4D] = HIDL /* \_SB_.PCI0.LPCB.H_EC.HIDL */
                BTIF [0x4E] = HIDH /* \_SB_.PCI0.LPCB.H_EC.HIDH */
                BTIF [0x4F] = FMVL /* \_SB_.PCI0.LPCB.H_EC.FMVL */
                BTIF [0x50] = FMVH /* \_SB_.PCI0.LPCB.H_EC.FMVH */
                BTIF [0x51] = DAVL /* \_SB_.PCI0.LPCB.H_EC.DAVL */
                BTIF [0x52] = DAVH /* \_SB_.PCI0.LPCB.H_EC.DAVH */
                E907 = BTIF /* \_SB_.PCI0.LPCB.H_EC.VPC0.GSBI.BTIF */
                Return (BTIF) /* \_SB_.PCI0.LPCB.H_EC.VPC0.GSBI.BTIF */
            }

            Method (HODD, 0, NotSerialized)
            {
                Return (0xFF)
            }

            Method (SODD, 1, Serialized)
            {
            }

            Method (GBID, 0, Serialized)
            {
                Name (GBUF, Package (0x04)
                {
                    Buffer (0x02)
                    {
                         0x00, 0x00                                       // ..
                    }, 

                    Buffer (0x02)
                    {
                         0x00, 0x00                                       // ..
                    }, 

                    Buffer (0x08)
                    {
                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                    }, 

                    Buffer (0x08)
                    {
                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00   // ........
                    }
                })
                DerefOf (GBUF [Zero]) [Zero] = B1CY /* \_SB_.PCI0.LPCB.H_EC.B1CY */
                DerefOf (GBUF [One]) [Zero] = Zero
                DerefOf (GBUF [0x02]) [Zero] = BMIL /* \_SB_.PCI0.LPCB.H_EC.BMIL */
                DerefOf (GBUF [0x02]) [One] = BMIH /* \_SB_.PCI0.LPCB.H_EC.BMIH */
                DerefOf (GBUF [0x02]) [0x02] = HIDL /* \_SB_.PCI0.LPCB.H_EC.HIDL */
                DerefOf (GBUF [0x02]) [0x03] = HIDH /* \_SB_.PCI0.LPCB.H_EC.HIDH */
                DerefOf (GBUF [0x02]) [0x04] = FMVL /* \_SB_.PCI0.LPCB.H_EC.FMVL */
                DerefOf (GBUF [0x02]) [0x05] = FMVH /* \_SB_.PCI0.LPCB.H_EC.FMVH */
                DerefOf (GBUF [0x02]) [0x06] = DAVL /* \_SB_.PCI0.LPCB.H_EC.DAVL */
                DerefOf (GBUF [0x02]) [0x07] = DAVH /* \_SB_.PCI0.LPCB.H_EC.DAVH */
                DerefOf (GBUF [0x03]) [Zero] = Zero
                Return (GBUF) /* \_SB_.PCI0.LPCB.H_EC.VPC0.GBID.GBUF */
            }
        }

        Method (_Q30, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            P8XH (Zero, 0x30)
            Sleep (0x012C)
            PWRS = One
            PNOT ()
        }

        Method (_Q31, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            P8XH (Zero, 0x31)
            Sleep (0x012C)
            PWRS = Zero
            PNOT ()
        }

        Method (_Q0A, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            P8XH (Zero, 0x31)
            PWRS = RPWR /* \_SB_.PCI0.LPCB.H_EC.RPWR */
            Notify (\_SB.ADP1, 0x80) // Status Change
            PNOT ()
        }

        Method (_Q50, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            Notify (\_SB.PCI0.LPCB.H_EC.VPC0, 0x80) // Status Change
        }

        Method (_Q38, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            P8XH (Zero, 0x38)
            Sleep (0x012C)
            DHCF (0x02, Zero)
        }

        Method (_Q39, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            P8XH (Zero, 0x39)
            Sleep (0x012C)
            DHCF (0x03, Zero)
        }

        Method (_Q32, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            P8XH (Zero, 0x32)
            PNOT ()
        }

        Method (_Q0B, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            P8XH (Zero, 0x33)
            Sleep (0x05DC)
            BNUM = Zero
            BNUM |= BAPS /* \_SB_.PCI0.LPCB.H_EC.BAPS */
            Notify (\_SB.PCI0.LPCB.H_EC.BAT1, 0x80) // Status Change
            Sleep (0x05DC)
            Notify (\_SB.PCI0.LPCB.H_EC.BAT1, 0x81) // Information Change
            PNOT ()
        }

        Method (_Q0C, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            LIDM ()
        }

        Method (_Q0D, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            LIDM ()
        }

        Name (ECPS, Zero)
        Method (PCA2, 0, NotSerialized)
        {
            Local0 = ECPS /* \_SB_.PCI0.LPCB.H_EC.ECPS */
            If (CondRefOf (\_SB.PCI0.PEG0.PEGP.PSAP))
            {
                If ((ECPS < \_SB.PCI0.PEG0.PEGP.PSAP))
                {
                    Local0 = \_SB.PCI0.PEG0.PEGP.PSAP /* External reference */
                }
            }

            If (CondRefOf (\_PR.CPU0._PPC))
            {
                \_PR.CPPC = Local0
                PNOT ()
            }

            Return (Local0)
        }

        Method (_Q72, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            P8XH (Zero, 0x72)
            If ((PSTA != 0xFF))
            {
                ECPS = PSTA /* \_SB_.PCI0.LPCB.H_EC.PSTA */
                PCA2 ()
                PAID = Zero
            }
        }

        Method (_Q73, 0, NotSerialized)  // _Qxx: EC Query, xx=0x00-0xFF
        {
            P8XH (Zero, 0x73)
            Notify (\_SB.PCI0.PEG0.PEGP, DSTA)
            PAIG = Zero
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB)
    {
        Method (GPLD, 2, Serialized)
        {
            Name (PCKG, Package (0x01)
            {
                Buffer (0x10){}
            })
            CreateField (DerefOf (PCKG [Zero]), Zero, 0x07, REV)
            REV = One
            CreateField (DerefOf (PCKG [Zero]), 0x40, One, VISI)
            VISI = Arg0
            CreateField (DerefOf (PCKG [Zero]), 0x57, 0x08, GPOS)
            GPOS = Arg1
            Return (PCKG) /* \_SB_.PCI0.XHC_.RHUB.GPLD.PCKG */
        }

        Method (GUPC, 1, Serialized)
        {
            Name (PCKG, Package (0x04)
            {
                Zero, 
                0xFF, 
                Zero, 
                Zero
            })
            PCKG [Zero] = Arg0
            Return (PCKG) /* \_SB_.PCI0.XHC_.RHUB.GUPC.PCKG */
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS01)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, Zero))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.USR1)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, Zero))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS01)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, Zero))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS04)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (One))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x04))
        }

        Device (CRGB)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                Return (0x0F)
            }

            Method (_ADR, 0, Serialized)  // _ADR: Address
            {
                Return (0x04)
            }

            Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
            {
                Name (UPCP, Package (0x04)
                {
                    0xFF, 
                    0xFF, 
                    Zero, 
                    Zero
                })
                Return (UPCP) /* \_SB_.PCI0.XHC_.RHUB.HS04.CRGB._UPC.UPCP */
            }

            Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
            {
                Name (PLDS, Package (0x01)
                {
                    Buffer (0x10)
                    {
                        /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                        /* 0008 */  0x24, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00   // $.......
                    }
                })
                Name (PLDR, Package (0x01)
                {
                    Buffer (0x14)
                    {
                        /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                        /* 0008 */  0x24, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00,  // $.......
                        /* 0010 */  0xC8, 0x00, 0xA1, 0x00                           // ....
                    }
                })
                Return (PLDR) /* \_SB_.PCI0.XHC_.RHUB.HS04.CRGB._PLD.PLDR */
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS05)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (One))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x05))
        }

        Device (CRGB)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                Return (0x0F)
            }

            Method (_ADR, 0, Serialized)  // _ADR: Address
            {
                Return (0x05)
            }

            Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
            {
                Name (UPCP, Package (0x04)
                {
                    0xFF, 
                    0xFF, 
                    Zero, 
                    Zero
                })
                Return (UPCP) /* \_SB_.PCI0.XHC_.RHUB.HS05.CRGB._UPC.UPCP */
            }

            Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
            {
                Name (PLDS, Package (0x01)
                {
                    Buffer (0x10)
                    {
                        /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                        /* 0008 */  0x24, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00   // $.......
                    }
                })
                Name (PLDR, Package (0x01)
                {
                    Buffer (0x14)
                    {
                        /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                        /* 0008 */  0x24, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00,  // $.......
                        /* 0010 */  0xC8, 0x00, 0xA1, 0x00                           // ....
                    }
                })
                Return (PLDR) /* \_SB_.PCI0.XHC_.RHUB.HS05.CRGB._PLD.PLDR */
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS07)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (One))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x07))
        }

        Device (CRGB)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                Return (0x0F)
            }

            Method (_ADR, 0, Serialized)  // _ADR: Address
            {
                Return (0x07)
            }

            Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
            {
                Name (UPCP, Package (0x04)
                {
                    0xFF, 
                    0xFF, 
                    Zero, 
                    Zero
                })
                Return (UPCP) /* \_SB_.PCI0.XHC_.RHUB.HS07.CRGB._UPC.UPCP */
            }

            Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
            {
                Name (PLDS, Package (0x01)
                {
                    Buffer (0x10)
                    {
                        /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                        /* 0008 */  0x24, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00   // $.......
                    }
                })
                Name (PLDR, Package (0x01)
                {
                    Buffer (0x14)
                    {
                        /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                        /* 0008 */  0x24, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00,  // $.......
                        /* 0010 */  0xC8, 0x00, 0xA1, 0x00                           // ....
                    }
                })
                Return (PLDR) /* \_SB_.PCI0.XHC_.RHUB.HS07.CRGB._PLD.PLDR */
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS04)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (One))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x05))
        }

        Device (CRGB)
        {
            Method (_STA, 0, Serialized)  // _STA: Status
            {
                Return (0x0F)
            }

            Method (_ADR, 0, Serialized)  // _ADR: Address
            {
                Return (0x14)
            }

            Method (_UPC, 0, Serialized)  // _UPC: USB Port Capabilities
            {
                Name (UPCP, Package (0x04)
                {
                    0xFF, 
                    0xFF, 
                    Zero, 
                    Zero
                })
                Return (UPCP) /* \_SB_.PCI0.XHC_.RHUB.SS04.CRGB._UPC.UPCP */
            }

            Method (_PLD, 0, Serialized)  // _PLD: Physical Location of Device
            {
                Name (PLDS, Package (0x01)
                {
                    Buffer (0x10)
                    {
                        /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                        /* 0008 */  0x24, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00   // $.......
                    }
                })
                Name (PLDR, Package (0x01)
                {
                    Buffer (0x14)
                    {
                        /* 0000 */  0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // ........
                        /* 0008 */  0x24, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00,  // $.......
                        /* 0010 */  0xC8, 0x00, 0xA1, 0x00                           // ....
                    }
                })
                Return (PLDR) /* \_SB_.PCI0.XHC_.RHUB.SS04.CRGB._PLD.PLDR */
            }
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS02)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (One))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (One, 0x02))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS03)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (One))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (One, 0x03))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS06)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (One))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (One, One))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS08)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x08))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS09)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x09))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS10)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x0A))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.USR2)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, Zero))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS02)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (One))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (One, 0x03))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS03)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (One))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (One, 0x02))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS05)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x06))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS06)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x0C))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS11)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x0D))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS12)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x0E))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS13)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x0F))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.HS14)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x10))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS07)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x11))
        }
    }

    Scope (\_SB.PCI0.XHC.RHUB.SS08)
    {
        Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
        {
            Return (GUPC (Zero))
        }

        Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
        {
            Return (GPLD (Zero, 0x12))
        }
    }
}