Skip to contentSkip to conversation

ASoC updates

PATCH In review Mark Brown 2 participants 8 messages Nov 19, 2008

Subsystems (3)
lore
Share & tools
lore

Mark Brown

author
#0 lore raw

cover ASoC updates

The following changes since commit 72f2b894455775b980a5ac7ae70ab560b3d3d247:
Mark Brown (1):

        ASoC: Move uda134x_codec.h to uda134x.h

are available in the git repository at:

git://opensource.wolfsonmicro.com/linux-2.6-asoc for-tiwai

Arun KS (1):
ASoC: Add support for omap2evm board

Hugo Villeneuve (2):
ASoC: Add PCM3008 ALSA SoC driver
ASoC: Add driver for the Lyrtech SFFSDR board

Mark Brown (3):
ASoC: Remove unused snd_soc_machine_config declaration
ASoC: s3c24xx_uda134x DAI accessor functions and static cleanup
ASoC: Convert blackfin machines to use DAI accessor functions

 include/sound/soc.h                 |    1 -
 sound/soc/blackfin/bf5xx-ad73311.c  |    2 +-
 sound/soc/blackfin/bf5xx-ssm2602.c  |    6 +-
 sound/soc/codecs/Kconfig            |    4 +
 sound/soc/codecs/Makefile           |    2 +
 sound/soc/codecs/pcm3008.c          |  201 +++++++++++++++++++++++++++++++++++
 sound/soc/codecs/pcm3008.h          |   25 +++++
 sound/soc/davinci/Kconfig           |   10 ++
 sound/soc/davinci/Makefile          |    2 +
 sound/soc/davinci/davinci-sffsdr.c  |  156 +++++++++++++++++++++++++++
 sound/soc/omap/Kconfig              |    9 ++
 sound/soc/omap/Makefile             |    2 +
 sound/soc/omap/omap2evm.c           |  150 ++++++++++++++++++++++++++
 sound/soc/s3c24xx/s3c24xx_uda134x.c |   27 +++---
 14 files changed, 578 insertions(+), 19 deletions(-)
 create mode 100644 sound/soc/codecs/pcm3008.c
 create mode 100644 sound/soc/codecs/pcm3008.h
 create mode 100644 sound/soc/davinci/davinci-sffsdr.c
 create mode 100644 sound/soc/omap/omap2evm.c
author
#1 lore raw

PATCH 1/6 ASoC: Remove unused snd_soc_machine_config declaration

---
 include/sound/soc.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
include/sound/soc.h +0 -1
index fa1b99b..077dfe4 100644
@@ -228,7 +228,6 @@ struct snd_soc_dai_mode;
 struct snd_soc_pcm_runtime;
 struct snd_soc_dai;
 struct snd_soc_codec;
-struct snd_soc_machine_config;
 struct soc_enum;
 struct snd_soc_ac97_ops;
 struct snd_soc_clock_info;
Signature · 1 line
1.5.6.5
author
#2 lore raw

PATCH 2/6 ASoC: Add PCM3008 ALSA SoC driver

From: Hugo Villeneuve <[email protected]>

The PCM3008 is a 16-bit stereo audio codec. It accepts left-justified format for ADC, and right-justified format for DAC. Independent power-down modes for ADC and DAC are provided, as well as a digital de-emphasis filter (4 modes).

[Merged Makefile & Kconfig, changed asm/gpio.h to linux/gpio.h -- broonie]

---
 sound/soc/codecs/Kconfig   |    4 +
 sound/soc/codecs/Makefile  |    2 +
 sound/soc/codecs/pcm3008.c |  201 ++++++++++++++++++++++++++++++++++++++++++++
 sound/soc/codecs/pcm3008.h |   25 ++++++
 4 files changed, 232 insertions(+), 0 deletions(-)
 create mode 100644 sound/soc/codecs/pcm3008.c
 create mode 100644 sound/soc/codecs/pcm3008.h
sound/soc/codecs/Kconfig +4 -0
index 04f49f5..bf68052 100644
@@ -5,6 +5,7 @@ config SND_SOC_ALL_CODECS
 	select SND_SOC_AD73311 if I2C
 	select SND_SOC_AK4535 if I2C
 	select SND_SOC_CS4270 if I2C
