All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv2 05/10] ASoC: AC97: SMDK: Add wm9713 machine driver
@ 2010-01-27  5:59 ` jassisinghbrar at gmail.com
  0 siblings, 0 replies; 8+ messages in thread
From: jassisinghbrar @ 2010-01-27  5:59 UTC (permalink / raw)
  To: alsa-devel, linux-arm-kernel
  Cc: ben-linux, broonie, lrg, linux-samsung-soc, Jassi Brar

From: Jassi Brar <jassi.brar@samsung.com>

This patch adds the common machine driver for SMDKs that
have a WM9713 codec attched to the AC97 controller.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
 sound/soc/s3c24xx/Kconfig       |    8 +++
 sound/soc/s3c24xx/Makefile      |    2 +
 sound/soc/s3c24xx/smdk_wm9713.c |   97 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 107 insertions(+), 0 deletions(-)
 create mode 100644 sound/soc/s3c24xx/smdk_wm9713.c

diff --git a/sound/soc/s3c24xx/Kconfig b/sound/soc/s3c24xx/Kconfig
index ad3690e..d1c6f93 100644
--- a/sound/soc/s3c24xx/Kconfig
+++ b/sound/soc/s3c24xx/Kconfig
@@ -115,3 +115,11 @@ config SND_S3C24XX_SOC_SIMTEC_HERMES
 	select SND_S3C24XX_SOC_I2S
 	select SND_SOC_TLV320AIC3X
 	select SND_S3C24XX_SOC_SIMTEC
+
+config SND_SOC_SMDK_WM9713
+	tristate "SoC AC97 Audio support for SMDK with WM9713"
+	depends on SND_S3C24XX_SOC && MACH_SMDK6410
+	select SND_SOC_WM9713
+	select SND_S3C_SOC_AC97
+	help
+	  Sat Y if you want to add support for SoC audio on the SMDK.
diff --git a/sound/soc/s3c24xx/Makefile b/sound/soc/s3c24xx/Makefile
index b7411bd..1117678 100644
--- a/sound/soc/s3c24xx/Makefile
+++ b/sound/soc/s3c24xx/Makefile
@@ -28,6 +28,7 @@ snd-soc-s3c24xx-simtec-objs := s3c24xx_simtec.o
 snd-soc-s3c24xx-simtec-hermes-objs := s3c24xx_simtec_hermes.o
 snd-soc-s3c24xx-simtec-tlv320aic23-objs := s3c24xx_simtec_tlv320aic23.o
 snd-soc-smdk64xx-wm8580-objs := smdk64xx_wm8580.o
+snd-soc-smdk-wm9713-objs := smdk_wm9713.o
 
 obj-$(CONFIG_SND_S3C24XX_SOC_JIVE_WM8750) += snd-soc-jive-wm8750.o
 obj-$(CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753) += snd-soc-neo1973-wm8753.o
@@ -39,3 +40,4 @@ obj-$(CONFIG_SND_S3C24XX_SOC_SIMTEC) += snd-soc-s3c24xx-simtec.o
 obj-$(CONFIG_SND_S3C24XX_SOC_SIMTEC_HERMES) += snd-soc-s3c24xx-simtec-hermes.o
 obj-$(CONFIG_SND_S3C24XX_SOC_SIMTEC_TLV320AIC23) += snd-soc-s3c24xx-simtec-tlv320aic23.o
 obj-$(CONFIG_SND_S3C64XX_SOC_WM8580) += snd-soc-smdk64xx-wm8580.o
+obj-$(CONFIG_SND_SOC_SMDK_WM9713) += snd-soc-smdk-wm9713.o
diff --git a/sound/soc/s3c24xx/smdk_wm9713.c b/sound/soc/s3c24xx/smdk_wm9713.c
new file mode 100644
index 0000000..7dd933f
--- /dev/null
+++ b/sound/soc/s3c24xx/smdk_wm9713.c
@@ -0,0 +1,97 @@
+/*
+ * smdk_wm9713.c  --  SoC audio for SMDK
+ *
+ * Copyright 2010 Samsung Electronics Co. Ltd.
+ * Author: Jaswinder Singh Brar <jassi.brar@samsung.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/device.h>
+#include <sound/soc.h>
+
+#include "../codecs/wm9713.h"
+#include "s3c-dma.h"
+#include "s3c-ac97.h"
+
+static struct snd_soc_card smdk;
+
+/*
+ Playback (HeadPhone):-
+	Headphone Playback Switch - On
+	$ amixer cset numid=4 1
+
+	Right Headphone Out Mux - Headphone
+	$ amixer cset numid=92 2
+	Left Headphone Out Mux - Headphone
+	$ amixer cset numid=93 2
+
+	Right HP Mixer PCM Playback Switch - On
+	$ amixer cset numid=75 1
+	Left HP Mixer PCM Playback Switch - On
+	$ amixer cset numid=81 1
+
+ Capture (LineIn):-
+	Right Capture Source - Line
+	$ amixer cset numid=86 2
+	Left Capture Source - Line
+	$ amixer cset numid=87 2
+*/
+
+static struct snd_soc_dai_link smdk_dai = {
+	.name = "AC97",
+	.stream_name = "AC97 PCM",
+	.cpu_dai = &s3c_ac97_dai[S3C_AC97_DAI_PCM],
+	.codec_dai = &wm9713_dai[WM9713_DAI_AC97_HIFI],
+};
+
+static struct snd_soc_card smdk = {
+	.name = "SMDK",
+	.platform = &s3c24xx_soc_platform,
+	.dai_link = &smdk_dai,
+	.num_links = 1,
+};
+
+static struct snd_soc_device smdk_snd_ac97_devdata = {
+	.card = &smdk,
+	.codec_dev = &soc_codec_dev_wm9713,
+};
+
+static struct platform_device *smdk_snd_ac97_device;
+
+static int __init smdk_init(void)
+{
+	int ret;
+
+	smdk_snd_ac97_device = platform_device_alloc("soc-audio", -1);
+	if (!smdk_snd_ac97_device)
+		return -ENOMEM;
+
+	platform_set_drvdata(smdk_snd_ac97_device,
+			     &smdk_snd_ac97_devdata);
+	smdk_snd_ac97_devdata.dev = &smdk_snd_ac97_device->dev;
+
+	ret = platform_device_add(smdk_snd_ac97_device);
+	if (ret)
+		platform_device_put(smdk_snd_ac97_device);
+
+	return ret;
+}
+
+static void __exit smdk_exit(void)
+{
+	platform_device_unregister(smdk_snd_ac97_device);
+}
+
+module_init(smdk_init);
+module_exit(smdk_exit);
+
+/* Module information */
+MODULE_AUTHOR("Jaswinder Singh Brar, jassi.brar@samsung.com");
+MODULE_DESCRIPTION("ALSA SoC SMDK+WM9713");
+MODULE_LICENSE("GPL");
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCHv2 05/10] ASoC: AC97: SMDK: Add wm9713 machine driver
@ 2010-01-27  5:59 ` jassisinghbrar at gmail.com
  0 siblings, 0 replies; 8+ messages in thread
