diff options
author | Sven Schnelle <svens@stackframe.org> | 2011-04-11 19:43:32 +0000 |
---|---|---|
committer | Sven Schnelle <svens@stackframe.org> | 2011-04-11 19:43:32 +0000 |
commit | ffcd1439f36ec27388139b9d5a379dd4294417b8 (patch) | |
tree | b3694c7283ed4635497f4b7e6525684a5ffe7256 /src/mainboard/lenovo/x60/acpi/battery.asl | |
parent | 18b02360b9dba6ca61538923e27b5ba68a2b3299 (diff) | |
download | coreboot-ffcd1439f36ec27388139b9d5a379dd4294417b8.tar.xz |
EC: Add Lenovo H8
Move the EC support code from the X60 mainboard to a generic
driver, as this EC is used in many thinkpads. Also move the
ACPI code to this directory for this reason.
This patch also adds a chip config, so that the initial setting
for basic register can be specified in devicetree.cb
Signed-off-by: Sven Schnelle <svens@stackframe.org>
Acked-by: Peter Stuge <peter@stuge.se>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6485 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/mainboard/lenovo/x60/acpi/battery.asl')
-rw-r--r-- | src/mainboard/lenovo/x60/acpi/battery.asl | 296 |
1 files changed, 0 insertions, 296 deletions
diff --git a/src/mainboard/lenovo/x60/acpi/battery.asl b/src/mainboard/lenovo/x60/acpi/battery.asl deleted file mode 100644 index 7168581604..0000000000 --- a/src/mainboard/lenovo/x60/acpi/battery.asl +++ /dev/null @@ -1,296 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (c) 2011 Sven Schnelle <svens@stackframe.org> - * - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, - * MA 02110-1301 USA - */ - -Field(ERAM, ByteAcc, NoLock, Preserve) -{ - Offset (0x38), - B0ST, 4, /* Battery 0 state */ - , 1, - B0CH, 1, /* Battery 0 charging */ - B0DI, 1, /* Battery 0 discharging */ - B0PR, 1, /* Battery 0 present */ - Offset (0x39), - B1ST, 4, /* Battery 1 state */ - , 1, - B1CH, 1, /* Battery 1 charging, */ - B1DI, 1, /* Battery 1 discharging,*/ - B1PR, 1 /* Battery 1 present */ -} - -/* EC Registers */ -/* PAGE == 0x00 */ -Field (ERAM, ByteAcc, NoLock, Preserve) -{ - Offset(0xa0), - BARC, 16, /* Battery remaining capacity */ - BAFC, 16, /* Battery full charge capacity */ - Offset(0xa8), - BAPR, 16, /* Battery present rate */ - BAVO, 16, /* Battery Voltage */ -} - -/* PAGE == 0x01 */ -Field (ERAM, ByteAcc, NoLock, Preserve) -{ - Offset(0xa0), - , 15, - BAMA, 1, -} - -/* PAGE == 0x02 */ -Field (ERAM, ByteAcc, NoLock, Preserve) -{ - Offset(0xa0), - BADC, 16, /* Design Capacity */ - BADV, 16, /* Design voltage */ - , 16, - , 16, - , 16, - BASN, 16, -} - -/* PAGE == 0x04: Battery type */ -Field (ERAM, ByteAcc, NoLock, Preserve) -{ - Offset(0xa0), - BATY, 32 -} - - -/* PAGE == 0x05: Battery OEM information */ -Field (ERAM, ByteAcc, NoLock, Preserve) -{ - Offset(0xa0), - BAOE, 128 -} - -/* PAGE == 0x06: Battery name */ -Field (ERAM, ByteAcc, NoLock, Preserve) -{ - Offset(0xa0), - BANA, 128 -} - -/* Arg0: Battery - * Arg1: Battery Status Package - * Arg2: charging - * Arg3: discharging - */ -Method(BSTA, 4, NotSerialized) -{ - Acquire(ECLK, 0xffff) - Store(0, Local0) - Or(1, Arg0, PAGE) - Store(BAMA, Local1) - Store(Arg0, PAGE) /* Battery dynamic information */ - - Store(BAPR, Local2) - - if (Arg2) // charging - { - Or(2, Local0, Local0) - - If (LGreaterEqual (Local2, 0x8000)) { - Store(0, Local2) - } - } - - if (Arg3) // discharging - { - Or(1, Local0, Local0) - Subtract(0x10000, Local2, Local2) - } - - Store(Local0, Index(Arg1, 0x00)) - - if (Local1) { - Multiply (BARC, 10, Index(Arg1, 2)) - Multiply (Local2, BAVO, Local2) - Divide (Local2, 1000, Local3, Index(Arg1, 1)) - } else { - Store(BARC, Index(Arg1, 2)) - Store(Local2, Index(Arg1, 1)) - } - Store(BAVO, Index(Arg1, 3)) - Release(ECLK) - Return (Arg1) -} - -Method(BINF, 2, NotSerialized) -{ - Acquire(ECLK, 0xffff) - Or(1, Arg1, PAGE) /* Battery 0 static information */ - Xor(BAMA, 1, Index(Arg0, 0)) - Store(BAMA, Local0) - Store(Arg1, PAGE) - Store(BAFC, Local2) - Or(2, Arg1, PAGE) - Store(BADC, Local1) - - if (Local0) - { - Multiply (Local1, 10, Local1) - Multiply (Local2, 10, Local2) - } - - Store(Local1, Index(Arg0, 1)) // Design Capacity - Store(Local2, Index(Arg0, 2)) // Last full charge capacity - Store(BADV, Index(Arg0, 4)) // Design Voltage - Divide (Local2, 20, Local0, Index(Arg0, 5)) // Warning capacity - - Store (BASN, Local0) - Name (SERN, Buffer (0x06) { " " }) - Store (4, Local1) - While (Local0) - { - Divide (Local0, 0x0A, Local2, Local0) - Add (Local2, 48, Index (SERN, Local1)) - Decrement (Local1) - } - Store (SERN, Index (Arg0, 10)) // Serial Number - - Or(4, Arg1, PAGE) - Name (TYPE, Buffer() { 0, 0, 0, 0, 0 }) - Store(BATY, TYPE) - Store(TYPE, Index (Arg0, 11)) // Battery type - Or(5, Arg1, PAGE) - Store(BAOE, Index (Arg0, 12)) // OEM information - Or(6, Arg1, PAGE) - Store(BANA, Index (Arg0, 9)) // Model number - Release(ECLK) - Return (Arg0) -} - -Device (BAT0) -{ - Name (_HID, EisaId ("PNP0C0A")) - Name (_UID, 0x00) - Name (_PCL, Package () { \_SB }) - - Name (BATS, Package () - { - 0x00, // 0: PowerUnit: Report in mWh - 0xFFFFFFFF, // 1: Design cap - 0xFFFFFFFF, // 2: Last full charge cap - 0x01, // 3: Battery Technology - 10800, // 4: Design Voltage (mV) - 0x00, // 5: Warning design capacity - 200, // 6: Low design capacity - 1, // 7: granularity1 - 1, // 8: granularity2 - "", // 9: Model number - "", // A: Serial number - "", // B: Battery Type - "" // C: OEM information - }) - - Method (_BIF, 0, NotSerialized) - { - Return (BINF(BATS, 0)) - } - - Name (BATI, Package () - { - 0, // Battery State - // Bit 0 - discharge - // Bit 1 - charge - // Bit 2 - critical state - 0, // Battery present Rate - 0, // Battery remaining capacity - 0 // Battery present voltage - }) - - Method (_BST, 0, NotSerialized) - { - if (B0PR) { - Return (BSTA(0, BATI, B0CH, B0DI)) - } else { - Return (BATS) - } - } - - Method (_STA, 0, NotSerialized) - { - if (B0PR) { - Return (0x1f) - } else { - Return (0x0f) - } - } -} - -Device (BAT1) -{ - Name (_HID, EisaId ("PNP0C0A")) - Name (_UID, 0x00) - Name (_PCL, Package () { \_SB }) - - Name (BATS, Package () - { - 0x00, // 0: PowerUnit: Report in mWh - 0xFFFFFFFF, // 1: Design cap - 0xFFFFFFFF, // 2: Last full charge cap - 0x01, // 3: Battery Technology - 10800, // 4: Design Voltage (mV) - 0x00, // 5: Warning design capacity - 200, // 6: Low design capacity - 1, // 7: granularity1 - 1, // 8: granularity2 - "", // 9: Model number - "", // A: Serial number - "", // B: Battery Type - "" // C: OEM information - }) - - Method (_BIF, 0, NotSerialized) - { - Return (BINF(BATS, 0x10)) - } - - Name (BATI, Package () - { - 0, // Battery State - // Bit 0 - discharge - // Bit 1 - charge - // Bit 2 - critical state - 0, // Battery present Rate - 0, // Battery remaining capacity - 0 // Battery present voltage - }) - - Method (_BST, 0, NotSerialized) - { - if (B1PR) { - Return (BSTA(0x10, BATI, B1CH, B1DI)) - } else { - Return (BATS) - } - } - - Method (_STA, 0, NotSerialized) - { - if (B1PR) { - Return (0x1f) - } else { - Return (0x0f) - } - } -} |