ASoC: codecs: tas5720: add TAS5722 TDM slot width setting support
Unlike the TAS5720, the TAS5722 can be configured to utilize 16-bit wide slots in TDM mode. This can help easing audio clocking/frequency requirements. Signed-off-by: Andreas Dannenberg <dannenberg@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:

committed by
Mark Brown

parent
ec94c177bf
commit
db658f40ca
@@ -152,6 +152,7 @@ static int tas5720_set_dai_tdm_slot(struct snd_soc_dai *dai,
|
|||||||
int slots, int slot_width)
|
int slots, int slot_width)
|
||||||
{
|
{
|
||||||
struct snd_soc_component *component = dai->component;
|
struct snd_soc_component *component = dai->component;
|
||||||
|
struct tas5720_data *tas5720 = snd_soc_component_get_drvdata(component);
|
||||||
unsigned int first_slot;
|
unsigned int first_slot;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@@ -185,6 +186,20 @@ static int tas5720_set_dai_tdm_slot(struct snd_soc_dai *dai,
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto error_snd_soc_component_update_bits;
|
goto error_snd_soc_component_update_bits;
|
||||||
|
|
||||||
|
/* Configure TDM slot width. This is only applicable to TAS5722. */
|
||||||
|
switch (tas5720->devtype) {
|
||||||
|
case TAS5722:
|
||||||
|
ret = snd_soc_component_update_bits(component, TAS5722_DIGITAL_CTRL2_REG,
|
||||||
|
TAS5722_TDM_SLOT_16B,
|
||||||
|
slot_width == 16 ?
|
||||||
|
TAS5722_TDM_SLOT_16B : 0);
|
||||||
|
if (ret < 0)
|
||||||
|
goto error_snd_soc_component_update_bits;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
error_snd_soc_component_update_bits:
|
error_snd_soc_component_update_bits:
|
||||||
|
Reference in New Issue
Block a user