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>
This commit is contained in:
Duncan Laurie 2015-08-13 12:52:08 -07:00 committed by Aaron Durbin
parent 7f3f285bf1
commit 699c788837
2 changed files with 7 additions and 0 deletions

View File

@ -53,6 +53,7 @@ int google_chromeec_kbbacklight(int percent);
void google_chromeec_post(u8 postcode); void google_chromeec_post(u8 postcode);
void google_chromeec_log_events(u32 mask); void google_chromeec_log_events(u32 mask);
int google_chromeec_vbnv_context(int is_read, uint8_t *data, int len); 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 */ /* For MEC, access ranges 0x800 thru 0x9ff using EMI interface instead of LPC */
#define MEC_EMI_RANGE_START EC_HOST_CMD_REGION0 #define MEC_EMI_RANGE_START EC_HOST_CMD_REGION0

View File

@ -364,6 +364,12 @@ static int google_chromeec_command_v1(struct chromeec_command *cec_command)
return 0; 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__ #ifdef __PRE_RAM__
int google_chromeec_command(struct chromeec_command *cec_command) int google_chromeec_command(struct chromeec_command *cec_command)