diff options
author | Sugar Zhang <sugar.zhang@rock-chips.com> | 2021-08-26 07:03:12 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2021-08-26 15:59:40 +0300 |
commit | 917f07719b133093680ed57dd7b5bc30b6a5b45d (patch) | |
tree | 2135809e4168b248db681f87ce47ab540a50f2a8 /sound/soc/rockchip/rockchip_i2s.c | |
parent | d5ceed036f7cde29bf17173e9a9c8bbde0a70389 (diff) | |
download | linux-917f07719b133093680ed57dd7b5bc30b6a5b45d.tar.xz |
ASoC: rockchip: i2s: Add support for frame inversion
This patch adds support for frame inversion.
Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
Link: https://lore.kernel.org/r/1629950594-14345-2-git-send-email-sugar.zhang@rock-chips.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/rockchip/rockchip_i2s.c')
-rw-r--r-- | sound/soc/rockchip/rockchip_i2s.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s.c index 7ee580642864..53e0b4a1c7d2 100644 --- a/sound/soc/rockchip/rockchip_i2s.c +++ b/sound/soc/rockchip/rockchip_i2s.c @@ -211,13 +211,27 @@ static int rockchip_i2s_set_fmt(struct snd_soc_dai *cpu_dai, regmap_update_bits(i2s->regmap, I2S_CKR, mask, val); - mask = I2S_CKR_CKP_MASK; + mask = I2S_CKR_CKP_MASK | I2S_CKR_TLP_MASK | I2S_CKR_RLP_MASK; switch (fmt & SND_SOC_DAIFMT_INV_MASK) { case SND_SOC_DAIFMT_NB_NF: - val = I2S_CKR_CKP_NEG; + val = I2S_CKR_CKP_NORMAL | + I2S_CKR_TLP_NORMAL | + I2S_CKR_RLP_NORMAL; + break; + case SND_SOC_DAIFMT_NB_IF: + val = I2S_CKR_CKP_NORMAL | + I2S_CKR_TLP_INVERTED | + I2S_CKR_RLP_INVERTED; break; case SND_SOC_DAIFMT_IB_NF: - val = I2S_CKR_CKP_POS; + val = I2S_CKR_CKP_INVERTED | + I2S_CKR_TLP_NORMAL | + I2S_CKR_RLP_NORMAL; + break; + case SND_SOC_DAIFMT_IB_IF: + val = I2S_CKR_CKP_INVERTED | + I2S_CKR_TLP_INVERTED | + I2S_CKR_RLP_INVERTED; break; default: ret = -EINVAL; |