Duncan Laurie merged this change.

View Change

Approvals: build bot (Jenkins): Verified Furquan Shaikh: Looks good to me, approved
ec/google/wilco: Add ACPI device for event interface

Add a separate ACPI device for the Wilco EC event interface so that the
OS drivers can bind to it separately. Since the event handling is all
done with ACPI and not mailbox calls this will be implemented as a
standard acpi_driver in the kernel.

BUG=b:119046283
TEST=veriy device exists in DSDT

Change-Id: I5259a926fb6d5faea835bcdefa12f0184c5adf4a
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Reviewed-on: https://review.coreboot.org/c/31204
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
---
M src/ec/google/wilco/acpi/ec_dev.asl
M src/ec/google/wilco/acpi/event.asl
2 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/src/ec/google/wilco/acpi/ec_dev.asl b/src/ec/google/wilco/acpi/ec_dev.asl
index a3e8c48..634e243 100644
--- a/src/ec/google/wilco/acpi/ec_dev.asl
+++ b/src/ec/google/wilco/acpi/ec_dev.asl
@@ -62,3 +62,31 @@
EndDependentFn ()
})
}
+
+Device (WEVT)
+{
+ Name (_HID, "GOOG000D")
+ Name (_UID, 1)
+ Name (_DDN, "Wilco EC Event Interface")
+
+ Method (_STA)
+ {
+ Return (0xB)
+ }
+
+ /* Get Event Buffer */
+ Method (QSET, 0, Serialized)
+ {
+ /* Get count of event bytes */
+ Local0 = R (QSEC)
+ Name (QBUF, Buffer (Local0) {})
+
+ /* Fill QS event buffer with Local0 bytes */
+ For (Local1 = 0, Local1 < Local0, Local1++) {
+ QBUF[Local1] = R (QSEB)
+ }
+
+ Printf ("QS = %o", QBUF)
+ Return (QBUF)
+ }
+}
diff --git a/src/ec/google/wilco/acpi/event.asl b/src/ec/google/wilco/acpi/event.asl
index 4a3394f..d818d22 100644
--- a/src/ec/google/wilco/acpi/event.asl
+++ b/src/ec/google/wilco/acpi/event.asl
@@ -79,7 +79,7 @@

If (EBIT (E2QS, Arg0)) {
Printf ("QS EVENT")
- Notify (^WLCO, 0x90)
+ Notify (^WEVT, 0x90)
}
}

@@ -125,19 +125,3 @@
ECQ4 (Local0)
}
}
-
-/* Get Event Buffer */
-Method (QSET, 0, Serialized)
-{
- /* Get count of event bytes */
- Local0 = R (QSEC)
- Name (QBUF, Buffer (Local0) {})
-
- /* Fill QS event buffer with Local0 bytes */
- For (Local1 = 0, Local1 < Local0, Local1++) {
- QBUF[Local1] = R (QSEB)
- }
-
- Printf ("QS = %o", QBUF)
- Return (QBUF)
-}

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

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I5259a926fb6d5faea835bcdefa12f0184c5adf4a
Gerrit-Change-Number: 31204
Gerrit-PatchSet: 5
Gerrit-Owner: Duncan Laurie <dlaurie@chromium.org>
Gerrit-Reviewer: Duncan Laurie <dlaurie@chromium.org>
Gerrit-Reviewer: Furquan Shaikh <furquan@google.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-CC: Paul Menzel <paulepanter@users.sourceforge.net>
Gerrit-MessageType: merged