Patrick Georgi submitted this change.

View Change

Approvals: build bot (Jenkins): Verified Angel Pons: Looks good to me, approved
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>
---
M src/mainboard/apple/macbook21/acpi/ec.asl
1 file changed, 6 insertions(+), 231 deletions(-)

diff --git a/src/mainboard/apple/macbook21/acpi/ec.asl b/src/mainboard/apple/macbook21/acpi/ec.asl
index e8c7da8..dbbb2d6 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>

To view, visit change 33104. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I790d1353adea432e9697c5edf0dbb7841d308728
Gerrit-Change-Number: 33104
Gerrit-PatchSet: 10
Gerrit-Owner: Evgeny Zinoviev <me@ch1p.io>
Gerrit-Reviewer: Angel Pons <th3fanbus@gmail.com>
Gerrit-Reviewer: Evgeny Zinoviev <me@ch1p.io>
Gerrit-Reviewer: Felix Held <felix-coreboot@felixheld.de>
Gerrit-Reviewer: Patrick Georgi <pgeorgi@google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-CC: Paul Menzel <paulepanter@users.sourceforge.net>
Gerrit-MessageType: merged