hd audio驱动

hd_audio引脚:
RST(Intel  High Definition Audio Reset): This signal is the master hardware reset to external codec(s).
SYNC(Intel High Definition Audio Sync): This signal is a 48 kHz fixed rate sample sync to the codec(s). It is also used to encode the stream number.
BIT_CLK(Intel High Definition Audio Bit Clock Output):This signal is a 24.000 MHz serial data clock generated by the Intel High Definition 
Audio controller . This signal has an integrated pull-down resistor so that ACZ_BIT_CLK doesn’t float when an Intel High Definition Audio codec 
(or no codec) is connected but the signals are temporarily configured as AC ’97.
DS_OUT(High Definition Audio Serial Data Out):This signal is the serial TDM data output to the codec(s). This serial output is 
double-pumped for a bit rate of 48 Mb/s for Intel High Definition Audio.
SD_IN(High Definition Audio Serial Data In [2:0]): These signals are serial TDM data inputs from the three codecs. The serial 
input is single-pumped for a bit rate of 24 Mb/s for Intel® High Definition Audio. These signals have integrated pull-down resistors 
that are always enabled.
a Buffer Descriptor List (BDL)
GCAP – Global Capabilities 
Command Ring Buffer (CORB) 
Response Inbound Ring Buffer(响应入栈的环形缓冲区) - RIRB
通过一些函数查找源头,找到了module.inc里有它的初始化函数DRIVER_NAME(void);
一.驱动初始化
1.确定pci设备
声卡设备属于pci设备,查看目标板上pci设备信息:pciConfigTopoShow()
找到一个pci相关的设备,本来想看到audio的信息,结果没发现,发现一个可能相关的选项。
然后用pciHeaderShow()查看一下相关信息:
查找到他的版本号和设备号。对应驱动中的id_table中的0x808627d8。所有intel的南桥芯片的设备商号都是8086.
利用pci设备商号和设备号,我们google到了该南桥的型号:Intel Corporation 82801G .
查看内核中含有pci字符的函数,在vxworks shell中执行:lkup "pci"
2.初始化
在DRIVER_NAME()这个初始化函数关键代码如下:
while ((d=id_table[i]) != 0)
{
            //获取pci设备商号和设备号
vendor_id = (d >> 16) & 0xffff;
dev_id = d & 0xffff;
            //从instance=0的顺序号开始查找设备总线号,设备号,功能号并给pcidev赋值,如果找到则创建设备
while (pciFindDevice(vendor_id, dev_id, instance,&bus, &dev, &func) == OK)
{
                        //为pcidev设备申请空间
oss_pci_device_t *pcidev = malloc(sizeof(*pcidev));
                        //创建设备
                        osdev_create ((dev_info_t*)pcidev, DRIVER_TYPE, instance++, DRIVER_NICK,NULL)) ;
                        //将设备绑定到总线上
                        DRIVER_ATTACH (osdev);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值