mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-08 10:39:08 +00:00
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>
This commit is contained in:
parent
2ab83f0d75
commit
df93d90aea
6 changed files with 599 additions and 0 deletions
|
@ -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
|
||||
|
@ -256,6 +258,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.
|
||||
*
|
||||
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue