声卡驱动最简模版

#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,
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值