| /* |
| * This file is part of the coreboot project. |
| * |
| * Copyright (C) 2015 secunet Security Networks AG |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; version 2 of the License. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| */ |
| |
| //SCOPE EC0 |
| |
| Device (BAT0) |
| { |
| Name (_HID, EISAID ("PNP0C0A")) |
| Name (_UID, 1) |
| Name (_PCL, Package () { \_SB }) |
| |
| |
| // |
| // Default Static Battery Information |
| // |
| Name (PBIF, Package (13) |
| { |
| 1, // 0: Power Unit |
| 4800, // 1: Design Capacity |
| 4650, // 2: Last Full Charge Capacity |
| 1, // 3: Battery Technology(Rechargeable) |
| 12608, // 4: Design Voltage 10.8V |
| 0, // 5: Design capacity of warning |
| 0, // 6: Design capacity of low |
| 0, // 7: Battery capacity granularity 1 |
| 0, // 8: Battery capacity granularity 2 |
| "BAT0", // 9: Model Number |
| "RT672", // 10: Serial Number |
| "LiON", // 11: Battery Type |
| "ASP" // 12: OEM Information |
| }) |
| |
| |
| Name (PBST, Package (4) |
| { |
| 0x00000000, // Battery State |
| 0xFFFFFFFF, // Battery Present Rate |
| 0xFFFFFFFF, // Battery Remaining Capacity |
| 0xFFFFFFFF, // Battery Present Voltage |
| }) |
| |
| |
| // Battery Slot Status |
| Method (_STA, 0, Serialized) |
| { |
| Store ("-----> BAT0: _STA", Debug) |
| |
| Store (0x0F, Local0) |
| |
| Store (ECPS, Local1) |
| And (Local1, 0x02, Local1) |
| If (LEqual (Local1, 0x02)) |
| { |
| Store (0x1F, Local0) |
| } |
| |
| Store ("<----- BAT0: _STA", Debug) |
| |
| Return (Local0) |
| } |
| |
| Method (_BIF, 0, Serialized) |
| { |
| Store ("-----> BAT0: _BIF", Debug) |
| |
| Store (B0FC, Index (PBIF, 0x02)) |
| Store (Divide (Multiply (B0FC, 6), 100), Index (PBIF, 0x05)) |
| Store (Divide (Multiply (B0FC, 3), 100), Index (PBIF, 0x06)) |
| |
| Store ("<----- BAT0: _BIF", Debug) |
| |
| Return (PBIF) |
| } |
| |
| Method (_BST, 0, Serialized) |
| { |
| Store ("-----> BAT0: _BST", Debug) |
| |
| Store (B0ST, Local0) |
| And (Local0, 0x40, Local0) |
| If (LEqual (Local0, 0x40)) |
| { |
| If (LEqual (PWRS, 1)) |
| { |
| Store (0x00, Index (PBST, 0x00)) |
| } |
| Else |
| { |
| Store (0x01, Index (PBST, 0x00)) |
| } |
| } |
| Else |
| { |
| Store (0x02, Index (PBST, 0x00)) |
| } |
| |
| Store (B0AC, Local1) |
| If (LGreaterEqual (Local1, 0x8000)) |
| { |
| Subtract (0x00010000, Local1, Local1) |
| } |
| |
| Store (Local1, Index (PBST, 0x01)) |
| Store (B0RC, Index (PBST, 0x02)) |
| Store (B0VT, Index (PBST, 0x03)) |
| |
| Store ("<----- BAT0: _BST", Debug) |
| |
| Return (PBST) |
| } |
| } |