+	select SND_SOC_PCM3008
 	select SND_SOC_SSM2602 if I2C
 	select SND_SOC_TLV320AIC23 if I2C
 	select SND_SOC_TLV320AIC26 if SPI_MASTER
@@ -70,6 +71,9 @@ config SND_SOC_CS4270_VD33_ERRATA
 config SND_SOC_L3
        tristate
 
+config SND_SOC_PCM3008
+       tristate
+
 config SND_SOC_SSM2602
 	tristate
 
sound/soc/codecs/Makefile +2 -0
index de65723..9a20fdd 100644
@@ -4,6 +4,7 @@ snd-soc-ad73311-objs := ad73311.o
 snd-soc-ak4535-objs := ak4535.o
 snd-soc-cs4270-objs := cs4270.o
 snd-soc-l3-objs := l3.o
+snd-soc-pcm3008-objs := pcm3008.o
 snd-soc-ssm2602-objs := ssm2602.o
 snd-soc-tlv320aic23-objs := tlv320aic23.o
 snd-soc-tlv320aic26-objs := tlv320aic26.o
@@ -30,6 +31,7 @@ obj-$(CONFIG_SND_SOC_AD73311) += snd-soc-ad73311.o
 obj-$(CONFIG_SND_SOC_AK4535)	+= snd-soc-ak4535.o
 obj-$(CONFIG_SND_SOC_CS4270)	+= snd-soc-cs4270.o
 obj-$(CONFIG_SND_SOC_L3)	+= snd-soc-l3.o
+obj-$(CONFIG_SND_SOC_PCM3008)	+= snd-soc-pcm3008.o
 obj-$(CONFIG_SND_SOC_SSM2602)	+= snd-soc-ssm2602.o
 obj-$(CONFIG_SND_SOC_TLV320AIC23)	+= snd-soc-tlv320aic23.o
 obj-$(CONFIG_SND_SOC_TLV320AIC26)	+= snd-soc-tlv320aic26.o
sound/soc/codecs/pcm3008.c new file +201 -0

201 lines not on this page · raw message

sound/soc/codecs/pcm3008.h new file +25 -0
new file mode 100644
index 0000000..d04e87d
@@ -0,0 +1,25 @@
+/*
+ * PCM3008 ALSA SoC Layer
+ *
+ * Author:	Hugo Villeneuve
+ * Copyright (C) 2008 Lyrtech inc
+ *
+ * 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.
+ */
+
+#ifndef __LINUX_SND_SOC_PCM3008_H
+#define __LINUX_SND_SOC_PCM3008_H
+
+struct pcm3008_setup_data {
+	unsigned dem0_pin;
+	unsigned dem1_pin;
+	unsigned pdad_pin;
+	unsigned pdda_pin;
+};
+
+extern struct snd_soc_codec_device soc_codec_dev_pcm3008;
+extern struct snd_soc_dai pcm3008_dai;
+
+#endif
Signature · 1 line
1.5.6.5
author
#3 lore raw

PATCH 3/6 ASoC: Add driver for the Lyrtech SFFSDR board

From: Hugo Villeneuve <[email protected]>

The PCM3008 is used on the Lyrtech SFFSDR board, in conjunction with an FPGA that generates the bit clock and the master clock

[Downgraded the rate debug print to pr_debug() in hw_params, converted asm/gpio.h to linux/gpio.h -- broonie]

---
 sound/soc/davinci/Kconfig          |   10 +++
 sound/soc/davinci/Makefile         |    2 +
 sound/soc/davinci/davinci-sffsdr.c |  156 ++++++++++++++++++++++++++++++++++++
 3 files changed, 168 insertions(+), 0 deletions(-)
 create mode 100644 sound/soc/davinci/davinci-sffsdr.c
sound/soc/davinci/Kconfig +10 -0
index 8f7e338..b502741 100644
@@ -17,3 +17,13 @@ config SND_DAVINCI_SOC_EVM
 	help
 	  Say Y if you want to add support for SoC audio on TI
 	  DaVinci EVM platform.
