Commit a8205320 authored by Daniel Ribeiro's avatar Daniel Ribeiro Committed by Mark Brown
Browse files

ASoC: pxa-ssp.c fix clock/frame invert



SCMODE(0): Data Driven (Falling), Data Sampled (Rising), Idle State (Low)
SCMODE(1): Data Driven (Rising), Data Sampled (Falling), Idle State (Low)
SCMODE(2): Data Driven (Rising), Data Sampled (Falling), Idle State (High)
SCMODE(3): Data Driven (Falling), Data Sampled (Rising), Idle State (High)

SCMODE(3) does not invert the clock polarity compared to the default SCMODE(0).

This patch also adds all possible NF/IF, NB/IB combinations to the DSP_A and
DSP_B modes.

Signed-off-by: default avatarDaniel Ribeiro <drwyrm@gmail.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 6bbcb459
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -568,7 +568,10 @@ static int pxa_ssp_set_dai_fmt(struct snd_soc_dai *cpu_dai,
		case SND_SOC_DAIFMT_NB_IF:
			break;
		case SND_SOC_DAIFMT_IB_IF:
			sspsp |= SSPSP_SCMODE(3);
			sspsp |= SSPSP_SCMODE(2);
			break;
		case SND_SOC_DAIFMT_IB_NF:
			sspsp |= SSPSP_SCMODE(2) | SSPSP_SFRMP;
			break;
		default:
			return -EINVAL;
@@ -585,7 +588,13 @@ static int pxa_ssp_set_dai_fmt(struct snd_soc_dai *cpu_dai,
		case SND_SOC_DAIFMT_NB_NF:
			sspsp |= SSPSP_SFRMP;
			break;
		case SND_SOC_DAIFMT_NB_IF:
			break;
		case SND_SOC_DAIFMT_IB_IF:
			sspsp |= SSPSP_SCMODE(2);
			break;
		case SND_SOC_DAIFMT_IB_NF:
			sspsp |= SSPSP_SCMODE(2) | SSPSP_SFRMP;
			break;
		default:
			return -EINVAL;