asoc: codecs: Add WSA884X set config func

Add set config function to validate and
set battery stack mode, rload and system gain

Change-Id: I075bf3cde6a9671a8d93f32aec43b941ea86f2ea
Signed-off-by: Shazmaan Ali <quic_shazmaan@quicinc.com>
This commit is contained in:
Shazmaan Ali
2021-12-15 18:18:57 -08:00
committed by Gerrit - the friendly Code Review server
父節點 152f664978
當前提交 da66f4540f
共有 2 個文件被更改,包括 25 次插入2 次删除

查看文件

@@ -1076,6 +1076,23 @@ static int wsa884x_get_compander(struct snd_kcontrol *kcontrol,
return 0;
}
/*
* wsa884x_validate_dt_configuration_params - returns 1 or 0
* Return: 0 Valid configuration, 1 Invalid configuration
*/
static bool wsa884x_validate_dt_configuration_params(u8 irload, u8 ibat_cfg,
u8 isystem_gain)
{
bool is_invalid_flag = true;
if ((WSA_4_OHMS <= irload && irload < WSA_MAX_OHMS) &&
(G_21_DB <= isystem_gain && isystem_gain < G_MAX_DB) &&
(EXT_ABOVE_3S <= ibat_cfg && ibat_cfg < CONFIG_MAX))
is_invalid_flag = false;
return is_invalid_flag;
}
static int wsa884x_set_compander(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
@@ -2175,7 +2192,14 @@ static int wsa884x_swr_probe(struct swr_device *pdev)
WSA884X_VPHX_SYS_EN_STATUS);
dev_dbg(component->dev,
"%s: Bat_cfg: 0x%x rload: 0x%x, sys_gain: 0x%x %x\n", __func__,
wsa884x->bat_cfg, wsa884x->rload, wsa884x->bat_cfg);
wsa884x->bat_cfg, wsa884x->rload, wsa884x->system_gain);
ret = wsa884x_validate_dt_configuration_params(wsa884x->rload,
wsa884x->bat_cfg, wsa884x->system_gain);
if (ret) {
dev_err(&pdev->dev, "%s: invalid dt parameter\n", __func__);
ret = -EINVAL;
goto err_mem;
}
wsa884x_set_gain_parameters(component);
wsa884x_set_pbr_parameters(component);
/* Must write WO registers in a single write */