+
+config SND_DAVINCI_SOC_SFFSDR
+	tristate "SoC Audio support for SFFSDR"
+	depends on SND_DAVINCI_SOC && MACH_DAVINCI_SFFSDR
+	select SND_DAVINCI_SOC_I2S
+	select SND_SOC_PCM3008
+	select SFFSDR_FPGA
+	help
+	  Say Y if you want to add support for SoC audio on
+	  Lyrtech SFFSDR board.
sound/soc/davinci/Makefile +2 -0
index ca772e5..ca8bae1 100644
@@ -7,5 +7,7 @@ obj-$(CONFIG_SND_DAVINCI_SOC_I2S) += snd-soc-davinci-i2s.o
 
 # DAVINCI Machine Support
 snd-soc-evm-objs := davinci-evm.o
+snd-soc-sffsdr-objs := davinci-sffsdr.o
 
 obj-$(CONFIG_SND_DAVINCI_SOC_EVM) += snd-soc-evm.o
+obj-$(CONFIG_SND_DAVINCI_SOC_SFFSDR) += snd-soc-sffsdr.o
sound/soc/davinci/davinci-sffsdr.c new file +156 -0

156 lines not on this page · raw message

Signature · 1 line
1.5.6.5
author
#4 lore raw

PATCH 4/6 ASoC: Add support for omap2evm board

From: Arun KS <[email protected]>

This patch adds twl4030 audio support on omap2evm

---
 sound/soc/omap/Kconfig    |    9 +++
 sound/soc/omap/Makefile   |    2 +
 sound/soc/omap/omap2evm.c |  150 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 161 insertions(+), 0 deletions(-)
 create mode 100644 sound/soc/omap/omap2evm.c
sound/soc/omap/Kconfig +9 -0
index cf40e42..6c56277 100644
@@ -30,4 +30,13 @@ config SND_OMAP_SOC_OVERO
 	help
 	  Say Y if you want to add support for SoC audio on the Gumstix Overo.
 
+config SND_OMAP_SOC_OMAP2EVM
+	tristate "SoC Audio support for OMAP2EVM board"
+	depends on SND_OMAP_SOC && MACH_OMAP2EVM
+	select SND_OMAP_SOC_MCBSP
+	select SND_SOC_TWL4030
+	help
+	  Say Y if you want to add support for SoC audio on the omap2evm board.
+
+
 
sound/soc/omap/Makefile +2 -0
index fefc9be..f5da3cc 100644
@@ -9,8 +9,10 @@ obj-$(CONFIG_SND_OMAP_SOC_MCBSP) += snd-soc-omap-mcbsp.o
 snd-soc-n810-objs := n810.o
 snd-soc-osk5912-objs := osk5912.o
 snd-soc-overo-objs := overo.o
+snd-soc-omap2evm-objs := omap2evm.o
 
 obj-$(CONFIG_SND_OMAP_SOC_N810) += snd-soc-n810.o
 obj-$(CONFIG_SND_OMAP_SOC_OSK5912) += snd-soc-osk5912.o
 obj-$(CONFIG_SND_OMAP_SOC_OVERO) += snd-soc-overo.o
+obj-$(CONFIG_MACH_OMAP2EVM) += snd-soc-omap2evm.o
 
sound/soc/omap/omap2evm.c new file +150 -0

150 lines not on this page · raw message

Signature · 1 line
1.5.6.5
author
#5 lore raw

PATCH 5/6 ASoC: s3c24xx_uda134x DAI accessor functions and static cleanup

Missed these during review.

---
 sound/soc/s3c24xx/s3c24xx_uda134x.c |   27 +++++++++++++--------------
 1 files changed, 13 insertions(+), 14 deletions(-)
sound/soc/s3c24xx/s3c24xx_uda134x.c +13 -14
index 487b010..92d90f2 100644
@@ -63,7 +63,7 @@ static struct snd_pcm_hw_constraint_list hw_constraints_rates = {
 
 static struct platform_device *s3c24xx_uda134x_snd_device;
 
-int s3c24xx_uda134x_startup(struct snd_pcm_substream *substream)
+static int s3c24xx_uda134x_startup(struct snd_pcm_substream *substream)
 {
 	int ret = 0;
 #ifdef ENFORCE_RATES
@@ -115,7 +115,7 @@ int s3c24xx_uda134x_startup(struct snd_pcm_substream *substream)
 	return ret;
 }
 
-void s3c24xx_uda134x_shutdown(struct snd_pcm_substream *substream)
+static void s3c24xx_uda134x_shutdown(struct snd_pcm_substream *substream)
 {
 	mutex_lock(&clk_lock);
 	pr_debug("%s %d\n", __func__, clk_users);
@@ -180,39 +180,38 @@ static int s3c24xx_uda134x_hw_params(struct snd_pcm_substream *substream,
 		return -EINVAL;
 	}
 
-	ret = codec_dai->dai_ops.set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
+	ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
 			SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS);
 	if (ret < 0)
 		return ret;
 
-	ret = cpu_dai->dai_ops.set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
+	ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
 			SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS);
 	if (ret < 0)
 		return ret;
 
