mfd: cros_ec: Update I2S API
Improve I2S API. Rename ec_response_codec_gain into ec_codec_i2s_gain, update caller accordlingly. Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Acked-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Acked-by: Benson Leung <bleung@chromium.org> Reviewed-by: Fabien Lahoudere <fabien.lahoudere@collabora.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
2f2e6d1486
commit
3aa6be30da
|
@ -4471,6 +4471,7 @@ enum mkbp_cec_event {
|
|||
/* Commands for I2S recording on audio codec. */
|
||||
|
||||
#define EC_CMD_CODEC_I2S 0x00BC
|
||||
#define EC_WOV_I2S_SAMPLE_RATE 48000
|
||||
|
||||
enum ec_codec_i2s_subcmd {
|
||||
EC_CODEC_SET_SAMPLE_DEPTH = 0x0,
|
||||
|
@ -4480,6 +4481,7 @@ enum ec_codec_i2s_subcmd {
|
|||
EC_CODEC_I2S_SET_CONFIG = 0x4,
|
||||
EC_CODEC_I2S_SET_TDM_CONFIG = 0x5,
|
||||
EC_CODEC_I2S_SET_BCLK = 0x6,
|
||||
EC_CODEC_I2S_SUBCMD_COUNT = 0x7,
|
||||
};
|
||||
|
||||
enum ec_sample_depth_value {
|
||||
|
@ -4496,6 +4498,21 @@ enum ec_i2s_config {
|
|||
EC_DAI_FMT_PCM_TDM = 5,
|
||||
};
|
||||
|
||||
/*
|
||||
* For subcommand EC_CODEC_GET_GAIN.
|
||||
*/
|
||||
struct __ec_align1 ec_codec_i2s_gain {
|
||||
uint8_t left;
|
||||
uint8_t right;
|
||||
};
|
||||
|
||||
struct __ec_todo_unpacked ec_param_codec_i2s_tdm {
|
||||
int16_t ch0_delay; /* 0 to 496 */
|
||||
int16_t ch1_delay; /* -1 to 496 */
|
||||
uint8_t adjacent_to_ch0;
|
||||
uint8_t adjacent_to_ch1;
|
||||
};
|
||||
|
||||
struct __ec_todo_packed ec_param_codec_i2s {
|
||||
/* enum ec_codec_i2s_subcmd */
|
||||
uint8_t cmd;
|
||||
|
@ -4510,10 +4527,7 @@ struct __ec_todo_packed ec_param_codec_i2s {
|
|||
* EC_CODEC_SET_GAIN
|
||||
* Value should be 0~43 for both channels.
|
||||
*/
|
||||
struct __ec_align1 ec_param_codec_i2s_set_gain {
|
||||
uint8_t left;
|
||||
uint8_t right;
|
||||
} gain;
|
||||
struct ec_codec_i2s_gain gain;
|
||||
|
||||
/*
|
||||
* EC_CODEC_I2S_ENABLE
|
||||
|
@ -4522,7 +4536,7 @@ struct __ec_todo_packed ec_param_codec_i2s {
|
|||
uint8_t i2s_enable;
|
||||
|
||||
/*
|
||||
* EC_CODEC_I2S_SET_COFNIG
|
||||
* EC_CODEC_I2S_SET_CONFIG
|
||||
* Value should be one of ec_i2s_config.
|
||||
*/
|
||||
uint8_t i2s_config;
|
||||
|
@ -4531,18 +4545,7 @@ struct __ec_todo_packed ec_param_codec_i2s {
|
|||
* EC_CODEC_I2S_SET_TDM_CONFIG
|
||||
* Value should be one of ec_i2s_config.
|
||||
*/
|
||||
struct __ec_todo_unpacked ec_param_codec_i2s_tdm {
|
||||
/*
|
||||
* 0 to 496
|
||||
*/
|
||||
int16_t ch0_delay;
|
||||
/*
|
||||
* -1 to 496
|
||||
*/
|
||||
int16_t ch1_delay;
|
||||
uint8_t adjacent_to_ch0;
|
||||
uint8_t adjacent_to_ch1;
|
||||
} tdm_param;
|
||||
struct ec_param_codec_i2s_tdm tdm_param;
|
||||
|
||||
/*
|
||||
* EC_CODEC_I2S_SET_BCLK
|
||||
|
@ -4551,13 +4554,6 @@ struct __ec_todo_packed ec_param_codec_i2s {
|
|||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* For subcommand EC_CODEC_GET_GAIN.
|
||||
*/
|
||||
struct ec_response_codec_gain {
|
||||
uint8_t left;
|
||||
uint8_t right;
|
||||
} __ec_align1;
|
||||
|
||||
/*****************************************************************************/
|
||||
/* System commands */
|
||||
|
|
|
@ -38,21 +38,21 @@ static const DECLARE_TLV_DB_SCALE(ec_mic_gain_tlv, 0, 100, 0);
|
|||
|
||||
static int ec_command_get_gain(struct snd_soc_component *component,
|
||||
struct ec_param_codec_i2s *param,
|
||||
struct ec_response_codec_gain *resp)
|
||||
struct ec_codec_i2s_gain *resp)
|
||||
{
|
||||
struct cros_ec_codec_data *codec_data =
|
||||
snd_soc_component_get_drvdata(component);
|
||||
struct cros_ec_device *ec_device = codec_data->ec_device;
|
||||
u8 buffer[sizeof(struct cros_ec_command) +
|
||||
max(sizeof(struct ec_param_codec_i2s),
|
||||
sizeof(struct ec_response_codec_gain))];
|
||||
sizeof(struct ec_codec_i2s_gain))];
|
||||
struct cros_ec_command *msg = (struct cros_ec_command *)&buffer;
|
||||
int ret;
|
||||
|
||||
msg->version = 0;
|
||||
msg->command = EC_CMD_CODEC_I2S;
|
||||
msg->outsize = sizeof(struct ec_param_codec_i2s);
|
||||
msg->insize = sizeof(struct ec_response_codec_gain);
|
||||
msg->insize = sizeof(struct ec_codec_i2s_gain);
|
||||
|
||||
memcpy(msg->data, param, msg->outsize);
|
||||
|
||||
|
@ -226,7 +226,7 @@ static int get_ec_mic_gain(struct snd_soc_component *component,
|
|||
u8 *left, u8 *right)
|
||||
{
|
||||
struct ec_param_codec_i2s param;
|
||||
struct ec_response_codec_gain resp;
|
||||
struct ec_codec_i2s_gain resp;
|
||||
int ret;
|
||||
|
||||
param.cmd = EC_CODEC_GET_GAIN;
|
||||
|
|
Loading…
Reference in New Issue