diff options
author | Dennis Wassenberg <dennis.wassenberg@secunet.com> | 2015-09-10 12:17:49 +0200 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2016-11-21 15:07:26 +0100 |
commit | 020a3ce90b025e342faec9479ded07e3ce055146 (patch) | |
tree | df698dfaf854a13ece9325c44315645f4d36de5c /src/ec/roda/it8518/acpi | |
parent | c868fd16a79556db6005bd784e21a654a22042c3 (diff) |
ec/roda/it8518: Add another embedded controller
The embedded-controller interface of Roda's Ivy Bridge notebooks is
supposedly programmed by AMI.
Change-Id: I153d831fcea8a3132c7bd1927ff3b445d9a8e92c
Signed-off-by: Dennis Wassenberg <dennis.wassenberg@secunet.com>
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/17288
Tested-by: build bot (Jenkins)
Reviewed-by: Edward O'Callaghan <edward.ocallaghan@koparo.com>
Diffstat (limited to 'src/ec/roda/it8518/acpi')
-rw-r--r-- | src/ec/roda/it8518/acpi/ac.asl | 29 | ||||
-rw-r--r-- | src/ec/roda/it8518/acpi/battery.asl | 123 | ||||
-rw-r--r-- | src/ec/roda/it8518/acpi/ec.asl | 210 | ||||
-rw-r--r-- | src/ec/roda/it8518/acpi/lid.asl | 27 |
4 files changed, 389 insertions, 0 deletions
diff --git a/src/ec/roda/it8518/acpi/ac.asl b/src/ec/roda/it8518/acpi/ac.asl new file mode 100644 index 0000000000..33c62ee8dd --- /dev/null +++ b/src/ec/roda/it8518/acpi/ac.asl @@ -0,0 +1,29 @@ +/* + * 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 (AC) +{ + Name (_HID, "ACPI0003") + Name (_PCL, Package () { \_SB }) + + Method (_PSR, 0, NotSerialized) // _PSR: Power Source + { + Store ("-----> AC: _PSR", Debug) + Store ("<----- AC: _PSR", Debug) + Return (PWRS) + } +} diff --git a/src/ec/roda/it8518/acpi/battery.asl b/src/ec/roda/it8518/acpi/battery.asl new file mode 100644 index 0000000000..ffe2c2f6e9 --- /dev/null +++ b/src/ec/roda/it8518/acpi/battery.asl @@ -0,0 +1,123 @@ +/* + * 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) + } +} diff --git a/src/ec/roda/it8518/acpi/ec.asl b/src/ec/roda/it8518/acpi/ec.asl new file mode 100644 index 0000000000..e0639e2590 --- /dev/null +++ b/src/ec/roda/it8518/acpi/ec.asl @@ -0,0 +1,210 @@ +/* + * 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. + */ + +#include <drivers/pc80/pc/ps2_controller.asl> + +Device (EC0) +{ + Name (_HID, EISAID ("PNP0C09")) // ACPI Embedded Controller + Name (_UID, 1) + Name (_GPE, Add(EC_SCI_GPI, 16)) // GPE for Runtime SCI + Name (PWRS, 1) + Name (LIDS, 1) + + // EC RAM fields + OperationRegion(ERAM, EmbeddedControl, 0, 0xFF) + Field (ERAM, ByteAcc, NoLock, Preserve) + { + Offset(0x00), // [Configuration Space 0x0] + Offset(0x02), // [Configuration Space 0x2] + B0ST, 16, // Battery 0 State + B0FC, 16, // Battery 0 Last Full Charge Capacity + B0RC, 16, // Battery 0 Remaining Capacity + B0U1, 16, // Unknown + B0VT, 16, // Battery 0 Present Voltage + B0AC, 16, // Battery 0 Present Rate + Offset(0x40), // [Configuration Space 0x40] + ECOS, 8, // OS System Type (0: DOS, 1: ACPI-compatible) + CPUT, 8, // CPU Temperature + LOCT, 8, // LOC Temperature + OEMT, 8, // OEM Temperature + Offset (0x48), // [Configuration Space 0x48] + ECPS, 8, // EC Power Source + Offset (0x50), // [Configuration Space 0x50] + LUXH, 8, // Ambient Light Illuminance High + LUXL, 8, // Ambient Light Illuminance Low + Offset (0x5B), // [Configuration Space 0x5B] + BRIG, 8, // Brightness + } // End of ERAM + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } + + Method (_CRS, 0, NotSerialized) + { + Return (ResourceTemplate() + { + IO (Decode16, 0x62, 0x62, 0x00, 0x01) + IO (Decode16, 0x66, 0x66, 0x00, 0x01) + }) + } + + Method (_REG, 2, NotSerialized) + { + Store ("-----> EC: _REG", Debug) + + Store (0x01, ECOS) + + Store ("<----- EC: _REG", Debug) + } + + Method (_Q29, 0, NotSerialized) // _Qxx: EC Query + { + Store ("-----> EC: _Q29", Debug) + + Store (1, PWRS) + Notify (AC, 0x80) + Notify (AC, 0x00) + Notify (BAT0, 0x00) + Notify (BAT0, 0x80) + + Store ("<----- EC: _Q29", Debug) + } + + Method (_Q31, 0, NotSerialized) // _Qxx: EC Query + { + Store ("-----> EC: _Q31", Debug) + + Store (0, PWRS) + Notify (AC, 0x80) + Notify (AC, 0x00) + Notify (BAT0, 0x00) + Notify (BAT0, 0x80) + + Store ("<----- EC: _Q31", Debug) + } + + Method (_Q32, 0, NotSerialized) // _Qxx: EC Query + { + Store ("-----> EC: _Q32", Debug) + + Sleep (2500) + Notify (BAT0, 0x00) + Notify (BAT0, 0x80) + Notify (BAT0, 0x81) + Notify (BAT0, 0x82) + + Store ("<----- EC: _Q32", Debug) + } + + Method (_Q33, 0, NotSerialized) // _Qxx: EC Query + { + Store ("-----> EC: _Q33", Debug) + + Sleep (2500) + Notify (BAT0, 0x00) + Notify (BAT0, 0x80) + Notify (BAT0, 0x81) + Notify (BAT0, 0x82) + + Store ("<---- EC: _Q33", Debug) + } + + Method (_Q36, 0, NotSerialized) // _Qxx: EC Query + { + Store ("-----> EC: _Q36", Debug) + + Notify (BAT0, 0x80) + + Store ("<----- EC: _Q36", Debug) + } + + Method (_Q37, 0, NotSerialized) // _Qxx: EC Query + { + Store ("-----> EC: _Q37", Debug) + + Notify (BAT0, 0x80) + + Store ("<----- EC: _Q37", Debug) + } + + Method (_Q43, 0, NotSerialized) // _Qxx: EC Query + { + Store ("-----> EC: _Q43", Debug) + + Store (BRIG, Local0) + Increment (Local0) + If (LGreater (Local0, 0xAA)) { + Store (0xAA, Local0) + } + Store (Local0, BRIG) + + \_SB.PCI0.GFX0.INCB () + + Store ("<---- EC: _Q43", Debug) + } + + Method (_Q44, 0, NotSerialized) // _Qxx: EC Query + { + Store ("-----> EC: _Q44", Debug) + + Store (BRIG, Local0) + Decrement (Local0) + If (LLess (Local0, 0xA0)) + { + Store (0xA0, Local0) + } + Store (Local0, BRIG) + + \_SB.PCI0.GFX0.DECB () + + Store ("<---- EC: _Q44", Debug) + } + + Method (_Q45, 0, NotSerialized) // _Qxx: EC Query + { + Store ("-----> EC: _Q45", Debug) + + Store (0, LIDS) + Notify (LID, 0x80) + + Store ("<----- EC: _Q45", Debug) + } + + Method (_Q46, 0, NotSerialized) // _Qxx: EC Query + { + Store ("-----> EC: _Q46", Debug) + + Store (1, LIDS) + Notify (LID, 0x80) + + Store ("<----- EC: _Q46", Debug) + } + + Method (_Q70, 0, NotSerialized) // _Qxx: EC Query + { + Store ("-----> EC: _Q70", Debug) + + Notify (ALSD, 0x80) + + Store ("<----- EC: _Q70", Debug) + } + + #include "battery.asl" + #include "ac.asl" + #include "lid.asl" +} diff --git a/src/ec/roda/it8518/acpi/lid.asl b/src/ec/roda/it8518/acpi/lid.asl new file mode 100644 index 0000000000..f793838863 --- /dev/null +++ b/src/ec/roda/it8518/acpi/lid.asl @@ -0,0 +1,27 @@ +/* + * 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 (LID) +{ + Name (_HID, EisaId ("PNP0C0D")) // _HID: Hardware ID + Method (_LID, 0, NotSerialized) // _LID: Lid Status + { + Store ("-----> LID0: _LID", Debug) + Store ("<----- LID0: _LID", Debug) + Return (LIDS) + } +} |