mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
ASoC: rockchip: i2s-tdm: Add support for frame inversion
Change-Id: I4d6d626018b1555f65684cc6a3c16045894bd868 Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
This commit is contained in:
@@ -469,13 +469,27 @@ static int rockchip_i2s_tdm_set_fmt(struct snd_soc_dai *cpu_dai,
|
||||
|
||||
regmap_update_bits(i2s_tdm->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_NORMAL;
|
||||
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_INVERTED;
|
||||
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;
|
||||
|
||||
@@ -106,10 +106,12 @@
|
||||
#define I2S_CKR_CKP_MASK (1 << I2S_CKR_CKP_SHIFT)
|
||||
#define I2S_CKR_RLP_SHIFT 25
|
||||
#define I2S_CKR_RLP_NORMAL (0 << I2S_CKR_RLP_SHIFT)
|
||||
#define I2S_CKR_RLP_OPPSITE (1 << I2S_CKR_RLP_SHIFT)
|
||||
#define I2S_CKR_RLP_INVERTED (1 << I2S_CKR_RLP_SHIFT)
|
||||
#define I2S_CKR_RLP_MASK (1 << I2S_CKR_RLP_SHIFT)
|
||||
#define I2S_CKR_TLP_SHIFT 24
|
||||
#define I2S_CKR_TLP_NORMAL (0 << I2S_CKR_TLP_SHIFT)
|
||||
#define I2S_CKR_TLP_OPPSITE (1 << I2S_CKR_TLP_SHIFT)
|
||||
#define I2S_CKR_TLP_INVERTED (1 << I2S_CKR_TLP_SHIFT)
|
||||
#define I2S_CKR_TLP_MASK (1 << I2S_CKR_TLP_SHIFT)
|
||||
#define I2S_CKR_MDIV_SHIFT 16
|
||||
#define I2S_CKR_MDIV(x) ((x - 1) << I2S_CKR_MDIV_SHIFT)
|
||||
#define I2S_CKR_MDIV_MASK (0xff << I2S_CKR_MDIV_SHIFT)
|
||||
|
||||
Reference in New Issue
Block a user