summaryrefslogtreecommitdiff
path: root/include/lpc.h
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2015-03-23 18:27:22 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-03-25 20:09:52 +0000
commit6ee7b1e34eecd585074b4aae0347ed12f632ead0 (patch)
treeace73f958495a83b836505941318325fa71c71e7 /include/lpc.h
parent0f18989ef58a77800c1b393cf8223455f793d543 (diff)
downloadchrome-ec-6ee7b1e34eecd585074b4aae0347ed12f632ead0.tar.gz
ACPI: Support accessing memmap data over ACPI CMD / DATA portsstabilize-6915.B
Some platforms are unable to access the 900h-9ffh region over LPC and must instead access memmap data through the ACPI CMD / DATA ports. To avoid racing with data updates, disallow changes to multi-byte memmap data while in burst mode. Linux currently enables burst mode when accessing multi-byte data and disables it immediately afterward, though the ACPI spec defines burst mode in a more general way. BUG=chrome-os-partner:38224 TEST=Manual on Samus. Undefine LPC_MEMMAP and modify asl to move memmap data to ERAM at offset 0x20. Verify system boots cleanly and battery status is updated immediately on plug / unplug. BRANCH=None Change-Id: Ib848bdb491fdfece96ad0cee7a44ba85b4a1a50b Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/262072 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Diffstat (limited to 'include/lpc.h')
-rw-r--r--include/lpc.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/lpc.h b/include/lpc.h
index c16b1bc5d4..c38f711bda 100644
--- a/include/lpc.h
+++ b/include/lpc.h
@@ -97,6 +97,16 @@ void lpc_set_host_event_mask(enum lpc_host_event_type type, uint32_t mask);
uint32_t lpc_get_host_event_mask(enum lpc_host_event_type type);
/**
+ * Set the EC_LPC_STATUS_* mask for the specified status.
+ */
+void lpc_set_acpi_status_mask(uint8_t mask);
+
+/**
+ * Clear the EC_LPC_STATUS_* mask for the specified status.
+ */
+void lpc_clear_acpi_status_mask(uint8_t mask);
+
+/**
* Return the state of platform reset.
*
* @return non-zero if PLTRST# is asserted (low); 0 if not asserted (high).