summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2015-08-13 12:52:08 -0700
committerAaron Durbin <adurbin@chromium.org>2015-08-27 14:18:38 +0000
commit699c788837cd7cbfe1627abbbb909f63e390690a (patch)
tree5f2ebe245e0be8b9c10689669446de2549a9ddcd
parent7f3f285bf181cce7a708d1957845a7e2b413f098 (diff)
downloadcoreboot-699c788837cd7cbfe1627abbbb909f63e390690a.tar.xz
chromeec: Add helper function to read EC switch state
Add a helper function to read the EC switch state on LPC based ECs instead of having each board need to understand and use the specific EC LPC IO method that is required. BUG=chrome-os-partner:43515 BRANCH=none TEST=build and boot on glados Original-Change-Id: Id046c7ddf3a1689d4bf2241be5da31184c32c0e1 Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/293514 Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Change-Id: Id11009e0711b13823e4f76dc9db9c9c20abf4809 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: http://review.coreboot.org/11280 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
-rw-r--r--src/ec/google/chromeec/ec.h1
-rw-r--r--src/ec/google/chromeec/ec_lpc.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/src/ec/google/chromeec/ec.h b/src/ec/google/chromeec/ec.h
index 8dfefd41cf..3bc62c9427 100644
--- a/src/ec/google/chromeec/ec.h
+++ b/src/ec/google/chromeec/ec.h
@@ -53,6 +53,7 @@ int google_chromeec_kbbacklight(int percent);
void google_chromeec_post(u8 postcode);
void google_chromeec_log_events(u32 mask);
int google_chromeec_vbnv_context(int is_read, uint8_t *data, int len);
+uint8_t google_chromeec_get_switches(void);
/* For MEC, access ranges 0x800 thru 0x9ff using EMI interface instead of LPC */
#define MEC_EMI_RANGE_START EC_HOST_CMD_REGION0
diff --git a/src/ec/google/chromeec/ec_lpc.c b/src/ec/google/chromeec/ec_lpc.c
index 9d1121bc6f..003a5f259e 100644
--- a/src/ec/google/chromeec/ec_lpc.c
+++ b/src/ec/google/chromeec/ec_lpc.c
@@ -364,6 +364,12 @@ static int google_chromeec_command_v1(struct chromeec_command *cec_command)
return 0;
}
+/* Return the byte of EC switch states */
+uint8_t google_chromeec_get_switches(void)
+{
+ return read_byte(EC_LPC_ADDR_MEMMAP + EC_MEMMAP_SWITCHES);
+}
+
#ifdef __PRE_RAM__
int google_chromeec_command(struct chromeec_command *cec_command)