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:
parent
2d39a1fc19
commit
104c6f8f7f
@ -98,6 +98,7 @@
|
||||
TRACE_SYMBOL(EC_CMD_SB_READ_BLOCK), \
|
||||
TRACE_SYMBOL(EC_CMD_SB_WRITE_BLOCK), \
|
||||
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_I2S_RX), \
|
||||
TRACE_SYMBOL(EC_CMD_REBOOT_EC), \
|
||||
|
@ -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. */
|
||||
#define EC_CMD_EC_CODEC_DMIC 0x00BC
|
||||
#define EC_CMD_EC_CODEC_DMIC 0x00BD
|
||||
|
||||
enum ec_codec_dmic_subcmd {
|
||||
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. */
|
||||
|
||||
#define EC_CMD_EC_CODEC_I2S_RX 0x00BD
|
||||
#define EC_CMD_EC_CODEC_I2S_RX 0x00BE
|
||||
|
||||
enum ec_codec_i2s_rx_subcmd {
|
||||
EC_CODEC_I2S_RX_ENABLE = 0x0,
|
||||
|
Loading…
Reference in New Issue
Block a user