ASoC: sirf: usp: Add bitclock inversion support
Signed-off-by: Rongjun Ying <rongjun.ying@csr.com> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
Родитель
7d1311b93e
Коммит
0d985b1c76
|
@ -100,6 +100,16 @@ static int sirf_usp_pcm_set_dai_fmt(struct snd_soc_dai *dai,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
|
||||
case SND_SOC_DAIFMT_NB_NF:
|
||||
break;
|
||||
case SND_SOC_DAIFMT_IB_NF:
|
||||
usp->daifmt_format |= (fmt & SND_SOC_DAIFMT_INV_MASK);
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -177,7 +187,7 @@ static int sirf_usp_pcm_hw_params(struct snd_pcm_substream *substream,
|
|||
|
||||
shifter_len = data_len;
|
||||
|
||||
switch (usp->daifmt_format) {
|
||||
switch (usp->daifmt_format & SND_SOC_DAIFMT_FORMAT_MASK) {
|
||||
case SND_SOC_DAIFMT_I2S:
|
||||
regmap_update_bits(usp->regmap, USP_RX_FRAME_CTRL,
|
||||
USP_I2S_SYNC_CHG, USP_I2S_SYNC_CHG);
|
||||
|
@ -193,6 +203,18 @@ static int sirf_usp_pcm_hw_params(struct snd_pcm_substream *substream,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
switch (usp->daifmt_format & SND_SOC_DAIFMT_INV_MASK) {
|
||||
case SND_SOC_DAIFMT_NB_NF:
|
||||
break;
|
||||
case SND_SOC_DAIFMT_IB_NF:
|
||||
regmap_update_bits(usp->regmap, USP_MODE1,
|
||||
USP_RXD_ACT_EDGE_FALLING | USP_TXD_ACT_EDGE_FALLING,
|
||||
USP_RXD_ACT_EDGE_FALLING);
|
||||
break;
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
|
||||
regmap_update_bits(usp->regmap, USP_TX_FRAME_CTRL,
|
||||
USP_TXC_DATA_LEN_MASK | USP_TXC_FRAME_LEN_MASK
|
||||
|
|
Загрузка…
Ссылка в новой задаче