Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 81458
b: refs/heads/master
c: 040956f
h: refs/heads/master
v: v3
  • Loading branch information
Ivan Kuten authored and Jaroslav Kysela committed Jan 31, 2008
1 parent c468a3b commit 4ffc116
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f651b50b9d1ab44f7b09d1ef28ba702903732fd3
refs/heads/master: 040956fabbc16b9ce746a03d2b589052e1771138
8 changes: 8 additions & 0 deletions trunk/sound/soc/s3c24xx/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,12 @@ config SND_S3C24XX_SOC_SMDK2443_WM9710
Say Y if you want to add support for SoC audio on smdk2443
with the WM9710.

config SND_S3C24XX_SOC_LN2440SBC_ALC650
tristate "SoC AC97 Audio support for LN2440SBC - ALC650"
depends on SND_S3C24XX_SOC
select SND_S3C2443_SOC_AC97
select SND_SOC_AC97_CODEC
help
Say Y if you want to add support for SoC audio on ln2440sbc
with the ALC650.

2 changes: 2 additions & 0 deletions trunk/sound/soc/s3c24xx/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ obj-$(CONFIG_SND_S3C2443_SOC_AC97) += snd-soc-s3c2443-ac97.o
# S3C24XX Machine Support
snd-soc-neo1973-wm8753-objs := neo1973_wm8753.o
snd-soc-smdk2443-wm9710-objs := smdk2443_wm9710.o
snd-soc-ln2440sbc-alc650-objs := ln2440sbc_alc650.o

obj-$(CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753) += snd-soc-neo1973-wm8753.o
obj-$(CONFIG_SND_S3C24XX_SOC_SMDK2443_WM9710) += snd-soc-smdk2443-wm9710.o
obj-$(CONFIG_SND_S3C24XX_SOC_LN2440SBC_ALC650) += snd-soc-ln2440sbc-alc650.o
86 changes: 86 additions & 0 deletions trunk/sound/soc/s3c24xx/ln2440sbc_alc650.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
/*
* SoC audio for ln2440sbc
*
* Copyright 2007 KonekTel, a.s.
* Author: Ivan Kuten
* ivan.kuten@promwad.com
*
* Heavily based on smdk2443_wm9710.c
* Copyright 2007 Wolfson Microelectronics PLC.
* Author: Graeme Gregory
* graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com
*
* 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.
*
*/

#include <linux/module.h>
#include <linux/device.h>
#include <sound/driver.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/soc.h>
#include <sound/soc-dapm.h>

#include "../codecs/ac97.h"
#include "s3c24xx-pcm.h"
#include "s3c24xx-ac97.h"

static struct snd_soc_machine ln2440sbc;

static struct snd_soc_dai_link ln2440sbc_dai[] = {
{
.name = "AC97",
.stream_name = "AC97 HiFi",
.cpu_dai = &s3c2443_ac97_dai[0],
.codec_dai = &ac97_dai,
},
};

static struct snd_soc_machine ln2440sbc = {
.name = "LN2440SBC",
.dai_link = ln2440sbc_dai,
.num_links = ARRAY_SIZE(ln2440sbc_dai),
};

static struct snd_soc_device ln2440sbc_snd_ac97_devdata = {
.machine = &ln2440sbc,
.platform = &s3c24xx_soc_platform,
.codec_dev = &soc_codec_dev_ac97,
};

static struct platform_device *ln2440sbc_snd_ac97_device;

static int __init ln2440sbc_init(void)
{
int ret;

ln2440sbc_snd_ac97_device = platform_device_alloc("soc-audio", -1);
if (!ln2440sbc_snd_ac97_device)
return -ENOMEM;

platform_set_drvdata(ln2440sbc_snd_ac97_device,
&ln2440sbc_snd_ac97_devdata);
ln2440sbc_snd_ac97_devdata.dev = &ln2440sbc_snd_ac97_device->dev;
ret = platform_device_add(ln2440sbc_snd_ac97_device);

if (ret)
platform_device_put(ln2440sbc_snd_ac97_device);

return ret;
}

static void __exit ln2440sbc_exit(void)
{
platform_device_unregister(ln2440sbc_snd_ac97_device);
}

module_init(ln2440sbc_init);
module_exit(ln2440sbc_exit);

/* Module information */
MODULE_AUTHOR("Ivan Kuten");
MODULE_DESCRIPTION("ALSA SoC ALC650 LN2440SBC");
MODULE_LICENSE("GPL");
4 changes: 2 additions & 2 deletions trunk/sound/soc/s3c24xx/s3c2443-ac97.c
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ static int s3c2443_ac97_probe(struct platform_device *pdev)
ac_glbctrl |= S3C_AC97_GLBCTRL_TRANSFERDATAENABLE;
writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);

ret = request_irq(IRQ_S3C2443_AC97, s3c2443_ac97_irq,
ret = request_irq(IRQ_S3C244x_AC97, s3c2443_ac97_irq,
IRQF_DISABLED, "AC97", NULL);
if (ret < 0) {
printk(KERN_ERR "s3c24xx-ac97: interrupt request failed.\n");
Expand All @@ -266,7 +266,7 @@ static int s3c2443_ac97_probe(struct platform_device *pdev)

static void s3c2443_ac97_remove(struct platform_device *pdev)
{
free_irq(IRQ_S3C2443_AC97, NULL);
free_irq(IRQ_S3C244x_AC97, NULL);
clk_disable(s3c24xx_ac97.ac97_clk);
clk_put(s3c24xx_ac97.ac97_clk);
iounmap(s3c24xx_ac97.regs);
Expand Down
6 changes: 6 additions & 0 deletions trunk/sound/soc/s3c24xx/s3c24xx-ac97.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@
#define AC_CMD_ADDR(x) (x << 16)
#define AC_CMD_DATA(x) (x & 0xffff)

#ifdef CONFIG_CPU_S3C2440
#define IRQ_S3C244x_AC97 IRQ_S3C2440_AC97
#else
#define IRQ_S3C244x_AC97 IRQ_S3C2443_AC97
#endif

extern struct snd_soc_cpu_dai s3c2443_ac97_dai[];

#endif /*S3C24XXAC97_H_*/

0 comments on commit 4ffc116

Please sign in to comment.