aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-06-06 16:57:54 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-06-06 16:57:54 -0400
commit46758dee727348d3648c83445d10ded321376543 (patch)
tree3c0649b6150901d1d480b3c3a84c45341b09ce2d
parentf97d0c6d5f947a96a6d3957eff3da6d9ca246e54 (diff)
parent8ca695f273709a9d147826716a8dee3e0eb2407f (diff)
Merge branch 'for-3.0' into for-3.1
-rw-r--r--sound/soc/codecs/ad1836.c14
-rw-r--r--sound/soc/codecs/ad1836.h6
2 files changed, 13 insertions, 7 deletions
diff --git a/sound/soc/codecs/ad1836.c b/sound/soc/codecs/ad1836.c
index 4390d4630de5..1e9a801176d5 100644
--- a/sound/soc/codecs/ad1836.c
+++ b/sound/soc/codecs/ad1836.c
@@ -178,22 +178,22 @@ static int ad1836_hw_params(struct snd_pcm_substream *substream,
178 /* bit size */ 178 /* bit size */
179 switch (params_format(params)) { 179 switch (params_format(params)) {
180 case SNDRV_PCM_FORMAT_S16_LE: 180 case SNDRV_PCM_FORMAT_S16_LE:
181 word_len = 3; 181 word_len = AD1836_WORD_LEN_16;
182 break; 182 break;
183 case SNDRV_PCM_FORMAT_S20_3LE: 183 case SNDRV_PCM_FORMAT_S20_3LE:
184 word_len = 1; 184 word_len = AD1836_WORD_LEN_20;
185 break; 185 break;
186 case SNDRV_PCM_FORMAT_S24_LE: 186 case SNDRV_PCM_FORMAT_S24_LE:
187 case SNDRV_PCM_FORMAT_S32_LE: 187 case SNDRV_PCM_FORMAT_S32_LE:
188 word_len = 0; 188 word_len = AD1836_WORD_LEN_24;
189 break; 189 break;
190 } 190 }
191 191
192 snd_soc_update_bits(codec, AD1836_DAC_CTRL1, 192 snd_soc_update_bits(codec, AD1836_DAC_CTRL1, AD1836_DAC_WORD_LEN_MASK,
193 AD1836_DAC_WORD_LEN_MASK, word_len); 193 word_len << AD1836_DAC_WORD_LEN_OFFSET);
194 194
195 snd_soc_update_bits(codec, AD1836_ADC_CTRL2, 195 snd_soc_update_bits(codec, AD1836_ADC_CTRL2, AD1836_ADC_WORD_LEN_MASK,
196 AD1836_ADC_WORD_LEN_MASK, word_len); 196 word_len << AD1836_ADC_WORD_OFFSET);
197 197
198 return 0; 198 return 0;
199} 199}
diff --git a/sound/soc/codecs/ad1836.h b/sound/soc/codecs/ad1836.h
index 4ed7d9dfb346..f13402fe7333 100644
--- a/sound/soc/codecs/ad1836.h
+++ b/sound/soc/codecs/ad1836.h
@@ -25,6 +25,7 @@
25#define AD1836_DAC_SERFMT_PCK256 (0x4 << 5) 25#define AD1836_DAC_SERFMT_PCK256 (0x4 << 5)
26#define AD1836_DAC_SERFMT_PCK128 (0x5 << 5) 26#define AD1836_DAC_SERFMT_PCK128 (0x5 << 5)
27#define AD1836_DAC_WORD_LEN_MASK 0x18 27#define AD1836_DAC_WORD_LEN_MASK 0x18
28#define AD1836_DAC_WORD_LEN_OFFSET 3
28 29
29#define AD1836_DAC_CTRL2 1 30#define AD1836_DAC_CTRL2 1
30 31
@@ -42,6 +43,7 @@
42 43
43#define AD1836_ADC_CTRL2 13 44#define AD1836_ADC_CTRL2 13
44#define AD1836_ADC_WORD_LEN_MASK 0x30 45#define AD1836_ADC_WORD_LEN_MASK 0x30
46#define AD1836_ADC_WORD_OFFSET 5
45#define AD1836_ADC_SERFMT_MASK (7 << 6) 47#define AD1836_ADC_SERFMT_MASK (7 << 6)
46#define AD1836_ADC_SERFMT_PCK256 (0x4 << 6) 48#define AD1836_ADC_SERFMT_PCK256 (0x4 << 6)
47#define AD1836_ADC_SERFMT_PCK128 (0x5 << 6) 49#define AD1836_ADC_SERFMT_PCK128 (0x5 << 6)
@@ -51,4 +53,8 @@
51 53
52#define AD1836_NUM_REGS 16 54#define AD1836_NUM_REGS 16
53 55
56#define AD1836_WORD_LEN_24 0x0
57#define AD1836_WORD_LEN_20 0x1
58#define AD1836_WORD_LEN_16 0x2
59
54#endif 60#endif