[alsa-devel] [PATCH 7/9] ARM: DaVinci: ASoC: Adds ALSA SoC DIT/DIR driver support for DM646X
Adds ALSA SoC DIT/DIR driver support for DM646X
Signed-off-by: Naresh Medisetty naresh@ti.com --- This patch applies on the ASoC tree available at http://opensource.wolfsonmicro.com/cgi-bin/gitweb.cgi?p=linux-2.6-asoc.git;a....
sound/soc/codecs/codec_stubs.c | 63 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 63 insertions(+), 0 deletions(-) create mode 100644 sound/soc/codecs/codec_stubs.c
diff --git a/sound/soc/codecs/codec_stubs.c b/sound/soc/codecs/codec_stubs.c new file mode 100644 index 0000000..60d3446 --- /dev/null +++ b/sound/soc/codecs/codec_stubs.c @@ -0,0 +1,63 @@ +/* + * ALSA SoC DaVinci DIT/DIR driver + * + * TI DaVinci audio controller can operate in DIT/DIR (SPDI/F) where + * no codec is needed. This file provides stub codec that can be used + * in these configurations. + * + * Author: Steve Chen, schen@mvista.com + * Copyright: (C) 2008 MontaVista Software, Inc., source@mvista.com + * Copyright: (C) 2008 Texas Instruments, India + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <linux/module.h> +#include <linux/moduleparam.h> +#include <sound/soc.h> +#include <sound/pcm.h> + +#define STUB_RATES SNDRV_PCM_RATE_8000_96000 +#define STUB_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | \ + SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S32_LE) + +struct snd_soc_dai dit_stub_dai[] = { + { + .name = "DIT", + .playback = { + .stream_name = "Playback", + .channels_min = 1, + .channels_max = 384, + .rates = STUB_RATES, + .formats = STUB_FORMATS, + }, + } +}; + +struct snd_soc_dai dir_stub_dai[] = { + { + .name = "DIR", + .capture = { + .stream_name = "Capture", + .channels_min = 1, + .channels_max = 384, + .rates = STUB_RATES, + .formats = STUB_FORMATS, + }, + } +}; + +static int __init dit_modinit(void) +{ + return snd_soc_register_dai(dit_stub_dai); +} +module_init(dit_modinit); + +static void __exit dit_exit(void) +{ + snd_soc_unregister_dai(dit_stub_dai); +} +module_exit(dit_exit); +
On Mon, Mar 16, 2009 at 08:05:48AM -0400, Naresh Medisetty wrote:
--- /dev/null +++ b/sound/soc/codecs/codec_stubs.c @@ -0,0 +1,63 @@ +/*
- ALSA SoC DaVinci DIT/DIR driver
- TI DaVinci audio controller can operate in DIT/DIR (SPDI/F) where
- no codec is needed. This file provides stub codec that can be used
- in these configurations.
Either the driver is a generic driver (in which case this comment should reflect that) or it's specific to this hardware (in which case the name is entirely inappropriate)...
+#define STUB_RATES SNDRV_PCM_RATE_8000_96000 +#define STUB_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | \
SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S32_LE)
...looking at this and the rest of the definitions I'd suggest that the driver is specific to a particular device at the minute.
+static int __init dit_modinit(void) +{
- return snd_soc_register_dai(dit_stub_dai);
+} +module_init(dit_modinit);
+static void __exit dit_exit(void) +{
- snd_soc_unregister_dai(dit_stub_dai);
+} +module_exit(dit_exit);
It should really probe as a platform device and register the DAIs when that happens (see wm8350 and wm8400 for examples). You could make the driver more generic by passing in the parameters as platform data.
On Mon, Mar 16, 2009 at 08:05:48AM -0400, Naresh Medisetty wrote:
--- /dev/null +++ b/sound/soc/codecs/codec_stubs.c @@ -0,0 +1,63 @@ +/*
- ALSA SoC DaVinci DIT/DIR driver
- TI DaVinci audio controller can operate in DIT/DIR (SPDI/F)
where
- no codec is needed. This file provides stub codec that can be
used
- in these configurations.
Either the driver is a generic driver (in which case this comment should reflect that) or it's specific to this hardware (in which case the name is entirely inappropriate)...
It's specific to dm646x, I will rename this while re-submitting the Patch
+#define STUB_RATES SNDRV_PCM_RATE_8000_96000 +#define STUB_FORMATS (SNDRV_PCM_FMTBIT_S16_LE |
SNDRV_PCM_FMTBIT_S20_3LE | \
SNDRV_PCM_FMTBIT_S24_3LE |
SNDRV_PCM_FMTBIT_S32_LE)
...looking at this and the rest of the definitions I'd suggest that the driver is specific to a particular device at the minute.
+static int __init dit_modinit(void) +{
return snd_soc_register_dai(dit_stub_dai);
+} +module_init(dit_modinit);
+static void __exit dit_exit(void) +{
snd_soc_unregister_dai(dit_stub_dai);
+} +module_exit(dit_exit);
It should really probe as a platform device and register the DAIs when that happens (see wm8350 and wm8400 for examples). You could make the driver more generic by passing in the parameters as platform data.
I will re-submit this patch by fixing this.
participants (3)
-
Mark Brown
-
Medisetty, Naresh
-
Naresh Medisetty