summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBill Richardson <wfrichar@chromium.org>2013-12-09 15:54:12 -0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2013-12-12 18:21:56 +0000
commite6588c803f93c421970eb7b7220e05074922b096 (patch)
tree4dafad5857709a37b6b26851e6b2de1b935ffe76 /include
parent878f29330b8855a31ffcf6222ef3db2ed2451307 (diff)
downloadchrome-ec-e6588c803f93c421970eb7b7220e05074922b096.tar.gz
Move ACPI stuff out of chip/lm4 and into common
The port 62/66 ACPI commands were implemented in chip/lm4/lpc.c. They should be handled in common instead of being tied to a particular EC. BUG=chrome-os-partner:23774 BRANCH=none TEST=manual read EC_ACPI_MEM_VERSION # iotools io_write8 0x66 0x80; iotools io_write8 0x62 0; iotools io_read8 0x62 0x01 write & read EC_ACPI_MEM_TEST # iotools io_write8 0x66 0x81; iotools io_write8 0x62 1; iotools io_write8 0x62 0xa5 # iotools io_write8 0x66 0x80; iotools io_write8 0x62 1; iotools io_read8 0x62 0xa5 # iotools io_write8 0x66 0x80; iotools io_write8 0x62 2; iotools io_read8 0x62 0x5a # iotools io_write8 0x66 0x81; iotools io_write8 0x62 1; iotools io_write8 0x62 0xbb # iotools io_write8 0x66 0x80; iotools io_write8 0x62 1; iotools io_read8 0x62 0xbb # iotools io_write8 0x66 0x80; iotools io_write8 0x62 2; iotools io_read8 0x62 0x44 read & write EC_ACPI_MEM_KEYBOARD_BACKLIGHT # iotools io_write8 0x66 0x81; iotools io_write8 0x62 3; iotools io_write8 0x62 100 (keyboard lights up) # iotools io_write8 0x66 0x80; iotools io_write8 0x62 3; iotools io_read8 0x62 0x64 # iotools io_write8 0x66 0x81; iotools io_write8 0x62 3; iotools io_write8 0x62 50 (keyboard dimmer) # iotools io_write8 0x66 0x80; iotools io_write8 0x62 3; iotools io_read8 0x62 0x32 # iotools io_write8 0x66 0x81; iotools io_write8 0x62 3; iotools io_write8 0x62 0 (keyboard goes dark) # iotools io_write8 0x66 0x80; iotools io_write8 0x62 3; iotools io_read8 0x62 0x00 read & write EC_ACPI_MEM_FAN_DUTY # iotools io_write8 0x66 0x81; iotools io_write8 0x62 4; iotools io_write8 0x62 100 (fan on full) # iotools io_write8 0x66 0x80; iotools io_write8 0x62 4; iotools io_read8 0x62 0x64 # iotools io_write8 0x66 0x81; iotools io_write8 0x62 4; iotools io_write8 0x62 50 (fan on half speed) # iotools io_write8 0x66 0x80; iotools io_write8 0x62 4; iotools io_read8 0x62 0x32 # iotools io_write8 0x66 0x81; iotools io_write8 0x62 4; iotools io_write8 0x62 0 (fan off) # iotools io_write8 0x66 0x80; iotools io_write8 0x62 4; iotools io_read8 0x62 0x00 # iotools io_write8 0x66 0x81; iotools io_write8 0x62 4; iotools io_write8 0x62 0xff (fan back to EC control) # iotools io_write8 0x66 0x80; iotools io_write8 0x62 4; iotools io_read8 0x62 0xff test EC_CMD_ACPI_QUERY_EVENT # iotools io_write8 0x66 0x84; iotools io_read8 0x62 0x00 On EC console: > hostevent set 0x0f000000 # ectool eventget Current host events: 0x0f000000 # iotools io_write8 0x66 0x84; iotools io_read8 0x62 0x19 # iotools io_write8 0x66 0x84; iotools io_read8 0x62 0x1a # iotools io_write8 0x66 0x84; iotools io_read8 0x62 0x1b # iotools io_write8 0x66 0x84; iotools io_read8 0x62 0x1c # iotools io_write8 0x66 0x84; iotools io_read8 0x62 0x00 # ectool eventget Current host events: 0x00000000 Change-Id: I011a5a2051171ec1d37e55ce03e1ce74b93a7e14 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/179692
Diffstat (limited to 'include')
-rw-r--r--include/acpi.h23
-rw-r--r--include/lpc.h5
2 files changed, 28 insertions, 0 deletions
diff --git a/include/acpi.h b/include/acpi.h
new file mode 100644
index 0000000000..0ffc8d9f10
--- /dev/null
+++ b/include/acpi.h
@@ -0,0 +1,23 @@
+/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/* ACPI EC interface block. */
+
+#ifndef __CROS_EC_ACPI_H
+#define __CROS_EC_ACPI_H
+
+#include <stdint.h>
+
+/**
+ * Handle AP write to EC via the ACPI I/O port.
+ *
+ * @param is_cmd Is write command (is_cmd=1) or data (is_cmd=0)
+ * @param value Value written to cmd or data register by AP
+ * @param result Value for AP to read from data port, if any
+ * @return True if *result was updated by this call
+ */
+int acpi_ap_to_ec(int is_cmd, uint8_t value, uint8_t *result);
+
+#endif /* __CROS_EC_ACPI_H */
diff --git a/include/lpc.h b/include/lpc.h
index 9ecef5027b..0ecaa6b822 100644
--- a/include/lpc.h
+++ b/include/lpc.h
@@ -79,6 +79,11 @@ enum lpc_host_event_type {
void lpc_set_host_event_state(uint32_t mask);
/**
+ * Clear and return the lowest host event.
+ */
+int lpc_query_host_event_state(void);
+
+/**
* Set the event mask for the specified event type.
*
* @param type Event type