Skip to content

Commit 5374e9c

Browse files
author
Sugar Zhang
committed
ASoC: rockchip: i2s-tdm: Add support for frame inversion
Change-Id: I4d6d626018b1555f65684cc6a3c16045894bd868 Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
1 parent 4e3b24b commit 5374e9c

2 files changed

Lines changed: 21 additions & 5 deletions

File tree

sound/soc/rockchip/rockchip_i2s_tdm.c

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -469,13 +469,27 @@ static int rockchip_i2s_tdm_set_fmt(struct snd_soc_dai *cpu_dai,
469469

470470
regmap_update_bits(i2s_tdm->regmap, I2S_CKR, mask, val);
471471

472-
mask = I2S_CKR_CKP_MASK;
472+
mask = I2S_CKR_CKP_MASK | I2S_CKR_TLP_MASK | I2S_CKR_RLP_MASK;
473473
switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
474474
case SND_SOC_DAIFMT_NB_NF:
475-
val = I2S_CKR_CKP_NORMAL;
475+
val = I2S_CKR_CKP_NORMAL |
476+
I2S_CKR_TLP_NORMAL |
477+
I2S_CKR_RLP_NORMAL;
478+
break;
479+
case SND_SOC_DAIFMT_NB_IF:
480+
val = I2S_CKR_CKP_NORMAL |
481+
I2S_CKR_TLP_INVERTED |
482+
I2S_CKR_RLP_INVERTED;
476483
break;
477484
case SND_SOC_DAIFMT_IB_NF:
478-
val = I2S_CKR_CKP_INVERTED;
485+
val = I2S_CKR_CKP_INVERTED |
486+
I2S_CKR_TLP_NORMAL |
487+
I2S_CKR_RLP_NORMAL;
488+
break;
489+
case SND_SOC_DAIFMT_IB_IF:
490+
val = I2S_CKR_CKP_INVERTED |
491+
I2S_CKR_TLP_INVERTED |
492+
I2S_CKR_RLP_INVERTED;
479493
break;
480494
default:
481495
ret = -EINVAL;

sound/soc/rockchip/rockchip_i2s_tdm.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,12 @@
106106
#define I2S_CKR_CKP_MASK (1 << I2S_CKR_CKP_SHIFT)
107107
#define I2S_CKR_RLP_SHIFT 25
108108
#define I2S_CKR_RLP_NORMAL (0 << I2S_CKR_RLP_SHIFT)
109-
#define I2S_CKR_RLP_OPPSITE (1 << I2S_CKR_RLP_SHIFT)
109+
#define I2S_CKR_RLP_INVERTED (1 << I2S_CKR_RLP_SHIFT)
110+
#define I2S_CKR_RLP_MASK (1 << I2S_CKR_RLP_SHIFT)
110111
#define I2S_CKR_TLP_SHIFT 24
111112
#define I2S_CKR_TLP_NORMAL (0 << I2S_CKR_TLP_SHIFT)
112-
#define I2S_CKR_TLP_OPPSITE (1 << I2S_CKR_TLP_SHIFT)
113+
#define I2S_CKR_TLP_INVERTED (1 << I2S_CKR_TLP_SHIFT)
114+
#define I2S_CKR_TLP_MASK (1 << I2S_CKR_TLP_SHIFT)
113115
#define I2S_CKR_MDIV_SHIFT 16
114116
#define I2S_CKR_MDIV(x) ((x - 1) << I2S_CKR_MDIV_SHIFT)
115117
#define I2S_CKR_MDIV_MASK (0xff << I2S_CKR_MDIV_SHIFT)

0 commit comments

Comments
 (0)