From: jassisinghbrar at gmail.com @ 2010-01-27  5:59 UTC (permalink / raw)
  To: linux-arm-kernel

From: Jassi Brar <jassi.brar@samsung.com>

This patch adds the common machine driver for SMDKs that
have a WM9713 codec attched to the AC97 controller.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
 sound/soc/s3c24xx/Kconfig       |    8 +++
 sound/soc/s3c24xx/Makefile      |    2 +
 sound/soc/s3c24xx/smdk_wm9713.c |   97 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 107 insertions(+), 0 deletions(-)
 create mode 100644 sound/soc/s3c24xx/smdk_wm9713.c

diff --git a/sound/soc/s3c24xx/Kconfig b/sound/soc/s3c24xx/Kconfig
index ad3690e..d1c6f93 100644
--- a/sound/soc/s3c24xx/Kconfig
+++ b/sound/soc/s3c24xx/Kconfig
@@ -115,3 +115,11 @@ config SND_S3C24XX_SOC_SIMTEC_HERMES
 	select SND_S3C24XX_SOC_I2S
 	select SND_SOC_TLV320AIC3X
 	select SND_S3C24XX_SOC_SIMTEC
+
+config SND_SOC_SMDK_WM9713
+	tristate "SoC AC97 Audio support for SMDK with WM9713"
+	depends on SND_S3C24XX_SOC && MACH_SMDK6410
+	select SND_SOC_WM9713
+	select SND_S3C_SOC_AC97
+	help
+	  Sat Y if you want to add support for SoC audio on the SMDK.
diff --git a/sound/soc/s3c24xx/Makefile b/sound/soc/s3c24xx/Makefile
index b7411bd..1117678 100644
--- a/sound/soc/s3c24xx/Makefile
+++ b/sound/soc/s3c24xx/Makefile
@@ -28,6 +28,7 @@ snd-soc-s3c24xx-simtec-objs := s3c24xx_simtec.o
 snd-soc-s3c24xx-simtec-hermes-objs := s3c24xx_simtec_hermes.o
 snd-soc-s3c24xx-simtec-tlv320aic23-objs := s3c24xx_simtec_tlv320aic23.o
 snd-soc-smdk64xx-wm8580-objs := smdk64xx_wm8580.o
