aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2015-06-04 09:04:24 -0400
committerMark Brown <broonie@kernel.org>2015-06-05 13:53:34 -0400
commit1b68c7dca2ca7426c758debdbf9dd5f7c308c1c8 (patch)
treefc9b26a2fe04a923e770eab24e67f7095d26ae1e
parent4c331373b99de9c65dcba8633f73fa3efc20d01f (diff)
ASoC: tas2552: Correct and clean up data format and BCLK/WCLK direction
Use names from the datasheet for the definitions. Correct the data format definitions since they were not correct. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/codecs/tas2552.c18
-rw-r--r--sound/soc/codecs/tas2552.h17
2 files changed, 17 insertions, 18 deletions
diff --git a/sound/soc/codecs/tas2552.c b/sound/soc/codecs/tas2552.c
index 2f4c2b52a9fa..7615d1bc5f5d 100644
--- a/sound/soc/codecs/tas2552.c
+++ b/sound/soc/codecs/tas2552.c
@@ -188,9 +188,9 @@ static int tas2552_hw_params(struct snd_pcm_substream *substream,
188 return 0; 188 return 0;
189} 189}
190 190
191#define TAS2552_DAI_FMT_MASK (TAS2552_BIT_CLK_MASK | \ 191#define TAS2552_DAI_FMT_MASK (TAS2552_BCLKDIR | \
192 TAS2552_WORD_CLK_MASK | \ 192 TAS2552_WCLKDIR | \
193 TAS2552_DATA_FORMAT_MASK) 193 TAS2552_DATAFORMAT_MASK)
194static int tas2552_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt) 194static int tas2552_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
195{ 195{
196 struct snd_soc_codec *codec = dai->codec; 196 struct snd_soc_codec *codec = dai->codec;
@@ -202,13 +202,13 @@ static int tas2552_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
202 serial_format = 0x00; 202 serial_format = 0x00;
203 break; 203 break;
204 case SND_SOC_DAIFMT_CBS_CFM: 204 case SND_SOC_DAIFMT_CBS_CFM:
205 serial_format = TAS2552_WORD_CLK_MASK; 205 serial_format = TAS2552_WCLKDIR;
206 break; 206 break;
207 case SND_SOC_DAIFMT_CBM_CFS: 207 case SND_SOC_DAIFMT_CBM_CFS:
208 serial_format = TAS2552_BIT_CLK_MASK; 208 serial_format = TAS2552_BCLKDIR;
209 break; 209 break;
210 case SND_SOC_DAIFMT_CBM_CFM: 210 case SND_SOC_DAIFMT_CBM_CFM:
211 serial_format = (TAS2552_BIT_CLK_MASK | TAS2552_WORD_CLK_MASK); 211 serial_format = (TAS2552_BCLKDIR | TAS2552_WCLKDIR);
212 break; 212 break;
213 default: 213 default:
214 dev_vdbg(codec->dev, "DAI Format master is not found\n"); 214 dev_vdbg(codec->dev, "DAI Format master is not found\n");
@@ -222,13 +222,13 @@ static int tas2552_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
222 case (SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_NF): 222 case (SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_NF):
223 delay = 1; 223 delay = 1;
224 case (SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_IB_NF): 224 case (SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_IB_NF):
225 serial_format |= TAS2552_DAIFMT_DSP; 225 serial_format |= TAS2552_DATAFORMAT_DSP;
226 break; 226 break;
227 case (SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_NB_NF): 227 case (SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_NB_NF):
228 serial_format |= TAS2552_DAIFMT_RIGHT_J; 228 serial_format |= TAS2552_DATAFORMAT_RIGHT_J;
229 break; 229 break;
230 case (SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF): 230 case (SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF):
231 serial_format |= TAS2552_DAIFMT_LEFT_J; 231 serial_format |= TAS2552_DATAFORMAT_LEFT_J;
232 break; 232 break;
233 default: 233 default:
234 dev_vdbg(codec->dev, "DAI Format is not found\n"); 234 dev_vdbg(codec->dev, "DAI Format is not found\n");
diff --git a/sound/soc/codecs/tas2552.h b/sound/soc/codecs/tas2552.h
index 0725befb4c41..0a12b511e951 100644
--- a/sound/soc/codecs/tas2552.h
+++ b/sound/soc/codecs/tas2552.h
@@ -62,15 +62,14 @@
62#define TAS2552_LIM_EN (1 << 2) 62#define TAS2552_LIM_EN (1 << 2)
63#define TAS2552_IVSENSE_EN (1 << 1) 63#define TAS2552_IVSENSE_EN (1 << 1)
64 64
65/* CFG3 Register Masks */ 65/* Serial Interface Control Register Masks */
66#define TAS2552_WORD_CLK_MASK (1 << 7) 66#define TAS2552_DATAFORMAT_I2S (0x0 << 2)
67#define TAS2552_BIT_CLK_MASK (1 << 6) 67#define TAS2552_DATAFORMAT_DSP (0x1 << 2)
68#define TAS2552_DATA_FORMAT_MASK (0x11 << 2) 68#define TAS2552_DATAFORMAT_RIGHT_J (0x2 << 2)
69 69#define TAS2552_DATAFORMAT_LEFT_J (0x3 << 2)
70#define TAS2552_DAIFMT_I2S_MASK 0xf3 70#define TAS2552_DATAFORMAT_MASK TAS2552_DATAFORMAT_LEFT_J
71#define TAS2552_DAIFMT_DSP (1 << 3) 71#define TAS2552_BCLKDIR (1 << 6)
72#define TAS2552_DAIFMT_RIGHT_J (1 << 4) 72#define TAS2552_WCLKDIR (1 << 7)
73#define TAS2552_DAIFMT_LEFT_J (0x11 << 3)
74 73
75#define TAS2552_DIN_SRC_SEL_MUTED 0x00 74#define TAS2552_DIN_SRC_SEL_MUTED 0x00
76#define TAS2552_DIN_SRC_SEL_LEFT (1 << 4) 75#define TAS2552_DIN_SRC_SEL_LEFT (1 << 4)