diff for duplicates of <4BFDCE81.6050802@eukrea.com> diff --git a/a/1.txt b/N1/1.txt index f8b63f2..809f299 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,6 +1,6 @@ Hi Mark, -Le 27/05/2010 02:57, Mark Brown a écrit : +Le 27/05/2010 02:57, Mark Brown a ?crit : > On Wed, May 26, 2010 at 06:37:53PM +0200, Eric B??nard wrote: >> * without this fix, the waveform on the SSI port are not real >> I2S signal (at least on i.MX27's SSI4) diff --git a/a/2.hdr b/a/2.hdr deleted file mode 100644 index a7c0553..0000000 --- a/a/2.hdr +++ /dev/null @@ -1,5 +0,0 @@ -Content-Type: text/x-patch; - name="0002-soc-imx-add-eukrea-tlv320.patch" -Content-Disposition: attachment; - filename="0002-soc-imx-add-eukrea-tlv320.patch" -Content-Transfer-Encoding: quoted-printable diff --git a/a/2.txt b/a/2.txt deleted file mode 100644 index 9884b92..0000000 --- a/a/2.txt +++ /dev/null @@ -1,184 +0,0 @@ ->From abf32c7690420cf313989c1adbf4ea03c3cf6250 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com> -Date: Wed, 26 May 2010 21:16:54 +0200 -Subject: [PATCH 2/4] soc/imx: add eukrea-tlv320 -MIME-Version: 1.0 -Content-Type: text/plain; charset=utf-8 -Content-Transfer-Encoding: 8bit - -Add the necessary files to support the TLV320AIC23B wired in I2S -on our i.MX platforms. - -Signed-off-by: Eric Bénard <eric@eukrea.com> ---- - sound/soc/imx/Kconfig | 8 +++ - sound/soc/imx/Makefile | 2 + - sound/soc/imx/eukrea-tlv320.c | 131 +++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 141 insertions(+), 0 deletions(-) - create mode 100644 sound/soc/imx/eukrea-tlv320.c - -diff --git a/sound/soc/imx/Kconfig b/sound/soc/imx/Kconfig -index 7174b4c..3e27b16 100644 ---- a/sound/soc/imx/Kconfig -+++ b/sound/soc/imx/Kconfig -@@ -11,3 +11,11 @@ config SND_IMX_SOC - config SND_MXC_SOC_SSI - tristate - -+config SND_SOC_EUKREA_TLV320 -+ bool "Eukrea TLV320" -+ depends on MACH_EUKREA_MBIMX27_BASEBOARD -+ select SND_IMX_SOC -+ select SND_SOC_TLV320AIC23 -+ help -+ Enable I2S based access to the TLV320AIC23B codec attached -+ to the SSI4 interface -diff --git a/sound/soc/imx/Makefile b/sound/soc/imx/Makefile -index 9f8bb92..28d4b1e 100644 ---- a/sound/soc/imx/Makefile -+++ b/sound/soc/imx/Makefile -@@ -10,3 +10,5 @@ obj-$(CONFIG_SND_IMX_SOC) += snd-soc-imx.o - # i.MX Machine Support - snd-soc-phycore-ac97-objs := phycore-ac97.o - obj-$(CONFIG_SND_SOC_PHYCORE_AC97) += snd-soc-phycore-ac97.o -+snd-soc-eukrea-tlv320-objs := eukrea-tlv320.o -+obj-$(CONFIG_SND_SOC_EUKREA_TLV320) += snd-soc-eukrea-tlv320.o -diff --git a/sound/soc/imx/eukrea-tlv320.c b/sound/soc/imx/eukrea-tlv320.c -new file mode 100644 -index 0000000..e368787 ---- /dev/null -+++ b/sound/soc/imx/eukrea-tlv320.c -@@ -0,0 +1,131 @@ -+/* -+ * eukrea-tlv320.c -- SoC audio for eukrea_cpuimxXX in I2S mode -+ * -+ * Copyright 2010 Eric Bénard, Eukréa Electromatique <eric@eukrea.com> -+ * -+ * based on sound/soc/s3c24xx/s3c24xx_simtec_tlv320aic23.c -+ * which is Copyright 2009 Simtec Electronics -+ * and on sound/soc/imx/phycore-ac97.c which is -+ * Copyright 2009 Sascha Hauer, Pengutronix <s.hauer@pengutronix.de> -+ * -+ * 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/moduleparam.h> -+#include <linux/device.h> -+#include <linux/i2c.h> -+#include <sound/core.h> -+#include <sound/pcm.h> -+#include <sound/soc.h> -+#include <sound/soc-dapm.h> -+#include <asm/mach-types.h> -+ -+#include "../codecs/tlv320aic23.h" -+#include "imx-ssi.h" -+ -+#define CODEC_CLOCK 12000000 -+ -+static int eukrea_tlv320_hw_params(struct snd_pcm_substream *substream, -+ struct snd_pcm_hw_params *params) -+{ -+ struct snd_soc_pcm_runtime *rtd = substream->private_data; -+ struct snd_soc_dai *codec_dai = rtd->dai->codec_dai; -+ struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; -+ int ret; -+ -+ /* Set the CODEC as the bus clock master, 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) { -+ pr_err("%s: failed set cpu dai format\n", __func__); -+ return ret; -+ } -+ -+ /* Set the CODEC as the bus clock master */ -+ ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S | -+ SND_SOC_DAIFMT_NB_NF | -+ SND_SOC_DAIFMT_CBM_CFM); -+ if (ret) { -+ pr_err("%s: failed set codec dai format\n", __func__); -+ return ret; -+ } -+ -+ /* Set the codec system clock for DAC and ADC */ -+ ret = snd_soc_dai_set_sysclk(codec_dai, 0, -+ CODEC_CLOCK, SND_SOC_CLOCK_IN); -+ if (ret) { -+ pr_err("%s: failed setting codec sysclk\n", __func__); -+ return ret; -+ } -+ -+ return 0; -+} -+ -+static struct snd_soc_ops eukrea_tlv320_snd_ops = { -+ .hw_params = eukrea_tlv320_hw_params, -+}; -+ -+static struct snd_soc_dai_link eukrea_tlv320_dai = { -+ .name = "tlv320aic23", -+ .stream_name = "TLV320AIC23", -+ .codec_dai = &tlv320aic23_dai, -+ .ops = &eukrea_tlv320_snd_ops, -+}; -+ -+static struct snd_soc_card eukrea_tlv320 = { -+ .name = "cpuimx-audio", -+ .platform = &imx_soc_platform, -+ .dai_link = &eukrea_tlv320_dai, -+ .num_links = 1, -+}; -+ -+static struct snd_soc_device eukrea_tlv320_snd_devdata = { -+ .card = &eukrea_tlv320, -+ .codec_dev = &soc_codec_dev_tlv320aic23, -+}; -+ -+static struct platform_device *eukrea_tlv320_snd_device; -+ -+static int __init eukrea_tlv320_init(void) -+{ -+ int ret; -+ -+ if (!machine_is_eukrea_cpuimx27()) -+ /* return happy. We might run on a totally different machine */ -+ return 0; -+ -+ eukrea_tlv320_snd_device = platform_device_alloc("soc-audio", -1); -+ if (!eukrea_tlv320_snd_device) -+ return -ENOMEM; -+ -+ eukrea_tlv320_dai.cpu_dai = &imx_ssi_pcm_dai[0]; -+ -+ platform_set_drvdata(eukrea_tlv320_snd_device, &eukrea_tlv320_snd_devdata); -+ eukrea_tlv320_snd_devdata.dev = &eukrea_tlv320_snd_device->dev; -+ ret = platform_device_add(eukrea_tlv320_snd_device); -+ -+ if (ret) { -+ printk(KERN_ERR "ASoC: Platform device allocation failed\n"); -+ platform_device_put(eukrea_tlv320_snd_device); -+ } -+ -+ return ret; -+} -+ -+static void __exit eukrea_tlv320_exit(void) -+{ -+ platform_device_unregister(eukrea_tlv320_snd_device); -+} -+ -+module_init(eukrea_tlv320_init); -+module_exit(eukrea_tlv320_exit); -+ -+MODULE_AUTHOR("Eric Bénard <eric@eukrea.com>"); -+MODULE_DESCRIPTION("CPUIMX ALSA SoC driver"); -+MODULE_LICENSE("GPL"); --- -1.6.3.3 diff --git a/a/3.hdr b/a/3.hdr deleted file mode 100644 index bc4f182..0000000 --- a/a/3.hdr +++ /dev/null @@ -1,5 +0,0 @@ -Content-Type: text/x-patch; - name="0003-eukrea_mbimx27-add-audio-codec.patch" -Content-Disposition: attachment; - filename="0003-eukrea_mbimx27-add-audio-codec.patch" -Content-Transfer-Encoding: quoted-printable diff --git a/a/3.txt b/a/3.txt deleted file mode 100644 index 5ea4d76..0000000 --- a/a/3.txt +++ /dev/null @@ -1,110 +0,0 @@ ->From 24c2e0f732a2d95db2d5776539824632e0b08572 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com> -Date: Wed, 26 May 2010 21:18:35 +0200 -Subject: [PATCH 3/4] eukrea_mbimx27: add audio codec -MIME-Version: 1.0 -Content-Type: text/plain; charset=utf-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Eric Bénard <eric@eukrea.com> ---- - arch/arm/mach-mx2/eukrea_mbimx27-baseboard.c | 44 +++++++++++++++++++++++++- - 1 files changed, 43 insertions(+), 1 deletions(-) - -diff --git a/arch/arm/mach-mx2/eukrea_mbimx27-baseboard.c b/arch/arm/mach-mx2/eukrea_mbimx27-baseboard.c -index 34bdc26..471dbd2 100644 ---- a/arch/arm/mach-mx2/eukrea_mbimx27-baseboard.c -+++ b/arch/arm/mach-mx2/eukrea_mbimx27-baseboard.c -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2009 Eric Benard - eric@eukrea.com -+ * Copyright (C) 2009-2010 Eric Benard - eric@eukrea.com - * - * Based on pcm970-baseboard.c which is : - * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de) -@@ -37,6 +37,8 @@ - #include <mach/mmc.h> - #include <mach/imx-uart.h> - #include <mach/spi.h> -+#include <mach/ssi.h> -+#include <mach/audmux.h> - - #include "devices.h" - -@@ -93,6 +95,13 @@ static int eukrea_mbimx27_pins[] = { - PD29_PF_CSPI1_SCLK, - PD30_PF_CSPI1_MISO, - PD31_PF_CSPI1_MOSI, -+ /* SSI4 */ -+#if defined(CONFIG_SND_SOC_EUKREA_TLV320) -+ PC16_PF_SSI4_FS, -+ PC17_PF_SSI4_RXD | GPIO_PUEN, -+ PC18_PF_SSI4_TXD | GPIO_PUEN, -+ PC19_PF_SSI4_CLK, -+#endif - }; - - static const uint32_t eukrea_mbimx27_keymap[] = { -@@ -287,6 +296,12 @@ static struct spi_board_info eukrea_mbimx27_spi_board_info[] __initdata = { - }, - }; - -+static struct i2c_board_info eukrea_mbimx27_i2c_devices[] = { -+ { -+ I2C_BOARD_INFO("tlv320aic23", 0x1a), -+ }, -+}; -+ - static int eukrea_mbimx27_spi_cs[] = {GPIO_PORTD | 28}; - - static struct spi_imx_master eukrea_mbimx27_spi_0_data = { -@@ -303,6 +318,10 @@ static struct imxmmc_platform_data sdhc_pdata = { - .dat3_card_detect = 1, - }; - -+struct imx_ssi_platform_data eukrea_mbimx27_ssi_pdata = { -+ .flags = IMX_SSI_DMA, -+}; -+ - /* - * system init for baseboard usage. Will be called by cpuimx27 init. - * -@@ -314,6 +333,24 @@ void __init eukrea_mbimx27_baseboard_init(void) - mxc_gpio_setup_multiple_pins(eukrea_mbimx27_pins, - ARRAY_SIZE(eukrea_mbimx27_pins), "MBIMX27"); - -+#if defined(CONFIG_SND_SOC_EUKREA_TLV320) -+ /* SSI unit master I2S codec connected to SSI_PINS_4*/ -+ mxc_audmux_v1_configure_port(MX27_AUDMUX_HPCR1_SSI0, -+ MXC_AUDMUX_V1_PCR_SYN | -+ MXC_AUDMUX_V1_PCR_TFSDIR | -+ MXC_AUDMUX_V1_PCR_TCLKDIR | -+ MXC_AUDMUX_V1_PCR_RFSDIR | -+ MXC_AUDMUX_V1_PCR_RCLKDIR | -+ MXC_AUDMUX_V1_PCR_TFCSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4) | -+ MXC_AUDMUX_V1_PCR_RFCSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4) | -+ MXC_AUDMUX_V1_PCR_RXDSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4) -+ ); -+ mxc_audmux_v1_configure_port(MX27_AUDMUX_HPCR3_SSI_PINS_4, -+ MXC_AUDMUX_V1_PCR_SYN | -+ MXC_AUDMUX_V1_PCR_RXDSEL(MX27_AUDMUX_HPCR1_SSI0) -+ ); -+#endif -+ - mxc_register_device(&mxc_uart_device1, &uart_pdata[0]); - mxc_register_device(&mxc_uart_device2, &uart_pdata[1]); - #if !defined(MACH_EUKREA_CPUIMX27_USEUART4) -@@ -323,6 +360,11 @@ void __init eukrea_mbimx27_baseboard_init(void) - mxc_register_device(&mxc_fb_device, &eukrea_mbimx27_fb_data); - mxc_register_device(&mxc_sdhc_device0, &sdhc_pdata); - -+ i2c_register_board_info(0, eukrea_mbimx27_i2c_devices, -+ ARRAY_SIZE(eukrea_mbimx27_i2c_devices)); -+ -+ mxc_register_device(&imx_ssi_device0, &eukrea_mbimx27_ssi_pdata); -+ - #if defined(CONFIG_TOUCHSCREEN_ADS7846) \ - || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE) - /* ADS7846 Touchscreen controller init */ --- -1.6.3.3 diff --git a/a/4.hdr b/a/4.hdr deleted file mode 100644 index 4b86001..0000000 --- a/a/4.hdr +++ /dev/null @@ -1,4 +0,0 @@ -Content-Type: text/plain; charset="us-ascii" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Content-Disposition: inline diff --git a/a/4.txt b/a/4.txt deleted file mode 100644 index 1b730e0..0000000 --- a/a/4.txt +++ /dev/null @@ -1,4 +0,0 @@ -_______________________________________________ -Alsa-devel mailing list -Alsa-devel@alsa-project.org -http://mailman.alsa-project.org/mailman/listinfo/alsa-devel diff --git a/a/content_digest b/N1/content_digest index b8537df..6b357d0 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,17 +1,14 @@ "ref\01274891873-3704-1-git-send-email-eric@eukrea.com\0" "ref\020100527005756.GD22091@sirena.org.uk\0" - "From\0Eric B\303\251nard <eric@eukrea.com>\0" - "Subject\0Re: [PATCH] imx-ssi.c: fix I2S slave setup\0" + "From\0eric@eukrea.com (Eric B\303\251nard)\0" + "Subject\0[alsa-devel] [PATCH] imx-ssi.c: fix I2S slave setup\0" "Date\0Thu, 27 May 2010 03:44:33 +0200\0" - "To\0Mark Brown <broonie@opensource.wolfsonmicro.com>\0" - "Cc\0s.hauer@pengutronix.de" - alsa-devel@alsa-project.org - " linux-arm-kernel@lists.infradead.org\0" - "\01:1\0" + "To\0linux-arm-kernel@lists.infradead.org\0" + "\00:1\0" "b\0" "Hi Mark,\n" "\n" - "Le 27/05/2010 02:57, Mark Brown a \303\251crit :\n" + "Le 27/05/2010 02:57, Mark Brown a ?crit :\n" "> On Wed, May 26, 2010 at 06:37:53PM +0200, Eric B??nard wrote:\n" ">> * without this fix, the waveform on the SSI port are not real\n" ">> I2S signal (at least on i.MX27's SSI4)\n" @@ -31,311 +28,5 @@ "i.MX27 board because the bug may be there :-)\n" "\n" Eric - "\01:2\0" - "fn\00002-soc-imx-add-eukrea-tlv320.patch\0" - "b\0" - ">From abf32c7690420cf313989c1adbf4ea03c3cf6250 Mon Sep 17 00:00:00 2001\n" - "From: =?utf-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com>\n" - "Date: Wed, 26 May 2010 21:16:54 +0200\n" - "Subject: [PATCH 2/4] soc/imx: add eukrea-tlv320\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=utf-8\n" - "Content-Transfer-Encoding: 8bit\n" - "\n" - "Add the necessary files to support the TLV320AIC23B wired in I2S\n" - "on our i.MX platforms.\n" - "\n" - "Signed-off-by: Eric B\303\251nard <eric@eukrea.com>\n" - "---\n" - " sound/soc/imx/Kconfig | 8 +++\n" - " sound/soc/imx/Makefile | 2 +\n" - " sound/soc/imx/eukrea-tlv320.c | 131 +++++++++++++++++++++++++++++++++++++++++\n" - " 3 files changed, 141 insertions(+), 0 deletions(-)\n" - " create mode 100644 sound/soc/imx/eukrea-tlv320.c\n" - "\n" - "diff --git a/sound/soc/imx/Kconfig b/sound/soc/imx/Kconfig\n" - "index 7174b4c..3e27b16 100644\n" - "--- a/sound/soc/imx/Kconfig\n" - "+++ b/sound/soc/imx/Kconfig\n" - "@@ -11,3 +11,11 @@ config SND_IMX_SOC\n" - " config SND_MXC_SOC_SSI\n" - " \ttristate\n" - " \n" - "+config SND_SOC_EUKREA_TLV320\n" - "+\tbool \"Eukrea TLV320\"\n" - "+\tdepends on MACH_EUKREA_MBIMX27_BASEBOARD\n" - "+\tselect SND_IMX_SOC\n" - "+\tselect SND_SOC_TLV320AIC23\n" - "+\thelp\n" - "+\t Enable I2S based access to the TLV320AIC23B codec attached\n" - "+\t to the SSI4 interface\n" - "diff --git a/sound/soc/imx/Makefile b/sound/soc/imx/Makefile\n" - "index 9f8bb92..28d4b1e 100644\n" - "--- a/sound/soc/imx/Makefile\n" - "+++ b/sound/soc/imx/Makefile\n" - "@@ -10,3 +10,5 @@ obj-$(CONFIG_SND_IMX_SOC) += snd-soc-imx.o\n" - " # i.MX Machine Support\n" - " snd-soc-phycore-ac97-objs := phycore-ac97.o\n" - " obj-$(CONFIG_SND_SOC_PHYCORE_AC97) += snd-soc-phycore-ac97.o\n" - "+snd-soc-eukrea-tlv320-objs := eukrea-tlv320.o\n" - "+obj-$(CONFIG_SND_SOC_EUKREA_TLV320) += snd-soc-eukrea-tlv320.o\n" - "diff --git a/sound/soc/imx/eukrea-tlv320.c b/sound/soc/imx/eukrea-tlv320.c\n" - "new file mode 100644\n" - "index 0000000..e368787\n" - "--- /dev/null\n" - "+++ b/sound/soc/imx/eukrea-tlv320.c\n" - "@@ -0,0 +1,131 @@\n" - "+/*\n" - "+ * eukrea-tlv320.c -- SoC audio for eukrea_cpuimxXX in I2S mode\n" - "+ *\n" - "+ * Copyright 2010 Eric B\303\251nard, Eukr\303\251a Electromatique <eric@eukrea.com>\n" - "+ *\n" - "+ * based on sound/soc/s3c24xx/s3c24xx_simtec_tlv320aic23.c\n" - "+ * which is Copyright 2009 Simtec Electronics\n" - "+ * and on sound/soc/imx/phycore-ac97.c which is\n" - "+ * Copyright 2009 Sascha Hauer, Pengutronix <s.hauer@pengutronix.de>\n" - "+ *\n" - "+ * This program is free software; you can redistribute it and/or modify it\n" - "+ * under the terms of the GNU General Public License as published by the\n" - "+ * Free Software Foundation; either version 2 of the License, or (at your\n" - "+ * option) any later version.\n" - "+ *\n" - "+ */\n" - "+\n" - "+#include <linux/module.h>\n" - "+#include <linux/moduleparam.h>\n" - "+#include <linux/device.h>\n" - "+#include <linux/i2c.h>\n" - "+#include <sound/core.h>\n" - "+#include <sound/pcm.h>\n" - "+#include <sound/soc.h>\n" - "+#include <sound/soc-dapm.h>\n" - "+#include <asm/mach-types.h>\n" - "+\n" - "+#include \"../codecs/tlv320aic23.h\"\n" - "+#include \"imx-ssi.h\"\n" - "+\n" - "+#define CODEC_CLOCK 12000000\n" - "+\n" - "+static int eukrea_tlv320_hw_params(struct snd_pcm_substream *substream,\n" - "+\t\t\t struct snd_pcm_hw_params *params)\n" - "+{\n" - "+\tstruct snd_soc_pcm_runtime *rtd = substream->private_data;\n" - "+\tstruct snd_soc_dai *codec_dai = rtd->dai->codec_dai;\n" - "+\tstruct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;\n" - "+\tint ret;\n" - "+\n" - "+\t/* Set the CODEC as the bus clock master, I2S */\n" - "+\tret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_I2S |\n" - "+\t\t\t\t SND_SOC_DAIFMT_NB_NF |\n" - "+\t\t\t\t SND_SOC_DAIFMT_CBM_CFM);\n" - "+\tif (ret) {\n" - "+\t\tpr_err(\"%s: failed set cpu dai format\\n\", __func__);\n" - "+\t\treturn ret;\n" - "+\t}\n" - "+\n" - "+\t/* Set the CODEC as the bus clock master */\n" - "+\tret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_I2S |\n" - "+\t\t\t\t SND_SOC_DAIFMT_NB_NF |\n" - "+\t\t\t\t SND_SOC_DAIFMT_CBM_CFM);\n" - "+\tif (ret) {\n" - "+\t\tpr_err(\"%s: failed set codec dai format\\n\", __func__);\n" - "+\t\treturn ret;\n" - "+\t}\n" - "+\n" - "+\t/* Set the codec system clock for DAC and ADC */\n" - "+\tret = snd_soc_dai_set_sysclk(codec_dai, 0,\n" - "+\t\t\t\t CODEC_CLOCK, SND_SOC_CLOCK_IN);\n" - "+\tif (ret) {\n" - "+\t\tpr_err(\"%s: failed setting codec sysclk\\n\", __func__);\n" - "+\t\treturn ret;\n" - "+\t}\n" - "+\n" - "+\treturn 0;\n" - "+}\n" - "+\n" - "+static struct snd_soc_ops eukrea_tlv320_snd_ops = {\n" - "+\t.hw_params\t= eukrea_tlv320_hw_params,\n" - "+};\n" - "+\n" - "+static struct snd_soc_dai_link eukrea_tlv320_dai = {\n" - "+\t.name\t\t= \"tlv320aic23\",\n" - "+\t.stream_name\t= \"TLV320AIC23\",\n" - "+\t.codec_dai\t= &tlv320aic23_dai,\n" - "+\t.ops\t\t= &eukrea_tlv320_snd_ops,\n" - "+};\n" - "+\n" - "+static struct snd_soc_card eukrea_tlv320 = {\n" - "+\t.name\t\t= \"cpuimx-audio\",\n" - "+\t.platform\t= &imx_soc_platform,\n" - "+\t.dai_link\t= &eukrea_tlv320_dai,\n" - "+\t.num_links\t= 1,\n" - "+};\n" - "+\n" - "+static struct snd_soc_device eukrea_tlv320_snd_devdata = {\n" - "+\t.card\t\t= &eukrea_tlv320,\n" - "+\t.codec_dev\t= &soc_codec_dev_tlv320aic23,\n" - "+};\n" - "+\n" - "+static struct platform_device *eukrea_tlv320_snd_device;\n" - "+\n" - "+static int __init eukrea_tlv320_init(void)\n" - "+{\n" - "+\tint ret;\n" - "+\n" - "+\tif (!machine_is_eukrea_cpuimx27())\n" - "+\t\t/* return happy. We might run on a totally different machine */\n" - "+\t\treturn 0;\n" - "+\n" - "+\teukrea_tlv320_snd_device = platform_device_alloc(\"soc-audio\", -1);\n" - "+\tif (!eukrea_tlv320_snd_device)\n" - "+\t\treturn -ENOMEM;\n" - "+\n" - "+\teukrea_tlv320_dai.cpu_dai = &imx_ssi_pcm_dai[0];\n" - "+\n" - "+\tplatform_set_drvdata(eukrea_tlv320_snd_device, &eukrea_tlv320_snd_devdata);\n" - "+\teukrea_tlv320_snd_devdata.dev = &eukrea_tlv320_snd_device->dev;\n" - "+\tret = platform_device_add(eukrea_tlv320_snd_device);\n" - "+\n" - "+\tif (ret) {\n" - "+\t\tprintk(KERN_ERR \"ASoC: Platform device allocation failed\\n\");\n" - "+\t\tplatform_device_put(eukrea_tlv320_snd_device);\n" - "+\t}\n" - "+\n" - "+\treturn ret;\n" - "+}\n" - "+\n" - "+static void __exit eukrea_tlv320_exit(void)\n" - "+{\n" - "+\tplatform_device_unregister(eukrea_tlv320_snd_device);\n" - "+}\n" - "+\n" - "+module_init(eukrea_tlv320_init);\n" - "+module_exit(eukrea_tlv320_exit);\n" - "+\n" - "+MODULE_AUTHOR(\"Eric B\303\251nard <eric@eukrea.com>\");\n" - "+MODULE_DESCRIPTION(\"CPUIMX ALSA SoC driver\");\n" - "+MODULE_LICENSE(\"GPL\");\n" - "-- \n" - 1.6.3.3 - "\01:3\0" - "fn\00003-eukrea_mbimx27-add-audio-codec.patch\0" - "b\0" - ">From 24c2e0f732a2d95db2d5776539824632e0b08572 Mon Sep 17 00:00:00 2001\n" - "From: =?utf-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com>\n" - "Date: Wed, 26 May 2010 21:18:35 +0200\n" - "Subject: [PATCH 3/4] eukrea_mbimx27: add audio codec\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=utf-8\n" - "Content-Transfer-Encoding: 8bit\n" - "\n" - "Signed-off-by: Eric B\303\251nard <eric@eukrea.com>\n" - "---\n" - " arch/arm/mach-mx2/eukrea_mbimx27-baseboard.c | 44 +++++++++++++++++++++++++-\n" - " 1 files changed, 43 insertions(+), 1 deletions(-)\n" - "\n" - "diff --git a/arch/arm/mach-mx2/eukrea_mbimx27-baseboard.c b/arch/arm/mach-mx2/eukrea_mbimx27-baseboard.c\n" - "index 34bdc26..471dbd2 100644\n" - "--- a/arch/arm/mach-mx2/eukrea_mbimx27-baseboard.c\n" - "+++ b/arch/arm/mach-mx2/eukrea_mbimx27-baseboard.c\n" - "@@ -1,5 +1,5 @@\n" - " /*\n" - "- * Copyright (C) 2009 Eric Benard - eric@eukrea.com\n" - "+ * Copyright (C) 2009-2010 Eric Benard - eric@eukrea.com\n" - " *\n" - " * Based on pcm970-baseboard.c which is :\n" - " * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de)\n" - "@@ -37,6 +37,8 @@\n" - " #include <mach/mmc.h>\n" - " #include <mach/imx-uart.h>\n" - " #include <mach/spi.h>\n" - "+#include <mach/ssi.h>\n" - "+#include <mach/audmux.h>\n" - " \n" - " #include \"devices.h\"\n" - " \n" - "@@ -93,6 +95,13 @@ static int eukrea_mbimx27_pins[] = {\n" - " \tPD29_PF_CSPI1_SCLK,\n" - " \tPD30_PF_CSPI1_MISO,\n" - " \tPD31_PF_CSPI1_MOSI,\n" - "+\t/* SSI4 */\n" - "+#if defined(CONFIG_SND_SOC_EUKREA_TLV320)\n" - "+\tPC16_PF_SSI4_FS,\n" - "+\tPC17_PF_SSI4_RXD | GPIO_PUEN,\n" - "+\tPC18_PF_SSI4_TXD | GPIO_PUEN,\n" - "+\tPC19_PF_SSI4_CLK,\n" - "+#endif\n" - " };\n" - " \n" - " static const uint32_t eukrea_mbimx27_keymap[] = {\n" - "@@ -287,6 +296,12 @@ static struct spi_board_info eukrea_mbimx27_spi_board_info[] __initdata = {\n" - " \t},\n" - " };\n" - " \n" - "+static struct i2c_board_info eukrea_mbimx27_i2c_devices[] = {\n" - "+\t{\n" - "+\t\tI2C_BOARD_INFO(\"tlv320aic23\", 0x1a),\n" - "+\t},\n" - "+};\n" - "+\n" - " static int eukrea_mbimx27_spi_cs[] = {GPIO_PORTD | 28};\n" - " \n" - " static struct spi_imx_master eukrea_mbimx27_spi_0_data = {\n" - "@@ -303,6 +318,10 @@ static struct imxmmc_platform_data sdhc_pdata = {\n" - " \t.dat3_card_detect = 1,\n" - " };\n" - " \n" - "+struct imx_ssi_platform_data eukrea_mbimx27_ssi_pdata = {\n" - "+\t.flags = IMX_SSI_DMA,\n" - "+};\n" - "+\n" - " /*\n" - " * system init for baseboard usage. Will be called by cpuimx27 init.\n" - " *\n" - "@@ -314,6 +333,24 @@ void __init eukrea_mbimx27_baseboard_init(void)\n" - " \tmxc_gpio_setup_multiple_pins(eukrea_mbimx27_pins,\n" - " \t\tARRAY_SIZE(eukrea_mbimx27_pins), \"MBIMX27\");\n" - " \n" - "+#if defined(CONFIG_SND_SOC_EUKREA_TLV320)\n" - "+\t/* SSI unit master I2S codec connected to SSI_PINS_4*/\n" - "+\tmxc_audmux_v1_configure_port(MX27_AUDMUX_HPCR1_SSI0,\n" - "+\t\t\tMXC_AUDMUX_V1_PCR_SYN |\n" - "+\t\t\tMXC_AUDMUX_V1_PCR_TFSDIR |\n" - "+\t\t\tMXC_AUDMUX_V1_PCR_TCLKDIR |\n" - "+\t\t\tMXC_AUDMUX_V1_PCR_RFSDIR |\n" - "+\t\t\tMXC_AUDMUX_V1_PCR_RCLKDIR |\n" - "+\t\t\tMXC_AUDMUX_V1_PCR_TFCSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4) |\n" - "+\t\t\tMXC_AUDMUX_V1_PCR_RFCSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4) |\n" - "+\t\t\tMXC_AUDMUX_V1_PCR_RXDSEL(MX27_AUDMUX_HPCR3_SSI_PINS_4)\n" - "+\t);\n" - "+\tmxc_audmux_v1_configure_port(MX27_AUDMUX_HPCR3_SSI_PINS_4,\n" - "+\t\t\tMXC_AUDMUX_V1_PCR_SYN |\n" - "+\t\t\tMXC_AUDMUX_V1_PCR_RXDSEL(MX27_AUDMUX_HPCR1_SSI0)\n" - "+\t);\n" - "+#endif\n" - "+\n" - " \tmxc_register_device(&mxc_uart_device1, &uart_pdata[0]);\n" - " \tmxc_register_device(&mxc_uart_device2, &uart_pdata[1]);\n" - " #if !defined(MACH_EUKREA_CPUIMX27_USEUART4)\n" - "@@ -323,6 +360,11 @@ void __init eukrea_mbimx27_baseboard_init(void)\n" - " \tmxc_register_device(&mxc_fb_device, &eukrea_mbimx27_fb_data);\n" - " \tmxc_register_device(&mxc_sdhc_device0, &sdhc_pdata);\n" - " \n" - "+\ti2c_register_board_info(0, eukrea_mbimx27_i2c_devices,\n" - "+\t\t\t\tARRAY_SIZE(eukrea_mbimx27_i2c_devices));\n" - "+\n" - "+\tmxc_register_device(&imx_ssi_device0, &eukrea_mbimx27_ssi_pdata);\n" - "+\n" - " #if defined(CONFIG_TOUCHSCREEN_ADS7846) \\\n" - " \t|| defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)\n" - " \t/* ADS7846 Touchscreen controller init */\n" - "-- \n" - 1.6.3.3 - "\01:4\0" - "b\0" - "_______________________________________________\n" - "Alsa-devel mailing list\n" - "Alsa-devel@alsa-project.org\n" - http://mailman.alsa-project.org/mailman/listinfo/alsa-devel -e4ff1a7c3b59806689a5d869634f895cb6d6f61f75eeb5058bdbcdf00d632758 +c1d148dbb775260a32c31f7126eb9ef34470a7b7ef37e33cfd4e78c8cc4c1de1
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.