+snd-soc-smdk-wm9713-objs := smdk_wm9713.o
 
 obj-$(CONFIG_SND_S3C24XX_SOC_JIVE_WM8750) += snd-soc-jive-wm8750.o
 obj-$(CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753) += snd-soc-neo1973-wm8753.o
@@ -39,3 +40,4 @@ obj-$(CONFIG_SND_S3C24XX_SOC_SIMTEC) += snd-soc-s3c24xx-simtec.o
 obj-$(CONFIG_SND_S3C24XX_SOC_SIMTEC_HERMES) += snd-soc-s3c24xx-simtec-hermes.o
 obj-$(CONFIG_SND_S3C24XX_SOC_SIMTEC_TLV320AIC23) += snd-soc-s3c24xx-simtec-tlv320aic23.o
 obj-$(CONFIG_SND_S3C64XX_SOC_WM8580) += snd-soc-smdk64xx-wm8580.o
+obj-$(CONFIG_SND_SOC_SMDK_WM9713) += snd-soc-smdk-wm9713.o
diff --git a/sound/soc/s3c24xx/smdk_wm9713.c b/sound/soc/s3c24xx/smdk_wm9713.c
new file mode 100644
index 0000000..7dd933f
--- /dev/null
+++ b/sound/soc/s3c24xx/smdk_wm9713.c
@@ -0,0 +1,97 @@
+/*
+ * smdk_wm9713.c  --  SoC audio for SMDK
+ *
+ * Copyright 2010 Samsung Electronics Co. Ltd.
+ * Author: Jaswinder Singh Brar <jassi.brar@samsung.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/device.h>
+#include <sound/soc.h>
+
+#include "../codecs/wm9713.h"
+#include "s3c-dma.h"
+#include "s3c-ac97.h"
+
+static struct snd_soc_card smdk;
+
+/*
+ Playback (HeadPhone):-
+	Headphone Playback Switch - On
+	$ amixer cset numid=4 1
+
+	Right Headphone Out Mux - Headphone
+	$ amixer cset numid=92 2
+	Left Headphone Out Mux - Headphone
+	$ amixer cset numid=93 2
+
+	Right HP Mixer PCM Playback Switch - On
+	$ amixer cset numid=75 1
+	Left HP Mixer PCM Playback Switch - On
+	$ amixer cset numid=81 1
+
+ Capture (LineIn):-
+	Right Capture Source - Line
+	$ amixer cset numid=86 2
+	Left Capture Source - Line
+	$ amixer cset numid=87 2
+*/
+
+static struct snd_soc_dai_link smdk_dai = {
+	.name = "AC97",
+	.stream_name = "AC97 PCM",
+	.cpu_dai = &s3c_ac97_dai[S3C_AC97_DAI_PCM],
+	.codec_dai = &wm9713_dai[WM9713_DAI_AC97_HIFI],
+};
+
+static struct snd_soc_card smdk = {
+	.name = "SMDK",
+	.platform = &s3c24xx_soc_platform,
+	.dai_link = &smdk_dai,
+	.num_links = 1,
+};
+
+static struct snd_soc_device smdk_snd_ac97_devdata = {
+	.card = &smdk,
+	.codec_dev = &soc_codec_dev_wm9713,
+};
+
+static struct platform_device *smdk_snd_ac97_device;
+
+static int __init smdk_init(void)
+{
+	int ret;
+
+	smdk_snd_ac97_device = platform_device_alloc("soc-audio", -1);
+	if (!smdk_snd_ac97_device)
+		return -ENOMEM;
+
+	platform_set_drvdata(smdk_snd_ac97_device,
+			     &smdk_snd_ac97_devdata);
+	smdk_snd_ac97_devdata.dev = &smdk_snd_ac97_device->dev;
+
+	ret = platform_device_add(smdk_snd_ac97_device);
+	if (ret)
+		platform_device_put(smdk_snd_ac97_device);
+
+	return ret;
+}
+
+static void __exit smdk_exit(void)
+{
+	platform_device_unregister(smdk_snd_ac97_device);
+}
+
+module_init(smdk_init);
+module_exit(smdk_exit);
+
+/* Module information */
+MODULE_AUTHOR("Jaswinder Singh Brar, jassi.brar at samsung.com");
+MODULE_DESCRIPTION("ALSA SoC SMDK+WM9713");
+MODULE_LICENSE("GPL");
-- 
1.6.2.5

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCHv2 05/10] ASoC: AC97: SMDK: Add wm9713 machine driver
  2010-01-27  5:59 ` jassisinghbrar at gmail.com
@ 2010-01-28 12:00   ` Mark Brown
  -1 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2010-01-28 12:00 UTC (permalink / raw)
  To: jassisinghbrar
  Cc: alsa-devel, linux-samsung-soc, Jassi Brar, ben-linux,
	linux-arm-kernel, lrg

