- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 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
您可能关注的文档
- LED与LCD-TFT液晶的区别(国外英语资料).doc
- Legato备份oracle的文档整理(国外英语资料).doc
- lgpl-3.0(国外英语资料).doc
- LG+KU990常见问题及解决方案(国外英语资料).doc
- LightSpeed 64排容积CT(简称VCT)(国外英语资料).doc
- LG官方ROM系统程序精简列表(国外英语资料).doc
- line6 pod hd300 400效果器中文说明书(国外英语资料).doc
- linux GD JPG PNG GIF支持(国外英语资料).doc
- linux route&NIC config(国外英语资料).doc
- Link2SD 详细教程(国外英语资料).doc
文档评论(0)