    // battery
    // In config ACPI, _BIF renamed XBIF
    // Find:     5F 42 49 46
    // Replace:  58 42 49 46
    //
    // In config ACPI, _BST renamed XBST
    // Find:     5F 42 53 54
    // Replace:  58 42 53 54
    //
    DefinitionBlock ("", "SSDT", 2, "OCLT", "BAT1", 0)
    {
        External(_SB.PCI0.LPCB.H_EC, DeviceObj)
        External(_SB.PCI0.LPCB.H_EC.BAT1, DeviceObj)
        External(_SB.PCI0.LPCB.H_EC.BAT1.XBIF, MethodObj)
        External(_SB.PCI0.LPCB.H_EC.BAT1.XBST, MethodObj)
        External(_SB.PCI0.LPCB.H_EC.BAT1.POSW, MethodObj)
        External(_SB.PCI0.LPCB.H_EC.ECAV, IntObj)
        External(_SB.PCI0.LPCB.H_EC.B1IC, FieldUnitObj)
        External(_SB.PCI0.LPCB.H_EC.B1DI, FieldUnitObj)
        External(_SB.PCI0.LPCB.H_EC.ECRD, MethodObj)

        Method (B1B2, 2, NotSerialized)
        {
            ShiftLeft (Arg1, 8, Local0)
            Or (Arg0, Local0, Local0)
            Return (Local0)
        }
        Scope(_SB.PCI0.LPCB.H_EC)
        {
            Method (RE1B, 1, NotSerialized)
            {
                OperationRegion(ERAM, EmbeddedControl, Arg0, 1)
                Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }
                Return(BYTE)
            }
            Method (RECB, 2, Serialized)
            {
                ShiftRight(Arg1, 3, Arg1)
                Name(TEMP, Buffer(Arg1) { })
                Add(Arg0, Arg1, Arg1)
                Store(0, Local0)
                While (LLess(Arg0, Arg1))
                {
                    Store(RE1B(Arg0), Index(TEMP, Local0))
                    Increment(Arg0)
                    Increment(Local0)
                }
                Return(TEMP)
            }
            OperationRegion (BAM0, EmbeddedControl, 0x00, 0xFF)
            Field (BAM0, ByteAcc, Lock, Preserve)
            {
                    Offset (0x62),
                        ,   16, //B1TM,   16,
                    BVT0,8,BVT1,8,//B1VT,   16,
                    BCR0,8,BCR1,8,//B1CR,   16,
                        ,   16,
                    BRC0,8,BRC1,8,//B1RC,   16,
                    BFC0,8,BFC1,8,//B1FC,   16,

                    Offset (0x76),
                    BDC0,8,BDC1,8,//B1DC,   16,
                    BDV0,8,BDV1,8,//B1DV,   16,
                        ,   16, //BDCW,   16,
                        ,   16, //BDCL,   16,
                        ,   16, //B1AR,   16,
                    //B1MA,   64, //Offset (0x80) ,RECB(0x80,64)
            }
        }

        Scope(_SB.PCI0.LPCB.H_EC.BAT1)
        {
            Method (_BIF, 0, Serialized)
            {
                    If (_OSI ("Darwin"))
                    {
                        Name (BPK1, Package (0x0D)
                        {
                            Zero,
                            0xFFFFFFFF,
                            0xFFFFFFFF,
                            One,
                            0xFFFFFFFF,
                            Zero,
                            Zero,
                            0x0100,
                            0x40,
                            "BASE-BAT",
                            "123456789",
                            "LiP",
                            "Simplo"
                        })
                        If (\_SB.PCI0.LPCB.H_EC.ECAV)
                        {
                            Local0 = B1B2 (BFC0, BFC1) * 0x0A
                            If (Local0)
                            {
                                BPK1 [One] = B1B2 (BDC0, BDC1) * 0x0A
                                BPK1 [0x02] = Local0
                                BPK1 [0x04] = B1B2 (BDV0, BDV1)
                                Divide (Local0, 0x0A, Local1, Local2)
                                BPK1 [0x05] = Local2
                                Divide (Local0, 0x32, Local1, Local2)
                                BPK1 [0x06] = Local2
                                If ((RECB(0x80,64) == 0x0000313100504D53))
                                {
                                    BPK1 [0x0C] = "Simplo"
                                }

                                If ((RECB(0x80,64) == 0x20534F432D545043))
                                {
                                    BPK1 [0x0C] = "Celxpert"
                                }

                                If ((RECB(0x80,64) == 0x74726570786C6543))
                                {
                                    BPK1 [0x0C] = "Celxpert"
                                }

                                If ((RECB(0x80,64) == 0x3831303200504D53))
                                {
                                    BPK1 [0x0C] = "Simplo"
                                }

                                If ((RECB(0x80,64) == 0x393130320043474C))
                                {
                                    BPK1 [0x0C] = "LGC"
                                }

                                If ((RECB(0x80,64) == 0x0061646F776E7553))
                                {
                                    BPK1 [0x0C] = "Sunwoda"
                                }
                            }
                        }

                        Return (BPK1)
                    }
                    Else
                    {
                        Return (\_SB.PCI0.LPCB.H_EC.BAT1.XBIF())
                    }
            }

            Method (_BST, 0, Serialized)
            {
                    If (_OSI ("Darwin"))
                    {
                        Name (PKG1, Package (0x04)
                        {
                            0xFFFFFFFF,
                            0xFFFFFFFF,
                            0xFFFFFFFF,
                            0xFFFFFFFF
                        })
                        If (\_SB.PCI0.LPCB.H_EC.ECAV)
                        {
                            Local0 = (ECRD (RefOf (B1IC)) << One)
                            Local1 = (ECRD (RefOf (B1DI)) | Local0)
                            PKG1 [Zero] = Local1
                            Local2 = B1B2 (BCR0, BCR1)
                            Local2 = POSW (Local2)
                            Local3 = B1B2 (BVT0, BVT1)
                            Divide (Local3, 0x03E8, Local4, Local3)
                            Local2 *= Local3
                            PKG1 [One] = Local2
                            PKG1 [0x02] = B1B2 (BRC0, BRC1) * 0x0A
                            PKG1 [0x03] = B1B2 (BVT0, BVT1)
                        }

                        Return (PKG1)
                    }
                    Else
                    {
                        Return (\_SB.PCI0.LPCB.H_EC.BAT1.XBST())
                    }
            }
        }
    }
    //EOF

# results matching ""

# No results matching ""