//
DefinitionBlock ("", "SSDT", 2, "ACDT", "BATS", 0)
{
    External (_SB.PCI0.LPCB.H_EC.BAT1, DeviceObj)
    External (_SB.PCI0.LPCB.H_EC.ECAV, IntObj)
    //
    //External (_SB.PCI0.LPCB.H_EC.B1T1, FieldUnitObj)
    //External (_SB.PCI0.LPCB.H_EC.B1T2, FieldUnitObj)
    External (_SB.PCI0.LPCB.H_EC.FUSH, FieldUnitObj)
    External (_SB.PCI0.LPCB.H_EC.FUSL, FieldUnitObj)
    External (_SB.PCI0.LPCB.H_EC.BMIH, FieldUnitObj)
    External (_SB.PCI0.LPCB.H_EC.BMIL, FieldUnitObj)
    External (_SB.PCI0.LPCB.H_EC.FMVH, FieldUnitObj)
    External (_SB.PCI0.LPCB.H_EC.FMVL, FieldUnitObj)
    External (_SB.PCI0.LPCB.H_EC.HIDH, FieldUnitObj)
    External (_SB.PCI0.LPCB.H_EC.HIDL, FieldUnitObj)
    External (_SB.PCI0.LPCB.H_EC.DAVH, FieldUnitObj)
    External (_SB.PCI0.LPCB.H_EC.DAVL, FieldUnitObj)
    //
    Scope (\_SB.PCI0.LPCB.H_EC.BAT1)
    {
        Method (B1B2, 2, NotSerialized)
        {
            Local0 = (Arg1 << 0x08)
            Local0 |= Arg0
            Return (Local0)
        }
        
        Method (CBIS, 0, Serialized)
        {
            Name (PKG1, Package (0x08)
            {
                // config, double check if you have valid AverageRate before
                // fliping that bit to 0x007F007F since it will disable quickPoll
                0x006F007F,
                // ManufactureDate (0x1), AppleSmartBattery format
                0xFFFFFFFF, 
                // PackLotCode (0x2)
                0xFFFFFFFF, 
                // PCBLotCode (0x3)
                0xFFFFFFFF, 
                // FirmwareVersion (0x4)
                0xFFFFFFFF, 
                // HardwareVersion (0x5)
                0xFFFFFFFF, 
                // BatteryVersion (0x6)
                0xFFFFFFFF, 
                0xFFFFFFFF, 
            })
            // Check your _BST method for similiar condition of EC accessibility
            If (_OSI ("Darwin"))
            {
                If (\_SB.PCI0.LPCB.H_EC.ECAV)
                {
                    /*
                    PKG1 [One] = B1B2 (B1T1, B1T2)
                    */
                    PKG1 [0x02] = B1B2 (FUSL, FUSH)
                    PKG1 [0x03] = B1B2 (BMIL, BMIH)
                    PKG1 [0x04] = B1B2 (FMVL, FMVH)
                    PKG1 [0x05] = B1B2 (HIDL, HIDH)
                    PKG1 [0x06] = B1B2 (DAVL, DAVH)
                }

                Return (PKG1)
            }
        } // CBIS

        Method (CBSS, 0, Serialized)
        {
            Name (PKG1, Package (0x08)
            {
                // Temperature (0x10), AppleSmartBattery format
                0xFFFFFFFF, 
                // TimeToFull (0x11), minutes (0xFF)
                0xFFFFFFFF, 
                // TimeToEmpty (0x12), minutes (0)
                0xFFFFFFFF, 
                // ChargeLevel (0x13), percentage
                0xFFFFFFFF, 
                // AverageRate (0x14), mA (signed)
                0xFFFFFFFF, 
                // ChargingCurrent (0x15), mA
                0xFFFFFFFF, 
                // ChargingVoltage (0x16), mV
                0xFFFFFFFF, 
                0xFFFFFFFF
            })
            If (_OSI ("Darwin"))
            {
                If (\_SB.PCI0.LPCB.H_EC.ECAV)
                {
                    /*
                    PKG1 [Zero] = B1B2 (BTM1, BTM2)
                    PKG1 [One] = B1B2 (BCL1, BCL2)
                    PKG1 [0x02] = B1B2 (BCW1, BCW2)
                    PKG1 [0x03] = B1B2 (BPR1, BPR2)
                    PKG1 [0x04] = B1B2 (BAR1, BAR2)
                    PKG1 [0x05] = B1B2 (BCC1, BCC2)
                    PKG1 [0x06] = B1B2 (BCV1, BCV2)
                    */
                }

                Return (PKG1)
            }
        } // CBSS
        
    } // BAT1
}
//EOF
