#include <linux/init.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/device.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/ac97_codec.h>
#include <sound/initval.h>
#include <sound/pcm_params.h>
#include <sound/tlv.h>
#include <sound/soc.h>
#include <sound/soc-dapm.h>
#include "wm9713.h"
struct snd_soc_dai ****_dai[] = {
};
EXPORT_SYMBOL_GPL(****_dai);
static const struct snd_kcontrol_new ********_controls[] = {
};
static const struct snd_soc_dapm_widget ****_dapm_widgets[] = {
};
static int *******_add_widgets(struct snd_soc_codec *codec)
{}
/*
static struct snd_soc_device ******_devdata = {
.card = &smdk,
.codec_dev = &soc_codec_dev_****,
};
*/
static int *****_write(struct snd_soc_codec *codec, unsigned int reg,
unsigned int val)
{
return 0;
}
static unsigned int ****_read(struct snd_soc_codec *codec,
unsigned int reg)
{
return 0;
}
static int *****_soc_probe(struct platform_device *pdev)
{
struct snd_soc_device *socdev = platform_get_drvdata(pdev);
struct snd_soc_card *card = socdev->card;
struct snd_soc_codec *codec;
int ret,i;
socdev->card->codec = kzalloc(sizeof(struct snd_soc_codec),GFP_KERNEL);
codec = socdev->card->codec;
mutex_init(&codec->mutex);
INIT_LIST_HEAD(&codec->dapm_widgets);
INIT_LIST_HEAD(&codec->dapm_paths);
codec->write = *****_write;
codec->read = *****_read;
codec->name = "********";
codec->owner = THIS_MODULE;
/*create a card:snd_card*/
ret = snd_card_create(SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, codec->owner, 0, &codec->card);
ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1,SNDRV_DEFAULT_STR1);
#ifdef CONFIG_SND_SOC_AC97_BUS
ret = snd_soc_new_ac97_codec(codec, &soc_ac97_ops, 0);
#endif
snd_soc_add_controls(codec,********_controls,
ARRAY_SIZE(********_controls));
还有硬件初始化
//*******_add_widgets(codec);
return 0;
}
struct snd_soc_codec_device soc_codec_dev_wm9713 = {
.probe = wm9713_soc_probe,
};