On Wed, Jan 27, 2010 at 02:59:19PM +0900, jassisinghbrar@gmail.com wrote:

> +	Headphone Playback Switch - On
> +	$ amixer cset numid=4 1
> +

Actually, one thing that really needs fixing here - these instructions
refer to the controls by number.  This is extremely fragile in the face
of any changes in the CODEC driver since the control numbering is worked
out at runtime and any change in the set of controls exported by the
device may change the result.  It is much better to refer to the
controls by name since the names are much less likely to change.  This
is also helpful for people using other UIs which don't display the
control names.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [alsa-devel] [PATCHv2 05/10] ASoC: AC97: SMDK: Add wm9713 machine driver
@ 2010-01-28 12:00   ` Mark Brown
  0 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2010-01-28 12:00 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jan 27, 2010 at 02:59:19PM +0900, jassisinghbrar at gmail.com wrote:

> +	Headphone Playback Switch - On
> +	$ amixer cset numid=4 1
> +

Actually, one thing that really needs fixing here - these instructions
refer to the controls by number.  This is extremely fragile in the face
of any changes in the CODEC driver since the control numbering is worked
out at runtime and any change in the set of controls exported by the
device may change the result.  It is much better to refer to the
controls by name since the names are much less likely to change.  This
is also helpful for people using other UIs which don't display the
control names.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [alsa-devel] [PATCHv2 05/10] ASoC: AC97: SMDK: Add wm9713 machine driver
  2010-01-28 12:00   ` [alsa-devel] " Mark Brown
