All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ASoC: SSM2602: add SPI support
@ 2011-04-07  6:05 Mike Frysinger
  2011-04-08  0:35 ` Mark Brown
  0 siblings, 1 reply; 5+ messages in thread
From: Mike Frysinger @ 2011-04-07  6:05 UTC (permalink / raw)
  To: alsa-devel, Liam Girdwood, Mark Brown; +Cc: device-drivers-devel

The ssm2602 codec has a SPI interface as well as I2C, so add the simple
bit of glue to make it usable.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 sound/soc/codecs/Kconfig   |    2 +-
 sound/soc/codecs/ssm2602.c |   56 ++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 53 insertions(+), 5 deletions(-)

diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index e24d075..910bb66 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -40,7 +40,7 @@ config SND_SOC_ALL_CODECS
 	select SND_SOC_MAX9877 if I2C
 	select SND_SOC_PCM3008
 	select SND_SOC_SPDIF
-	select SND_SOC_SSM2602 if I2C
+	select SND_SOC_SSM2602 if SND_SOC_I2C_AND_SPI
 	select SND_SOC_SSM2604 if I2C
 	select SND_SOC_STAC9766 if SND_SOC_AC97_BUS
 	select SND_SOC_TLV320AIC23 if I2C
diff --git a/sound/soc/codecs/ssm2602.c b/sound/soc/codecs/ssm2602.c
index 6b12cff..86fb64c 100644
--- a/sound/soc/codecs/ssm2602.c
+++ b/sound/soc/codecs/ssm2602.c
@@ -32,6 +32,7 @@
 #include <linux/delay.h>
 #include <linux/pm.h>
 #include <linux/i2c.h>
+#include <linux/spi/spi.h>
 #include <linux/platform_device.h>
 #include <linux/slab.h>
 #include <sound/core.h>
@@ -504,6 +505,43 @@ static struct snd_soc_codec_driver soc_codec_dev_ssm2602 = {
 	.reg_cache_default = ssm2602_reg,
 };
 
+#if defined(CONFIG_SPI_MASTER)
+static int __devinit ssm2602_spi_probe(struct spi_device *spi)
+{
+	struct ssm2602_priv *ssm2602;
+	int ret;
+
+	ssm2602 = kzalloc(sizeof(struct ssm2602_priv), GFP_KERNEL);
+	if (ssm2602 == NULL)
+		return -ENOMEM;
+
+	spi_set_drvdata(spi, ssm2602);
+	ssm2602->control_type = SND_SOC_SPI;
+
+	ret = snd_soc_register_codec(&spi->dev,
+			&soc_codec_dev_ssm2602, &ssm2602_dai, 1);
+	if (ret < 0)
+		kfree(ssm2602);
+	return ret;
+}
+
+static int __devexit ssm2602_spi_remove(struct spi_device *spi)
+{
+	snd_soc_unregister_codec(&spi->dev);
+	kfree(spi_get_drvdata(spi));
+	return 0;
+}
+
+static struct spi_driver ssm2602_spi_driver = {
+	.driver = {
+		.name	= "ssm2602",
+		.owner	= THIS_MODULE,
+	},
+	.probe		= ssm2602_spi_probe,
+	.remove		= __devexit_p(ssm2602_spi_remove),
+};
+#endif
+
 #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
 /*
  * ssm2602 2 wire address is determined by GPIO5
@@ -560,19 +598,29 @@ static struct i2c_driver ssm2602_i2c_driver = {
 static int __init ssm2602_modinit(void)
 {
 	int ret = 0;
+
+#if defined(CONFIG_SPI_MASTER)
+	ret = spi_register_driver(&ssm2602_spi_driver);
+	if (ret)
+		return ret;
+#endif
+
 #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
 	ret = i2c_add_driver(&ssm2602_i2c_driver);
-	if (ret != 0) {
-		printk(KERN_ERR "Failed to register SSM2602 I2C driver: %d\n",
-		       ret);
-	}
+	if (ret)
+		return ret;
 #endif
+
 	return ret;
 }
 module_init(ssm2602_modinit);
 
 static void __exit ssm2602_exit(void)
 {
+#if defined(CONFIG_SPI_MASTER)
+	spi_unregister_driver(&ssm2602_spi_driver);
+#endif
+
 #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
 	i2c_del_driver(&ssm2602_i2c_driver);
 #endif
-- 
1.7.4.1

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

* Re: [PATCH] ASoC: SSM2602: add SPI support
  2011-04-07  6:05 [PATCH] ASoC: SSM2602: add SPI support Mike Frysinger
@ 2011-04-08  0:35 ` Mark Brown
  2011-04-08  2:32   ` [Device-drivers-devel] " Mike Frysinger
  0 siblings, 1 reply; 5+ messages in thread
From: Mark Brown @ 2011-04-08  0:35 UTC (permalink / raw)
  To: Mike Frysinger; +Cc: alsa-devel, device-drivers-devel, Liam Girdwood

On Thu, Apr 07, 2011 at 02:05:11AM -0400, Mike Frysinger wrote:
> The ssm2602 codec has a SPI interface as well as I2C, so add the simple
> bit of glue to make it usable.
> 
> Signed-off-by: Mike Frysinger <vapier@gentoo.org>

Applied, but the patch didn't apply cleanly - please check that I
resolved it OK.

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

* Re: [Device-drivers-devel] [PATCH] ASoC: SSM2602: add SPI support
  2011-04-08  0:35 ` Mark Brown
