platform/chrome: cros_ec: add common commands for EC codec

Add the following common commands:
- GET_CAPABILITIES
- GET_SHM_ADDR
- SET_SHM_ADDR

Acked-by: Benson Leung <bleung@chromium.org>
Signed-off-by: Tzung-Bi Shih <tzungbi@google.com>
Link: https://lore.kernel.org/r/20191017213539.04.Idc3c6e1cd94b70bf010249928d4a93c6c90495b7@changeid
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Tzung-Bi Shih 2019-10-17 22:00:09 +08:00 committed by Mark Brown
parent 2d39a1fc19
commit 104c6f8f7f
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0
2 changed files with 63 additions and 2 deletions

View File

@ -98,6 +98,7 @@
TRACE_SYMBOL(EC_CMD_SB_READ_BLOCK), \ TRACE_SYMBOL(EC_CMD_SB_READ_BLOCK), \
TRACE_SYMBOL(EC_CMD_SB_WRITE_BLOCK), \ TRACE_SYMBOL(EC_CMD_SB_WRITE_BLOCK), \
TRACE_SYMBOL(EC_CMD_BATTERY_VENDOR_PARAM), \ TRACE_SYMBOL(EC_CMD_BATTERY_VENDOR_PARAM), \
TRACE_SYMBOL(EC_CMD_EC_CODEC), \
TRACE_SYMBOL(EC_CMD_EC_CODEC_DMIC), \ TRACE_SYMBOL(EC_CMD_EC_CODEC_DMIC), \
TRACE_SYMBOL(EC_CMD_EC_CODEC_I2S_RX), \ TRACE_SYMBOL(EC_CMD_EC_CODEC_I2S_RX), \
TRACE_SYMBOL(EC_CMD_REBOOT_EC), \ TRACE_SYMBOL(EC_CMD_REBOOT_EC), \

View File

@ -4466,8 +4466,68 @@ enum mkbp_cec_event {
/*****************************************************************************/ /*****************************************************************************/
/* Commands for audio codec. */
#define EC_CMD_EC_CODEC 0x00BC
enum ec_codec_subcmd {
EC_CODEC_GET_CAPABILITIES = 0x0,
EC_CODEC_GET_SHM_ADDR = 0x1,
EC_CODEC_SET_SHM_ADDR = 0x2,
EC_CODEC_SUBCMD_COUNT,
};
enum ec_codec_cap {
EC_CODEC_CAP_LAST = 32,
};
enum ec_codec_shm_id {
EC_CODEC_SHM_ID_LAST,
};
enum ec_codec_shm_type {
EC_CODEC_SHM_TYPE_EC_RAM = 0x0,
EC_CODEC_SHM_TYPE_SYSTEM_RAM = 0x1,
};
struct __ec_align1 ec_param_ec_codec_get_shm_addr {
uint8_t shm_id;
uint8_t reserved[3];
};
struct __ec_align4 ec_param_ec_codec_set_shm_addr {
uint64_t phys_addr;
uint32_t len;
uint8_t shm_id;
uint8_t reserved[3];
};
struct __ec_align4 ec_param_ec_codec {
uint8_t cmd; /* enum ec_codec_subcmd */
uint8_t reserved[3];
union {
struct ec_param_ec_codec_get_shm_addr
get_shm_addr_param;
struct ec_param_ec_codec_set_shm_addr
set_shm_addr_param;
};
};
struct __ec_align4 ec_response_ec_codec_get_capabilities {
uint32_t capabilities;
};
struct __ec_align4 ec_response_ec_codec_get_shm_addr {
uint64_t phys_addr;
uint32_t len;
uint8_t type;
uint8_t reserved[3];
};
/*****************************************************************************/
/* Commands for DMIC on audio codec. */ /* Commands for DMIC on audio codec. */
#define EC_CMD_EC_CODEC_DMIC 0x00BC #define EC_CMD_EC_CODEC_DMIC 0x00BD
enum ec_codec_dmic_subcmd { enum ec_codec_dmic_subcmd {
EC_CODEC_DMIC_SET_GAIN = 0x0, EC_CODEC_DMIC_SET_GAIN = 0x0,
@ -4500,7 +4560,7 @@ struct __ec_align1 ec_response_ec_codec_dmic_get_gain {
/* Commands for I2S RX on audio codec. */ /* Commands for I2S RX on audio codec. */
#define EC_CMD_EC_CODEC_I2S_RX 0x00BD #define EC_CMD_EC_CODEC_I2S_RX 0x00BE
enum ec_codec_i2s_rx_subcmd { enum ec_codec_i2s_rx_subcmd {
EC_CODEC_I2S_RX_ENABLE = 0x0, EC_CODEC_I2S_RX_ENABLE = 0x0,