-	ret = cpu_dai->dai_ops.set_sysclk(cpu_dai, clk_source , clk,
-						SND_SOC_CLOCK_IN);
+	ret = snd_soc_dai_set_sysclk(cpu_dai, clk_source , clk,
+			SND_SOC_CLOCK_IN);
 	if (ret < 0)
 		return ret;
 
-	ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_MCLK,
-						fs_mode);
+	ret = snd_soc_dai_set_clkdiv(cpu_dai, S3C24XX_DIV_MCLK, fs_mode);
 	if (ret < 0)
 		return ret;
 
-	ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_BCLK,
-						S3C2410_IISMOD_32FS);
+	ret = snd_soc_dai_set_clkdiv(cpu_dai, S3C24XX_DIV_BCLK,
+			S3C2410_IISMOD_32FS);
 	if (ret < 0)
 		return ret;
 
-	ret = cpu_dai->dai_ops.set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER,
-					  S3C24XX_PRESCALE(div, div));
+	ret = snd_soc_dai_set_clkdiv(cpu_dai, S3C24XX_DIV_PRESCALER,
+			S3C24XX_PRESCALE(div, div));
 	if (ret < 0)
 		return ret;
 
 	/* set the codec system clock for DAC and ADC */
-	ret = codec_dai->dai_ops.set_sysclk(codec_dai, 0, clk,
-						SND_SOC_CLOCK_OUT);
+	ret = snd_soc_dai_set_sysclk(codec_dai, 0, clk,
+			SND_SOC_CLOCK_OUT);
 	if (ret < 0)
 		return ret;
 
Signature · 1 line
1.5.6.5
author
#6 lore raw

PATCH 6/6 ASoC: Convert blackfin machines to use DAI accessor functions

---
 sound/soc/blackfin/bf5xx-ad73311.c |    2 +-
 sound/soc/blackfin/bf5xx-ssm2602.c |    6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)
sound/soc/blackfin/bf5xx-ad73311.c +1 -1
index 622c9b9..47da49b 100644
@@ -168,7 +168,7 @@ static int bf5xx_ad73311_hw_params(struct snd_pcm_substream *substream,
 		params_format(params));
 
 	/* set cpu DAI configuration */
-	ret = cpu_dai->dai_ops.set_fmt(cpu_dai, SND_SOC_DAIFMT_DSP_A |
+	ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_DSP_A |
 		SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
 	if (ret < 0)
 		return ret;
sound/soc/blackfin/bf5xx-ssm2602.c +3 -3
index e15f67f..744a90e 100644
@@ -92,17 +92,17 @@ static int bf5xx_ssm2602_hw_params(struct snd_pcm_substream *substream,
 	 */
 
 	/* set codec DAI configuration */
-	ret = codec_dai->dai_ops.set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
+	ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |
 		SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
 	if (ret < 0)
 		return ret;
 	/* set cpu DAI configuration */
-	ret = cpu_dai->dai_ops.set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
+	ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |
 		SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
 	if (ret < 0)
 		return ret;
 
-	ret = codec_dai->dai_ops.set_sysclk(codec_dai, SSM2602_SYSCLK, clk,
+	ret = snd_soc_dai_set_sysclk(codec_dai, SSM2602_SYSCLK, clk,
 		SND_SOC_CLOCK_IN);
 	if (ret < 0)
 		return ret;
Signature · 1 line
1.5.6.5
#7 lore raw
In reply to Mark Brown

At Wed, 19 Nov 2008 13:34:27 +0000,

Quoted 8 lines · Mark Brown

The following changes since commit 72f2b894455775b980a5ac7ae70ab560b3d3d247:
Mark Brown (1):

        ASoC: Move uda134x_codec.h to uda134x.h

are available in the git repository at:

git://opensource.wolfsonmicro.com/linux-2.6-asoc for-tiwai

Pulled now. Thanks.

Takashi