@ 2011-04-08  2:32   ` Mike Frysinger
  2011-04-08  6:14     ` Mark Brown
  0 siblings, 1 reply; 5+ messages in thread
From: Mike Frysinger @ 2011-04-08  2:32 UTC (permalink / raw)
  To: Mark Brown; +Cc: alsa-devel, device-drivers-devel, Liam Girdwood

On Thu, Apr 7, 2011 at 20:35, Mark Brown wrote:
> On Thu, Apr 07, 2011 at 02:05:11AM -0400, Mike Frysinger wrote:
>> The ssm2602 codec has a SPI interface as well as I2C, so add the simple
>> bit of glue to make it usable.
>
> Applied, but the patch didn't apply cleanly - please check that I
> resolved it OK.

sorry about that ... i was thinking there shouldnt be any conflicts in
the codec since i'm the only one sending patches ;).  but i guess
you're referring to just the Kconfig ?

what git tree / branch did you merge into ?  i checked tiwai's
sound-2.6.git and the linux-2.6-asoc.git on
opensource.wolfsonmicro.com, but couldnt see this changeset ...
-mike

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

* Re: [Device-drivers-devel] [PATCH] ASoC: SSM2602: add SPI support
  2011-04-08  2:32   ` [Device-drivers-devel] " Mike Frysinger
@ 2011-04-08  6:14     ` Mark Brown
  2011-04-08  6:29       ` Mike Frysinger
  0 siblings, 1 reply; 5+ messages in thread
From: Mark Brown @ 2011-04-08  6:14 UTC (permalink / raw)
  To: Mike Frysinger; +Cc: alsa-devel, device-drivers-devel, Liam Girdwood

On Thu, Apr 07, 2011 at 10:32:21PM -0400, Mike Frysinger wrote:

> sorry about that ... i was thinking there shouldnt be any conflicts in
> the codec since i'm the only one sending patches ;).  but i guess
> you're referring to just the Kconfig ?

It was just Kconfig I think.

> what git tree / branch did you merge into ?  i checked tiwai's
> sound-2.6.git and the linux-2.6-asoc.git on
> opensource.wolfsonmicro.com, but couldnt see this changeset ...

My 2.6.40 on kernel.org.

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

* Re: [Device-drivers-devel] [PATCH] ASoC: SSM2602: add SPI support
  2011-04-08  6:14     ` Mark Brown
@ 2011-04-08  6:29       ` Mike Frysinger
  0 siblings, 0 replies; 5+ messages in thread
From: Mike Frysinger @ 2011-04-08  6:29 UTC (permalink / raw)
  To: Mark Brown; +Cc: alsa-devel, device-drivers-devel, Liam Girdwood

On Fri, Apr 8, 2011 at 02:14, Mark Brown wrote:
> On Thu, Apr 07, 2011 at 10:32:21PM -0400, Mike Frysinger wrote:
>> sorry about that ... i was thinking there shouldnt be any conflicts in
>> the codec since i'm the only one sending patches ;).  but i guess
>> you're referring to just the Kconfig ?
>
> It was just Kconfig I think.
>
>> what git tree / branch did you merge into ?  i checked tiwai's
>> sound-2.6.git and the linux-2.6-asoc.git on
>> opensource.wolfsonmicro.com, but couldnt see this changeset ...
>
> My 2.6.40 on kernel.org.

ok, your manual merge looks fine of course.  thanks.
-mike
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

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

end of thread, other threads:[~2011-04-08  6:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-07  6:05 [PATCH] ASoC: SSM2602: add SPI support Mike Frysinger
2011-04-08  0:35 ` Mark Brown
2011-04-08  2:32   ` [Device-drivers-devel] " Mike Frysinger
2011-04-08  6:14     ` Mark Brown
2011-04-08  6:29       ` Mike Frysinger

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.