[alsa-devel] [PATCH 4/5] ASoC: wm8580: Add to support Master Mode Rates
Seungwhan Youn
sw.youn at samsung.com
Fri Aug 6 02:32:18 CEST 2010
This patch adds to support Master Mode LRCLK, BCLK rates
setting for wm8580.
Signed-off-by: Seungwhan Youn <sw.youn at samsung.com>
---
sound/soc/codecs/wm8580.c | 51 +++++++++++++++++++++++++++++++++++++++++++++
sound/soc/codecs/wm8580.h | 2 +
2 files changed, 53 insertions(+), 0 deletions(-)
diff --git a/sound/soc/codecs/wm8580.c b/sound/soc/codecs/wm8580.c
index d282eb3..a2bb2a4 100644
--- a/sound/soc/codecs/wm8580.c
+++ b/sound/soc/codecs/wm8580.c
@@ -705,6 +705,57 @@ static int wm8580_set_dai_clkdiv(struct snd_soc_dai *codec_dai,
snd_soc_write(codec, WM8580_CLKSEL, reg);
break;
+ case WM8580_LRCLK_RATE:
+ reg = snd_soc_read(codec, WM8580_PAIF1 + codec_dai->id);
+ reg &= ~WM8580_AIF_RATE_MASK;
+ switch (div) {
+ case 128:
+ reg |= WM8580_AIF_RATE_128;
+ break;
+ case 192:
+ reg |= WM8580_AIF_RATE_192;
+ break;
+ case 256:
+ reg |= WM8580_AIF_RATE_256;
+ break;
+ case 384:
+ reg |= WM8580_AIF_RATE_384;
+ break;
+ case 512:
+ reg |= WM8580_AIF_RATE_512;
+ break;
+ case 768:
+ reg |= WM8580_AIF_RATE_768;
+ break;
+ case 1152:
+ reg |= WM8580_AIF_RATE_1152;
+ break;
+ default:
+ return -EINVAL;
+ }
+ snd_soc_write(codec, WM8580_PAIF1 + codec_dai->id, reg);
+ break;
+
+ case WM8580_BCLK_RATE:
+ reg = snd_soc_read(codec, WM8580_PAIF1 + codec_dai->id);
+ reg &= ~WM8580_AIF_BCLKSEL_MASK;
+ switch (div) {
+ case 64:
+ reg |= WM8580_AIF_BCLKSEL_64;
+ break;
+ case 32:
+ reg |= WM8580_AIF_BCLKSEL_32;
+ break;
+ case 16:
+ reg |= WM8580_AIF_BCLKSEL_16;
+ break;
+ default:
+ reg |= WM8580_AIF_BCLKSEL_SYSCLK;
+ break;
+ }
+ snd_soc_write(codec, WM8580_PAIF1 + codec_dai->id, reg);
+ break;
+
default:
return -EINVAL;
}
diff --git a/sound/soc/codecs/wm8580.h b/sound/soc/codecs/wm8580.h
index aeb65ef..2272e36 100644
--- a/sound/soc/codecs/wm8580.h
+++ b/sound/soc/codecs/wm8580.h
@@ -22,6 +22,8 @@
#define WM8580_DAC_CLKSEL 2
#define WM8580_ADC_CLKSEL 3
#define WM8580_CLKOUTSRC 4
+#define WM8580_LRCLK_RATE 5
+#define WM8580_BCLK_RATE 6
#define WM8580_CLKSRC_MCLK 1
#define WM8580_CLKSRC_ADCMCLK 2
--
1.6.2.5
More information about the Alsa-devel
mailing list