aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sound/tlv320dac33-plat.h1
-rw-r--r--sound/soc/codecs/tlv320dac33.c15
2 files changed, 14 insertions, 2 deletions
diff --git a/include/sound/tlv320dac33-plat.h b/include/sound/tlv320dac33-plat.h
index 5858d06a7ffa..ac0665264bdf 100644
--- a/include/sound/tlv320dac33-plat.h
+++ b/include/sound/tlv320dac33-plat.h
@@ -15,6 +15,7 @@
15 15
16struct tlv320dac33_platform_data { 16struct tlv320dac33_platform_data {
17 int power_gpio; 17 int power_gpio;
18 u8 burst_bclkdiv;
18}; 19};
19 20
20#endif /* __TLV320DAC33_PLAT_H */ 21#endif /* __TLV320DAC33_PLAT_H */
diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c
index e1aa66ff7f1c..1b35d0cf3364 100644
--- a/sound/soc/codecs/tlv320dac33.c
+++ b/sound/soc/codecs/tlv320dac33.c
@@ -91,6 +91,7 @@ struct tlv320dac33_priv {
91 * this */ 91 * this */
92 enum dac33_fifo_modes fifo_mode;/* FIFO mode selection */ 92 enum dac33_fifo_modes fifo_mode;/* FIFO mode selection */
93 unsigned int nsample; /* burst read amount from host */ 93 unsigned int nsample; /* burst read amount from host */
94 u8 burst_bclkdiv; /* BCLK divider value in burst mode */
94 95
95 enum dac33_state state; 96 enum dac33_state state;
96}; 97};
@@ -845,9 +846,18 @@ static int dac33_prepare_chip(struct snd_pcm_substream *substream)
845 dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_A, aictrl_a); 846 dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_A, aictrl_a);
846 dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_B, aictrl_b); 847 dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_B, aictrl_b);
847 848
848 /* BCLK divide ratio */ 849 /*
850 * BCLK divide ratio
851 * 0: 1.5
852 * 1: 1
853 * 2: 2
854 * ...
855 * 254: 254
856 * 255: 255
857 */
849 if (dac33->fifo_mode) 858 if (dac33->fifo_mode)
850 dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_C, 3); 859 dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_C,
860 dac33->burst_bclkdiv);
851 else 861 else
852 dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_C, 32); 862 dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_C, 32);
853 863
@@ -1239,6 +1249,7 @@ static int __devinit dac33_i2c_probe(struct i2c_client *client,
1239 i2c_set_clientdata(client, dac33); 1249 i2c_set_clientdata(client, dac33);
1240 1250
1241 dac33->power_gpio = pdata->power_gpio; 1251 dac33->power_gpio = pdata->power_gpio;
1252 dac33->burst_bclkdiv = pdata->burst_bclkdiv;
1242 dac33->irq = client->irq; 1253 dac33->irq = client->irq;
1243 dac33->nsample = NSAMPLE_MAX; 1254 dac33->nsample = NSAMPLE_MAX;
1244 /* Disable FIFO use by default */ 1255 /* Disable FIFO use by default */