@ 2010-01-29  1:08     ` jassi brar
  -1 siblings, 0 replies; 8+ messages in thread
From: jassi brar @ 2010-01-29  1:08 UTC (permalink / raw)
  To: Mark Brown
  Cc: alsa-devel, linux-arm-kernel, linux-samsung-soc, Jassi Brar,
	ben-linux, lrg

On Thu, Jan 28, 2010 at 9:00 PM, Mark Brown
<broonie@opensource.wolfsonmicro.com> wrote:
> On Wed, Jan 27, 2010 at 02:59:19PM +0900, jassisinghbrar@gmail.com wrote:
>
>> +     Headphone Playback Switch - On
>> +     $ amixer cset numid=4 1
>> +
>
> Actually, one thing that really needs fixing here - these instructions
> refer to the controls by number.  This is extremely fragile in the face
> of any changes in the CODEC driver since the control numbering is worked
> out at runtime and any change in the set of controls exported by the
> device may change the result.  It is much better to refer to the
> controls by name since the names are much less likely to change.  This
> is also helpful for people using other UIs which don't display the
> control names.
I will submit a patch for it, though I used exact control names and their
values before every command.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [alsa-devel] [PATCHv2 05/10] ASoC: AC97: SMDK: Add wm9713 machine driver
@ 2010-01-29  1:08     ` jassi brar
  0 siblings, 0 replies; 8+ messages in thread
From: jassi brar @ 2010-01-29  1:08 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jan 28, 2010 at 9:00 PM, Mark Brown
<broonie@opensource.wolfsonmicro.com> wrote:
> On Wed, Jan 27, 2010 at 02:59:19PM +0900, jassisinghbrar at gmail.com wrote:
>
>> + ? ? Headphone Playback Switch - On
>> + ? ? $ amixer cset numid=4 1
>> +
>
> Actually, one thing that really needs fixing here - these instructions
> refer to the controls by number. ?This is extremely fragile in the face
> of any changes in the CODEC driver since the control numbering is worked
> out at runtime and any change in the set of controls exported by the
> device may change the result. ?It is much better to refer to the
> controls by name since the names are much less likely to change. ?This
> is also helpful for people using other UIs which don't display the
> control names.
I will submit a patch for it, though I used exact control names and their
values before every command.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [alsa-devel] [PATCHv2 05/10] ASoC: AC97: SMDK: Add wm9713 machine driver
  2010-01-29  1:08     ` jassi brar
@ 2010-01-29  9:55       ` Mark Brown
  -1 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2010-01-29  9:55 UTC (permalink / raw)
  To: jassi brar
  Cc: alsa-devel, linux-samsung-soc, Jassi Brar, ben-linux,
	linux-arm-kernel, lrg

On Fri, Jan 29, 2010 at 10:08:04AM +0900, jassi brar wrote:

> I will submit a patch for it, though I used exact control names and their
> values before every command.

Normally the renumbering happens as a result of a source code change
such as the addition of a new control or some change in ALSA core.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [alsa-devel] [PATCHv2 05/10] ASoC: AC97: SMDK: Add wm9713 machine driver
@ 2010-01-29  9:55       ` Mark Brown
  0 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2010-01-29  9:55 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jan 29, 2010 at 10:08:04AM +0900, jassi brar wrote:

> I will submit a patch for it, though I used exact control names and their
> values before every command.

Normally the renumbering happens as a result of a source code change
such as the addition of a new control or some change in ALSA core.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-01-29  9:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-27  5:59 [PATCHv2 05/10] ASoC: AC97: SMDK: Add wm9713 machine driver jassisinghbrar
2010-01-27  5:59 ` jassisinghbrar at gmail.com
2010-01-28 12:00 ` Mark Brown
2010-01-28 12:00   ` [alsa-devel] " Mark Brown
2010-01-29  1:08   ` jassi brar
2010-01-29  1:08     ` jassi brar
2010-01-29  9:55     ` Mark Brown
2010-01-29  9:55       ` Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.