diff options
author | Simon Glass <sjg@chromium.org> | 2014-02-27 13:26:12 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2014-03-17 20:05:47 -0600 |
commit | df93d90aea85deff0b19ece43ba6f379c7c4d9cc (patch) | |
tree | b34d47fe922a6479a034ce25ba801c55dcd01aad /include/cros_ec.h | |
parent | 2ab83f0d7522e34f6a67e6ed80f7ba03aa7c8dd6 (diff) | |
download | u-boot-imx-df93d90aea85deff0b19ece43ba6f379c7c4d9cc.zip u-boot-imx-df93d90aea85deff0b19ece43ba6f379c7c4d9cc.tar.gz u-boot-imx-df93d90aea85deff0b19ece43ba6f379c7c4d9cc.tar.bz2 |
cros_ec: sandbox: Add Chrome OS EC emulation
Add a simple emulation of the Chrome OS EC for sandbox, so that it can
perform various EC tasks such as keyboard handling.
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/cros_ec.h')
-rw-r--r-- | include/cros_ec.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/include/cros_ec.h b/include/cros_ec.h index 84f9104..1b7c620 100644 --- a/include/cros_ec.h +++ b/include/cros_ec.h @@ -20,6 +20,7 @@ enum cros_ec_interface_t { CROS_EC_IF_SPI, CROS_EC_IF_I2C, CROS_EC_IF_LPC, /* Intel Low Pin Count interface */ + CROS_EC_IF_SANDBOX, }; /* Our configuration information */ @@ -237,6 +238,7 @@ struct cros_ec_dev *board_get_cros_ec_dev(void); int cros_ec_i2c_init(struct cros_ec_dev *dev, const void *blob); int cros_ec_spi_init(struct cros_ec_dev *dev, const void *blob); int cros_ec_lpc_init(struct cros_ec_dev *dev, const void *blob); +int cros_ec_sandbox_init(struct cros_ec_dev *dev, const void *blob); /** * Read information from the fdt for the i2c cros_ec interface @@ -257,6 +259,15 @@ int cros_ec_i2c_decode_fdt(struct cros_ec_dev *dev, const void *blob); int cros_ec_spi_decode_fdt(struct cros_ec_dev *dev, const void *blob); /** + * Read information from the fdt for the sandbox cros_ec interface + * + * @param dev CROS-EC device + * @param blob Device tree blob + * @return 0 if ok, -1 if we failed to read all required information + */ +int cros_ec_sandbox_decode_fdt(struct cros_ec_dev *dev, const void *blob); + +/** * Check whether the LPC interface supports new-style commands. * * LPC has its own way of doing this, which involves checking LPC values @@ -323,6 +334,8 @@ int cros_ec_spi_command(struct cros_ec_dev *dev, uint8_t cmd, int cmd_version, * @return number of bytes in response packet, or <0 on error */ int cros_ec_spi_packet(struct cros_ec_dev *dev, int out_bytes, int in_bytes); +int cros_ec_sandbox_packet(struct cros_ec_dev *dev, int out_bytes, + int in_bytes); /** * Dump a block of data for a command. @@ -480,4 +493,12 @@ int cros_ec_get_error(void); */ int cros_ec_decode_ec_flash(const void *blob, struct fdt_cros_ec *config); +/** + * Check the current keyboard state, in case recovery mode is requested. + * This function is for sandbox only. + * + * @param ec CROS-EC device + */ +void cros_ec_check_keyboard(struct cros_ec_dev *dev); + #endif |