diff options
author | Randall Spangler <rspangler@chromium.org> | 2012-07-12 14:26:20 -0700 |
---|---|---|
committer | Randall Spangler <rspangler@chromium.org> | 2012-07-12 18:22:24 -0700 |
commit | 7946a3eb3d982cd489c35f9cfb16f3e61a27d197 (patch) | |
tree | a064fe2ae64ea57a376192ff964355d67f1ebd5a /include/lpc.h | |
parent | 89049421a6f2681f517373338a0f601beae7c737 (diff) | |
download | chrome-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.h | 26 |
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); |