aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/tlv320dac33.c
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>2010-04-23 03:10:00 -0400
committerLiam Girdwood <lrg@slimlogic.co.uk>2010-04-26 10:16:33 -0400
commit76f471274dc9acacd521f151ac9171fd7bbc34c3 (patch)
tree21ab7878c8660e984d5f4e3c5089a7e67b8adcac /sound/soc/codecs/tlv320dac33.c
parent4260393e71f1e99c2f4fcde10fcb98fe00188d21 (diff)
ASoC: tlv320dac33: Calculate the interface speed during bursts
When the DAC33 FIFO is in use the dai interface is running in much higher speed than the sampling frequency. Calculate the rate based on the internal base frequency and the bclk divider. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'sound/soc/codecs/tlv320dac33.c')
-rw-r--r--sound/soc/codecs/tlv320dac33.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c
index fa1994262c98..a8eb19b9b6c5 100644
--- a/sound/soc/codecs/tlv320dac33.c
+++ b/sound/soc/codecs/tlv320dac33.c
@@ -53,6 +53,8 @@
53#define MODE7_LTHR 10 53#define MODE7_LTHR 10
54#define MODE7_UTHR (DAC33_BUFFER_SIZE_SAMPLES - 10) 54#define MODE7_UTHR (DAC33_BUFFER_SIZE_SAMPLES - 10)
55 55
56#define BURST_BASEFREQ_HZ 49152000
57
56static struct snd_soc_codec *tlv320dac33_codec; 58static struct snd_soc_codec *tlv320dac33_codec;
57 59
58enum dac33_state { 60enum dac33_state {
@@ -95,6 +97,7 @@ struct tlv320dac33_priv {
95 enum dac33_fifo_modes fifo_mode;/* FIFO mode selection */ 97 enum dac33_fifo_modes fifo_mode;/* FIFO mode selection */
96 unsigned int nsample; /* burst read amount from host */ 98 unsigned int nsample; /* burst read amount from host */
97 u8 burst_bclkdiv; /* BCLK divider value in burst mode */ 99 u8 burst_bclkdiv; /* BCLK divider value in burst mode */
100 unsigned int burst_rate; /* Interface speed in Burst modes */
98 101
99 int keep_bclk; /* Keep the BCLK continuously running 102 int keep_bclk; /* Keep the BCLK continuously running
100 * in FIFO modes */ 103 * in FIFO modes */
@@ -1246,6 +1249,8 @@ static int __devinit dac33_i2c_probe(struct i2c_client *client,
1246 1249
1247 dac33->power_gpio = pdata->power_gpio; 1250 dac33->power_gpio = pdata->power_gpio;
1248 dac33->burst_bclkdiv = pdata->burst_bclkdiv; 1251 dac33->burst_bclkdiv = pdata->burst_bclkdiv;
1252 /* Pre calculate the burst rate */
1253 dac33->burst_rate = BURST_BASEFREQ_HZ / dac33->burst_bclkdiv / 32;
1249 dac33->keep_bclk = pdata->keep_bclk; 1254 dac33->keep_bclk = pdata->keep_bclk;
1250 dac33->irq = client->irq; 1255 dac33->irq = client->irq;
1251 dac33->nsample = NSAMPLE_MAX; 1256 dac33->nsample = NSAMPLE_MAX;