summaryrefslogtreecommitdiff
path: root/include/lpc.h
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2012-07-12 14:26:20 -0700
committerRandall Spangler <rspangler@chromium.org>2012-07-12 18:22:24 -0700
commit7946a3eb3d982cd489c35f9cfb16f3e61a27d197 (patch)
treea064fe2ae64ea57a376192ff964355d67f1ebd5a /include/lpc.h
parent89049421a6f2681f517373338a0f601beae7c737 (diff)
downloadchrome-ec-7946a3eb3d982cd489c35f9cfb16f3e61a27d197.tar.gz
Simplify host event processing
Now both copies of the event state live in host_event_commands.c, and lpc / memmap just shadows the main copy. BUG=chrome-os-partner:11172 TEST=manual Boot system. should see events 0x2000, 0x80, 0x08 get set and then cleared. At U-boot prompt, type on keyboard. Should set event 0x1000 get set, but only on the first keypress (because U-boot doesn't consume that event). Then from EC console, hostevent clear 0x1000 -> see event 0x1000 clear hostevent clear 0x1000 -> no debug output (it's already clear) hostevent clearb 0x1000 -> see event copy B 0x1000 clear hostevent clearb 0x1000 -> no debug output (copy B is already clear) Change-Id: I855c035865649ba1490cd9027157d5bcdcc9895f Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/27321
Diffstat (limited to 'include/lpc.h')
-rw-r--r--include/lpc.h26
1 files changed, 15 insertions, 11 deletions
diff --git a/include/lpc.h b/include/lpc.h
index e9f5cad690..8c33b401b2 100644
--- a/include/lpc.h
+++ b/include/lpc.h
@@ -10,13 +10,16 @@
#include "common.h"
-/* Manually generate an IRQ to host.
+/*
+ * Manually generate an IRQ to host.
* Note that the irq_num == 0 would set the AH bit (Active High).
*/
void lpc_manual_irq(int irq_num);
-/* Return a pointer to the memory-mapped buffer. This buffer is writable at
- * any time, and the host can read it at any time. */
+/*
+ * Return a pointer to the memory-mapped buffer. This buffer is writable at
+ * any time, and the host can read it at any time.
+ */
uint8_t *lpc_get_memmap_range(void);
/* Return true if the TOH is still set */
@@ -40,6 +43,13 @@ int lpc_comx_get_char(void);
/* Put a character to the COMx LPC interface. */
void lpc_comx_put_char(int c);
+/*
+ * Low-level LPC interface for host events.
+ *
+ * For use by host_event_commands.c. Other modules should use the methods
+ * provided in host_command.h.
+ */
+
/* Types of host events */
enum lpc_host_event_type {
LPC_HOST_EVENT_SMI = 0,
@@ -47,14 +57,8 @@ enum lpc_host_event_type {
LPC_HOST_EVENT_WAKE,
};
-/* Set one or more SCI/SMI event bits. */
-void lpc_set_host_events(uint32_t mask);
-
-/* Clear one or more SCI/SMI event bits. Write 1 to a bit to clear it. */
-void lpc_clear_host_events(uint32_t mask);
-
-/* Return the raw SCI/SMI event state. */
-uint32_t lpc_get_host_events(void);
+/* Set the event state */
+void lpc_set_host_event_state(uint32_t mask);
/* Set the event mask for the specified event type. */
void lpc_set_host_event_mask(enum lpc_host_event_type type, uint32_t mask);