summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEvgeny Zinoviev <me@ch1p.io>2019-05-30 05:58:11 +0300
committerPatrick Georgi <pgeorgi@google.com>2021-02-09 07:47:05 +0000
commita24efbcb96557e929993e6279eb444c11f2e2533 (patch)
tree95fe1c2f0241b7705cc7ebe5d2f8c5f052abd3ec /src
parent60aef5f8b580195308a974585c74320c1c294a53 (diff)
downloadcoreboot-a24efbcb96557e929993e6279eb444c11f2e2533.tar.xz
mb/apple/macbook21: Use common ACPI code
Use common ACPI code from ec/apple to avoid duplication between boards. Change-Id: I790d1353adea432e9697c5edf0dbb7841d308728 Signed-off-by: Evgeny Zinoviev <me@ch1p.io> Reviewed-on: https://review.coreboot.org/c/coreboot/+/33104 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/mainboard/apple/macbook21/acpi/ec.asl237
1 files changed, 6 insertions, 231 deletions
diff --git a/src/mainboard/apple/macbook21/acpi/ec.asl b/src/mainboard/apple/macbook21/acpi/ec.asl
index e8c7da8cff..dbbb2d6d89 100644
--- a/src/mainboard/apple/macbook21/acpi/ec.asl
+++ b/src/mainboard/apple/macbook21/acpi/ec.asl
@@ -1,234 +1,9 @@
/* SPDX-License-Identifier: GPL-2.0-only */
-Device(EC)
-{
- Name(_HID, EISAID("PNP0C09"))
- Name(_UID, 0)
+#define LIDS_OFFSET 0x01
+#define HPAC_OFFSET 0x01
+#define WKLD_OFFSET 0x02
- Name(_GPE, 0x17)
- Mutex(ECLK, 0)
-
- OperationRegion(ERAM, EmbeddedControl, 0x00, 0x100)
- Field(ERAM, ByteAcc, NoLock, Preserve)
- {
- Offset(0x01),
- LIDS, 1, /* Lid status */
- HPAC, 1,
- Offset(0x02),
- WKLD, 1, /* Lid wake */
-
- Offset(0x20),
- SPTR, 8,
- SSTS, 8,
- SADR, 8,
- SCMD, 8,
- SBFR, 256,
- }
- Field(ERAM, ByteAcc, Lock, Preserve)
- {
- Offset(0x24),
- SBDW, 16,
- }
-
- Method(SBPC, 0, NotSerialized)
- {
- Local0 = 1000
- While(Local0)
- {
- If(SPTR == 0)
- {
- Return()
- }
-
- Sleep(1)
- Local0--
- }
- }
-
- Method(SBRW, 2, NotSerialized)
- {
- Acquire(ECLK, 0xFFFF)
- SADR = (Arg0 << 1)
- SCMD = Arg1
- SPTR = 0x09
- SBPC()
- Local0 = SBDW
- Release(ECLK)
- Return(Local0)
- }
-
- Method(SBRB, 2, NotSerialized)
- {
- Acquire(ECLK, 0xFFFF)
- SADR = (Arg0 << 1)
- SCMD = Arg1
- SPTR = 0x0B
- SBPC()
- Local0 = SBFR
- Release(ECLK)
- Return(Local0)
- }
-
- /* LID status change. */
- Method(_Q20, 0, NotSerialized)
- {
- Notify(LID, 0x80)
- }
-
- /* AC status change. */
- Method(_Q21, 0, NotSerialized)
- {
- Notify(AC, 0x80)
- }
-
- Method(_CRS, 0)
- {
- Name(ECMD, ResourceTemplate()
- {
- IO(Decode16, 0x62, 0x62, 1, 1)
- IO(Decode16, 0x66, 0x66, 1, 1)
- })
- Return(ECMD)
- }
-
- Method(_INI, 0, NotSerialized)
- {
- }
-
- Device(LID)
- {
- Name(_HID, "PNP0C0D")
-
- Method(_LID, 0, NotSerialized)
- {
- return(LIDS)
- }
-
- Method(_PRW, 0, NotSerialized)
- {
- Return (Package() { 0x1d, 0x03 })
- }
-
- Method(_PSW, 1, NotSerialized)
- {
- if (Arg0) {
- WKLD = 1
- } else {
- WKLD = 0
- }
- }
- }
-
- Device(AC)
- {
- Name(_HID, "ACPI0003")
- Name(_UID, 0x00)
- Name(_PCL, Package() { \_SB } )
-
- Method(_PSR, 0, NotSerialized)
- {
- return(HPAC)
- }
-
- Method(_STA, 0, NotSerialized)
- {
- Return(0x0f)
- }
- }
-
- 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
- 10, // 7: granularity1
- 10, // 8: granularity2
- "", // 9: Model number
- "", // A: Serial number
- "", // B: Battery Type
- "" // C: OEM information
- })
-
- 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(_BIF, 0, NotSerialized)
- {
- BATS [0x01] = (SBRW (0x0B, 0x18) * 10)
- BATS [0x02] = (SBRW (0x0B, 0x10) * 10)
- BATS [0x04] = SBRW (0x0B, 0x19)
- BATS [0x09] = SBRB (0x0B, 0x21)
- BATS [0x0B] = SBRB (0x0B, 0x22)
- BATS [0x0C] = SBRB (0x0B, 0x20)
-
- Return(BATS)
- }
-
- Method(_STA, 0, NotSerialized)
- {
- If (SBRW(0x0A, 1) & 1) {
- Return(0x1f)
- } else {
- Return(0x0f)
- }
- }
-
- Method(_BST, 0, NotSerialized)
- {
- /* Check for battery presence. */
- If (!(SBRW (0x0A, 1) & 1)) {
- Return(Package(4) {
- 0,
- 0xFFFFFFFF,
- 0xFFFFFFFF,
- 0xFFFFFFFF
- })
- }
- Local1 = SBRW(0x0B, 0x09)
- BATI [3] = Local1
- Local0 = SBRW (0x0B, 0x0A)
- /* Sign-extend Local0. */
- If(Local0 & 0x8000)
- {
- Local0 = ~Local0
- Local0 = (Local0++ & 0xFFFF)
- }
-
- Local0 *= Local1
- BATI [1] = (Local0 / 1000)
- BATI [2] = (SBRW (0x0B, 0x0F) * 10)
- If(HPAC)
- {
- If (!(SBRW (0x0B, 0x16) & 0x40)) {
- BATI [0] = 2
- } Else {
- BATI [0] = 0
- }
- }
- Else
- {
- BATI [0] = 1
- }
-
- Return(BATI)
- }
- }
-}
+#include <ec/apple/acpi/ec.asl>
+#include <ec/apple/acpi/ac.asl>
+#include <ec/apple/acpi/lid.asl>