1/* 2 * SoC audio for ln2440sbc 3 * 4 * Copyright 2007 KonekTel, a.s. 5 * Author: Ivan Kuten 6 * ivan.kuten@promwad.com 7 * 8 * Heavily based on smdk2443_wm9710.c 9 * Copyright 2007 Wolfson Microelectronics PLC. 10 * Author: Graeme Gregory 11 * graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com 12 * 13 * This program is free software; you can redistribute it and/or modify 14 * it under the terms of the GNU General Public License version 2 as 15 * published by the Free Software Foundation. 16 * 17 */ 18 19#include <linux/module.h> 20#include <linux/device.h> 21#include <sound/core.h> 22#include <sound/pcm.h> 23#include <sound/soc.h> 24#include <sound/soc-dapm.h> 25 26#include "../codecs/ac97.h" 27#include "s3c-dma.h" 28#include "s3c-ac97.h" 29 30static struct snd_soc_card ln2440sbc; 31 32static struct snd_soc_dai_link ln2440sbc_dai[] = { 33{ 34 .name = "AC97", 35 .stream_name = "AC97 HiFi", 36 .cpu_dai = &s3c_ac97_dai[S3C_AC97_DAI_PCM], 37 .codec_dai = &ac97_dai, 38}, 39}; 40 41static struct snd_soc_card ln2440sbc = { 42 .name = "LN2440SBC", 43 .platform = &s3c24xx_soc_platform, 44 .dai_link = ln2440sbc_dai, 45 .num_links = ARRAY_SIZE(ln2440sbc_dai), 46}; 47 48static struct snd_soc_device ln2440sbc_snd_ac97_devdata = { 49 .card = &ln2440sbc, 50 .codec_dev = &soc_codec_dev_ac97, 51}; 52 53static struct platform_device *ln2440sbc_snd_ac97_device; 54 55static int __init ln2440sbc_init(void) 56{ 57 int ret; 58 59 ln2440sbc_snd_ac97_device = platform_device_alloc("soc-audio", -1); 60 if (!ln2440sbc_snd_ac97_device) 61 return -ENOMEM; 62 63 platform_set_drvdata(ln2440sbc_snd_ac97_device, 64 &ln2440sbc_snd_ac97_devdata); 65 ln2440sbc_snd_ac97_devdata.dev = &ln2440sbc_snd_ac97_device->dev; 66 ret = platform_device_add(ln2440sbc_snd_ac97_device); 67 68 if (ret) 69 platform_device_put(ln2440sbc_snd_ac97_device); 70 71 return ret; 72} 73 74static void __exit ln2440sbc_exit(void) 75{ 76 platform_device_unregister(ln2440sbc_snd_ac97_device); 77} 78 79module_init(ln2440sbc_init); 80module_exit(ln2440sbc_exit); 81 82/* Module information */ 83MODULE_AUTHOR("Ivan Kuten"); 84MODULE_DESCRIPTION("ALSA SoC ALC650 LN2440SBC"); 85MODULE_LICENSE("GPL"); 86