uda134x的音频驱动(国外英语资料).docVIP

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
uda134x的音频驱动(国外英语资料)

uda134x的音频驱动(国外英语资料) / * \ linux-2.6.32.2 \音响\ soc \编解码器\ uda134x.c * uda134x。c——UDA134X ALSA SoC编解码器 * zhoujianchao * / # include linux / module.h # include linux / delay.h # include 声音/ pcm.h # include 声音/ pcm_params.h # include 声音/ soc.h # include 声音/ soc-dapm.h # include 声音/ initval.h # include 声音/ uda134x.h # include 声音/ l3.h # include“uda134x.h” #定义POWER_OFF_ON_STANDBY 1 #定义UDA134X_RATES SNDRV_PCM_RATE_8000_48000 定义uda134x格式(sndrvpcmfmtbits8 sndrvpcmfmtbits16le SNDRV_PCM_FMTBIT_S18_3LE | SNDRV_PCM_FMTBIT_S20_3LE) struct uda134x_priv { int sysclk; int dai_fmt; struct snd_pcm_substream * master_substream; struct snd_pcm_substream * slave_substream; }; /in-data地址被硬编码到reg缓存值/ 静态const char uda134xreg uda134xregsnum= /扩展地址寄存器/ 0x04,0x04,0x04,0x00,0x00,0x00,0x00, /状态,数据regs/ 0x00,0x83,0x00,0x40,0x80,0x00, }; / * 编解码器除了达到峰值水平外,不支持读取它的寄存器。 * / 静态的内联无符号int uda134xreadregcache(struct sndsoccodec编解码器, unsigned int注册) { 与*缓存=编解码器- reg_cache; 如果(reg = UDA134X_REGS_NUM) 返回1; 返回缓存(注册); } / * 写入寄存器缓存 * / 静态行内空白uda134xwriteregcache(struct sndsoccodec编解码器, u8 reg,无符号整型值) { 与*缓存=编解码器- reg_cache; 如果(reg = UDA134X_REGS_NUM) 返回; 缓存[注册]=价值; } / * 写入uda134x寄存器 * * / 静态int uda134xwrite(struct sndsoccodec编解码器,无符号的int reg, unsigned int值) { int受潮湿腐烂; 与addr; 与数据=价值; struct uda134x平台数据pd=编解码数据; pr_debug(“% s reg:% 2 x的值:% 2 x \ n”,__func__,reg,值); if(reg=uda134xregsnum) printk(kernerr“%s的寄存器:reg:%u”, __func__,reg); 返回-EINVAL; } uda134x_write_reg_cache(编码、注册、价值); 开关(reg){ 案例UDA134X_STATUS0: 案例UDA134X_STATUS1: addr = UDA134X_STATUS_ADDR; 打破; 案例UDA134X_DATA000: 案例UDA134X_DATA001: 案例UDA134X_DATA010: addr = UDA134X_DATA0_ADDR; 打破; 案例UDA134X_DATA1: addr = UDA134X_DATA1_ADDR; 打破; 默认值: /它是一个扩展地址寄存器/ addr=(reg uda134xextaddr前缀); ret = l3_write(pd - l3, UDA134X_DATA0_ADDR addr 1); 如果(ret != 1) 返回-EIO; addr = UDA134X_DATA0_ADDR; 数据=(值uda134xextdata前缀); 打破; } ret = l3_write(pd - l3, addr,平,1); 如果(ret != 1) 返回-EIO; 返回0; } 静态行内空白uda134x复位(结构sndsoccodec编解码器) { u8 resetreg=uda134xreadregca

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档