Commit 2df3e8e0679694d0e653b2ac2b6b4dfd5094b072
Committed by
Greg Kroah-Hartman
1 parent
2b19835bf2
ASoC: AD1836: Fix setting the PCM format
commit 8ca695f273709a9d147826716a8dee3e0eb2407f upstream. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Showing 2 changed files with 13 additions and 7 deletions Side-by-side Diff
sound/soc/codecs/ad1836.c
... | ... | @@ -145,22 +145,22 @@ |
145 | 145 | /* bit size */ |
146 | 146 | switch (params_format(params)) { |
147 | 147 | case SNDRV_PCM_FORMAT_S16_LE: |
148 | - word_len = 3; | |
148 | + word_len = AD1836_WORD_LEN_16; | |
149 | 149 | break; |
150 | 150 | case SNDRV_PCM_FORMAT_S20_3LE: |
151 | - word_len = 1; | |
151 | + word_len = AD1836_WORD_LEN_20; | |
152 | 152 | break; |
153 | 153 | case SNDRV_PCM_FORMAT_S24_LE: |
154 | 154 | case SNDRV_PCM_FORMAT_S32_LE: |
155 | - word_len = 0; | |
155 | + word_len = AD1836_WORD_LEN_24; | |
156 | 156 | break; |
157 | 157 | } |
158 | 158 | |
159 | - snd_soc_update_bits(codec, AD1836_DAC_CTRL1, | |
160 | - AD1836_DAC_WORD_LEN_MASK, word_len); | |
159 | + snd_soc_update_bits(codec, AD1836_DAC_CTRL1, AD1836_DAC_WORD_LEN_MASK, | |
160 | + word_len << AD1836_DAC_WORD_LEN_OFFSET); | |
161 | 161 | |
162 | - snd_soc_update_bits(codec, AD1836_ADC_CTRL2, | |
163 | - AD1836_ADC_WORD_LEN_MASK, word_len); | |
162 | + snd_soc_update_bits(codec, AD1836_ADC_CTRL2, AD1836_ADC_WORD_LEN_MASK, | |
163 | + word_len << AD1836_ADC_WORD_OFFSET); | |
164 | 164 | |
165 | 165 | return 0; |
166 | 166 | } |
sound/soc/codecs/ad1836.h
... | ... | @@ -25,6 +25,7 @@ |
25 | 25 | #define AD1836_DAC_SERFMT_PCK256 (0x4 << 5) |
26 | 26 | #define AD1836_DAC_SERFMT_PCK128 (0x5 << 5) |
27 | 27 | #define AD1836_DAC_WORD_LEN_MASK 0x18 |
28 | +#define AD1836_DAC_WORD_LEN_OFFSET 3 | |
28 | 29 | |
29 | 30 | #define AD1836_DAC_CTRL2 1 |
30 | 31 | #define AD1836_DACL1_MUTE 0 |
... | ... | @@ -51,6 +52,7 @@ |
51 | 52 | #define AD1836_ADCL2_MUTE 2 |
52 | 53 | #define AD1836_ADCR2_MUTE 3 |
53 | 54 | #define AD1836_ADC_WORD_LEN_MASK 0x30 |
55 | +#define AD1836_ADC_WORD_OFFSET 5 | |
54 | 56 | #define AD1836_ADC_SERFMT_MASK (7 << 6) |
55 | 57 | #define AD1836_ADC_SERFMT_PCK256 (0x4 << 6) |
56 | 58 | #define AD1836_ADC_SERFMT_PCK128 (0x5 << 6) |
... | ... | @@ -59,6 +61,10 @@ |
59 | 61 | #define AD1836_ADC_CTRL3 14 |
60 | 62 | |
61 | 63 | #define AD1836_NUM_REGS 16 |
64 | + | |
65 | +#define AD1836_WORD_LEN_24 0x0 | |
66 | +#define AD1836_WORD_LEN_20 0x1 | |
67 | +#define AD1836_WORD_LEN_16 0x2 | |
62 | 68 | |
63 | 69 | #endif |