Jassi Brar wrote:
From: Jassi Brar jassi.brar@samsung.com
Enable the ASoC Machine driver to run on SMDKC100 as well.
Signed-off-by: Jassi Brar jassi.brar@samsung.com
Acked-by: Kukjin Kim kgene.kim@samsung.com
Thanks.
Best regards, Kgene. -- Kukjin Kim kgene.kim@samsung.com, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
arch/arm/mach-s5pc100/mach-smdkc100.c | 2 + sound/soc/s3c24xx/Kconfig | 2 +- sound/soc/s3c24xx/smdk_wm8580.c | 73
+++++++++++++++++++++++--------
3 files changed, 55 insertions(+), 22 deletions(-)
diff --git a/arch/arm/mach-s5pc100/mach-smdkc100.c b/arch/arm/mach- s5pc100/mach-smdkc100.c index 18b405d..dd192a2 100644 --- a/arch/arm/mach-s5pc100/mach-smdkc100.c +++ b/arch/arm/mach-s5pc100/mach-smdkc100.c @@ -96,6 +96,7 @@ static struct s3c2410_uartcfg smdkc100_uartcfgs[] __initdata = {
/* I2C0 */ static struct i2c_board_info i2c_devs0[] __initdata = {
- {I2C_BOARD_INFO("wm8580", 0x1b),},
};
/* I2C1 */ @@ -190,6 +191,7 @@ static struct platform_device *smdkc100_devices[] __initdata = { &s3c_device_ts, &s3c_device_wdt, &smdkc100_lcd_powerdev,
- &samsung_asoc_dma, &s5pc100_device_iis0, &samsung_device_keypad, &s5pc100_device_ac97,
diff --git a/sound/soc/s3c24xx/Kconfig b/sound/soc/s3c24xx/Kconfig index 396f678..4989fad 100644 --- a/sound/soc/s3c24xx/Kconfig +++ b/sound/soc/s3c24xx/Kconfig @@ -62,7 +62,7 @@ config SND_S3C24XX_SOC_JIVE_WM8750
config SND_SOC_SMDK_WM8580 tristate "SoC I2S Audio support for WM8580 on SMDK"
- depends on SND_S3C24XX_SOC && MACH_SMDK6410
- depends on SND_S3C24XX_SOC && (MACH_SMDK6410 || MACH_SMDKC100) select SND_SOC_WM8580 select SND_SAMSUNG_I2S help
diff --git a/sound/soc/s3c24xx/smdk_wm8580.c b/sound/soc/s3c24xx/smdk_wm8580.c index 4176252..9061268 100644 --- a/sound/soc/s3c24xx/smdk_wm8580.c +++ b/sound/soc/s3c24xx/smdk_wm8580.c @@ -18,6 +18,8 @@ #include <sound/soc.h> #include <sound/soc-dapm.h>
+#include <asm/mach-types.h>
#include "../codecs/wm8580.h" #include "dma.h" #include "i2s.h" @@ -201,33 +203,49 @@ static int smdk_wm8580_init_paifrx(struct snd_soc_pcm_runtime *rtd) return 0; }
+enum {
- PRI_PLAYBACK = 0,
- PRI_CAPTURE,
- SEC_PLAYBACK,
+};
static struct snd_soc_dai_link smdk_dai[] = { -{ /* Primary Playback i/f */
- .name = "WM8580 PAIF RX",
- .stream_name = "Playback",
- .cpu_dai_name = "samsung-i2s.2",
- .codec_dai_name = "wm8580-hifi-playback",
- .platform_name = "samsung-audio",
- .codec_name = "wm8580-codec.0-001b",
- .init = smdk_wm8580_init_paifrx,
- .ops = &smdk_ops,
-}, -{ /* Primary Capture i/f */
- .name = "WM8580 PAIF TX",
- .stream_name = "Capture",
- .cpu_dai_name = "samsung-i2s.2",
- .codec_dai_name = "wm8580-hifi-capture",
- .platform_name = "samsung-audio",
- .codec_name = "wm8580-codec.0-001b",
- .init = smdk_wm8580_init_paiftx,
- .ops = &smdk_ops,
-},
- [PRI_PLAYBACK] = { /* Primary Playback i/f */
.name = "WM8580 PAIF RX",
.stream_name = "Playback",
.cpu_dai_name = "samsung-i2s.2",
.codec_dai_name = "wm8580-hifi-playback",
.platform_name = "samsung-audio",
.codec_name = "wm8580-codec.0-001b",
.init = smdk_wm8580_init_paifrx,
.ops = &smdk_ops,
- },
- [PRI_CAPTURE] = { /* Primary Capture i/f */
.name = "WM8580 PAIF TX",
.stream_name = "Capture",
.cpu_dai_name = "samsung-i2s.2",
.codec_dai_name = "wm8580-hifi-capture",
.platform_name = "samsung-audio",
.codec_name = "wm8580-codec.0-001b",
.init = smdk_wm8580_init_paiftx,
.ops = &smdk_ops,
- },
- [SEC_PLAYBACK] = { /* Sec_Fifo Playback i/f */
.name = "Sec_FIFO TX",
.stream_name = "Playback",
.cpu_dai_name = "samsung-i2s.x",
.codec_dai_name = "wm8580-hifi-playback",
.platform_name = "samsung-audio",
.codec_name = "wm8580-codec.0-001b",
.init = smdk_wm8580_init_paifrx,
.ops = &smdk_ops,
- },
};
static struct snd_soc_card smdk = { .name = "SMDK-I2S", .dai_link = smdk_dai,
- .num_links = ARRAY_SIZE(smdk_dai),
- .num_links = 2,
};
static struct platform_device *smdk_snd_device; @@ -235,6 +253,19 @@ static struct platform_device *smdk_snd_device; static int __init smdk_audio_init(void) { int ret;
char *str;
if (machine_is_smdkc100()) {
smdk.num_links = 3;
/* S5PC100 has I2S0 as v5 */
str = (char *)smdk_dai[PRI_PLAYBACK].cpu_dai_name;
str[strlen(str) - 1] = '0';
str = (char *)smdk_dai[PRI_CAPTURE].cpu_dai_name;
str[strlen(str) - 1] = '0';
/* Secondary is at offset SAMSUNG_I2S_SECOFF from Primary */
str = (char *)smdk_dai[SEC_PLAYBACK].cpu_dai_name;
str[strlen(str) - 1] = '0' + SAMSUNG_I2S_SECOFF;
}
smdk_snd_device = platform_device_alloc("soc-audio", -1); if (!smdk_snd_device)
-- 1.6.2.5