Skip to content

Commit

Permalink
ASoC: tlv320dac33: Calculate the interface speed during bursts
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Peter Ujfalusi authored and Liam Girdwood committed Apr 26, 2010
1 parent 4260393 commit 76f4712
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions sound/soc/codecs/tlv320dac33.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@
#define MODE7_LTHR 10
#define MODE7_UTHR (DAC33_BUFFER_SIZE_SAMPLES - 10)

#define BURST_BASEFREQ_HZ 49152000

static struct snd_soc_codec *tlv320dac33_codec;

enum dac33_state {
Expand Down Expand Up @@ -95,6 +97,7 @@ struct tlv320dac33_priv {
enum dac33_fifo_modes fifo_mode;/* FIFO mode selection */
unsigned int nsample; /* burst read amount from host */
u8 burst_bclkdiv; /* BCLK divider value in burst mode */
unsigned int burst_rate; /* Interface speed in Burst modes */

int keep_bclk; /* Keep the BCLK continuously running
* in FIFO modes */
Expand Down Expand Up @@ -1246,6 +1249,8 @@ static int __devinit dac33_i2c_probe(struct i2c_client *client,

dac33->power_gpio = pdata->power_gpio;
dac33->burst_bclkdiv = pdata->burst_bclkdiv;
/* Pre calculate the burst rate */
dac33->burst_rate = BURST_BASEFREQ_HZ / dac33->burst_bclkdiv / 32;
dac33->keep_bclk = pdata->keep_bclk;
dac33->irq = client->irq;
dac33->nsample = NSAMPLE_MAX;
Expand Down

0 comments on commit 76f4712

Please sign in to comment.