aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm5100.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-05-01 15:03:52 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-05-02 10:44:11 -0400
commit9b5231247c7aea3e56b6d28fa3e068e17ffc61da (patch)
treea232fbfeadb4908a03363aab8806603df97a80a0 /sound/soc/codecs/wm5100.c
parent623682941a11e6e09dcf88c4b2e3e88cf6a255a5 (diff)
ASoC: wm5100: Set the DAI base address in the DAI drivers
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
Diffstat (limited to 'sound/soc/codecs/wm5100.c')
-rw-r--r--sound/soc/codecs/wm5100.c26
1 files changed, 5 insertions, 21 deletions
diff --git a/sound/soc/codecs/wm5100.c b/sound/soc/codecs/wm5100.c
index 0594636b9107..4f2e0f830589 100644
--- a/sound/soc/codecs/wm5100.c
+++ b/sound/soc/codecs/wm5100.c
@@ -1265,29 +1265,12 @@ static const __devinitdata struct reg_default wm5100_reva_patches[] = {
1265 { WM5100_AUDIO_IF_3_19, 1 }, 1265 { WM5100_AUDIO_IF_3_19, 1 },
1266}; 1266};
1267 1267
1268static int wm5100_dai_to_base(struct snd_soc_dai *dai)
1269{
1270 switch (dai->id) {
1271 case 0:
1272 return WM5100_AUDIO_IF_1_1 - 1;
1273 case 1:
1274 return WM5100_AUDIO_IF_2_1 - 1;
1275 case 2:
1276 return WM5100_AUDIO_IF_3_1 - 1;
1277 default:
1278 BUG();
1279 return -EINVAL;
1280 }
1281}
1282
1283static int wm5100_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) 1268static int wm5100_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
1284{ 1269{
1285 struct snd_soc_codec *codec = dai->codec; 1270 struct snd_soc_codec *codec = dai->codec;
1286 int lrclk, bclk, mask, base; 1271 int lrclk, bclk, mask, base;
1287 1272
1288 base = wm5100_dai_to_base(dai); 1273 base = dai->driver->base;
1289 if (base < 0)
1290 return base;
1291 1274
1292 lrclk = 0; 1275 lrclk = 0;
1293 bclk = 0; 1276 bclk = 0;
@@ -1414,9 +1397,7 @@ static int wm5100_hw_params(struct snd_pcm_substream *substream,
1414 int i, base, bclk, aif_rate, lrclk, wl, fl, sr; 1397 int i, base, bclk, aif_rate, lrclk, wl, fl, sr;
1415 int *bclk_rates; 1398 int *bclk_rates;
1416 1399
1417 base = wm5100_dai_to_base(dai); 1400 base = dai->driver->base;
1418 if (base < 0)
1419 return base;
1420 1401
1421 /* Data sizes if not using TDM */ 1402 /* Data sizes if not using TDM */
1422 wl = snd_pcm_format_width(params_format(params)); 1403 wl = snd_pcm_format_width(params_format(params));
@@ -1897,6 +1878,7 @@ static int wm5100_set_fll(struct snd_soc_codec *codec, int fll_id, int source,
1897static struct snd_soc_dai_driver wm5100_dai[] = { 1878static struct snd_soc_dai_driver wm5100_dai[] = {
1898 { 1879 {
1899 .name = "wm5100-aif1", 1880 .name = "wm5100-aif1",
1881 .base = WM5100_AUDIO_IF_1_1 - 1,
1900 .playback = { 1882 .playback = {
1901 .stream_name = "AIF1 Playback", 1883 .stream_name = "AIF1 Playback",
1902 .channels_min = 2, 1884 .channels_min = 2,
@@ -1916,6 +1898,7 @@ static struct snd_soc_dai_driver wm5100_dai[] = {
1916 { 1898 {
1917 .name = "wm5100-aif2", 1899 .name = "wm5100-aif2",
1918 .id = 1, 1900 .id = 1,
1901 .base = WM5100_AUDIO_IF_2_1 - 1,
1919 .playback = { 1902 .playback = {
1920 .stream_name = "AIF2 Playback", 1903 .stream_name = "AIF2 Playback",
1921 .channels_min = 2, 1904 .channels_min = 2,
@@ -1935,6 +1918,7 @@ static struct snd_soc_dai_driver wm5100_dai[] = {
1935 { 1918 {
1936 .name = "wm5100-aif3", 1919 .name = "wm5100-aif3",
1937 .id = 2, 1920 .id = 2,
1921 .base = WM5100_AUDIO_IF_3_1 - 1,
1938 .playback = { 1922 .playback = {
1939 .stream_name = "AIF3 Playback", 1923 .stream_name = "AIF3 Playback",
1940 .channels_min = 2, 1924 .channels_min = 2,