linux驱动:音频驱动(二)ASoc
五、【ASoC声卡驱动框架】
1、ASoC将嵌入式设备的音频系统从软件层面划分为3个组件
1.1 codec驱动:音频编解码器驱动,与平台无关,实现音频控制项添加、音频接口实现、DAPM(动态音频电源管理)、音频编解码器的IO功能
snd_soc_codec和snd_soc_codec_device代表codec驱动
1.2platform驱动:与平台有关驱动,实现DMA和音频接口(I2S、PCM、AC97)驱动
snd_soc_platform代表plarform驱动
1.3machine驱动:与板级相关驱动,实现板级特有的一些控件和音频事件。 machine将codec与platform结合到一起,匹配两者的DAI(数字音频接口)。
1.4 snd_soc_device和snd_soc_card代表machine驱动
snd_soc_dai_link负责连接plarform驱动和codec驱动
以上模块通过snd_soc_pcm_runtime进行关联,将下层具体功能与上层ALSA的pcm流进行关联
1.5 底层各个模块通过soc_bind_dai_link绑定:snd_soc_pcm_runtime中的codec、codec_dai、platform、cpu_dai
1.6 整体card级别的初始化:snd_soc_instantiate_card --> (soc_bind_dai_link+ snd_card_create + soc_probe_dai_link + snd_card_register)
2、数字音频接口DAI
2.1 AC97接口:5线式,很多PC的声卡使用这种接口
2.2 I2S接口:4线式
2.3 PCM接口:4线式
3、machine驱动
3.1 以mini2440为例
s3c24xx_udal34x.c:将s3c2440的platform驱动和UDA134X的codec驱动整合到一起的machine驱动的实现
3.2 创建ASoC声卡平台设备
Sound/soc/s3c24xx/s3c24xx_uda134x.c中
s3c24xx_uda134x_snd_device= platform_device_alloc("soc-audio",-1);
3.3 ASoC声卡的平台驱动
sound/soc/soc-core.c 2378 行
/* ASoCplatform driver */
staticstruct platform_driver soc_driver = {
.driver = {
.name = "soc-audio",
.owner = THIS_MODULE,
.pm = &soc_pm_ops,
},
.probe = soc_probe,
.remove = soc_remove,
};
linux驱动:音频驱动(二)ASoc相关推荐
- 为什么Linux的音频驱动位于sound目录下而不是driver/sound?
原文见链接 为什么Linux的音频驱动位于sound目录下而不是driver/sound?
- zedboard 音频芯片 adau1761 linux 下音频驱动(一)简介
一.概述 这其实和 ZedBoard 板卡无关,只要音频芯片是 adau1761 ,都可以使用.有两种方法可以驱动此芯片,在此只介绍第二种: 1.Linux uio 方式. 2.本文 adi kern ...
- Linux/Android 音频驱动从概念到 APP
这里写自定义目录标题 前言 硬件介绍 Codec 通用结构 ADC 框图 DAC 框图 常用数字接口 其他相关术语 Codec 实际结构 硬件原理图 芯片手册框图 软硬件对应示例 Codec 硬件逻辑 ...
- 关于linux的音频驱动
为了实现mp3播放,我们最近在sep4020上完成了i2s的驱动,主要经验总结如下: 1. 首先是要在probe函数里进行一系列的初始化,这些初始化对于i2s是很重要的,而且很多 ● ...
- Linux ALSA音频驱动之一:框架概述
1.ALSA概述 ALSA表示高级Linux声音体系结构(Advanced Linux Sound Architecture).它由一系列内核驱动,应用程序编译接口(API)以及支持Linux下声音的 ...
- zedboard 音频芯片 adau1761 linux 下音频驱动(三)PetaLinux
一.概述 在这一篇文章,我们使用PetaLinux生成BOOT.bin.image.ub内核文件,用于下一步播放音乐调试.我们使用的Linux环境是Ubuntu14.04.4,软件为petalinux ...
- Linux ALSA音频驱动一:音频系统概述
音频系统概述 音频系统通过数据+控制总线与CODEC连接,控制通路用I2C,数据通常为I2S,框图如图1所示. I2C:寄存器读写,用于配置CODEC控制通路. I2S:音频数据传输,通常与platf ...
- Linux ALSA音频子系统二
From 本文以高通平台为例,介绍一下android下的音频结构.android使用的是tinyALSA作为音频系统,使用方法和基本框架与linux中常用的ALSA音频子系统是一致的. ALSA音频框 ...
- LINUX音频驱动架构
https://www.jianshu.com/p/0f5fe8f51b66 简介 LINUX下音频驱动开发,要遵循标准的ALSA架构, 下面分别从硬件架构.软件架构.驱动程序,3个方面分析. 硬件架 ...
- linux音频时钟bclk,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系
转:https://blog.csdn.net/lugandong/article/details/72468831 一. 拿512fs说话: 看图知道采样的位深是32bit(位),左右声道各占了8* ...
最新文章
- CloudCompare基础架构介绍(PPT)
- Android开发中应避免的重大错误
- Java中intentfiler_【Android - 组件】之IntentFilter的匹配规则
- R语言compareGroups包绘制组间趋势(p for trend)实战:基于survival包lung数据集示例
- Linux笔记:vim
- git将代码提交到多个远程仓库
- hdu 3392 Pie
- 数据的设计命名的十个要点
- 分布式MQ消息存储选择
- 单硬盘上mac + win7双系统,GUID-GPT分区
- Hadoop伪分布安装配置
- [Python] L1-051 打折-PAT团体程序设计天梯赛GPLT
- 【李宏毅2020 ML/DL】P115-117 Actor-Critic Sparse Reward Imitation Learning
- insert_text
- Idea 我的快捷键总结
- 教学案例分析 计算机应用,计算机教学案例分析
- android中屏幕保护的实现的,Android 屏幕保护程序制做及源码
- 使用强化学习评估训练数据,准确量化训练样本
- 阿里云MVP精选2018年终盘点:大咖专访+最佳实践,丰富干货等你来!...
- Google AppOps
热门文章
- 相机标定 matlab opencv ROS三种方法标定步骤(3)
- active set + serving cell
- Rocksdb 写流程,读流程,WAL文件,MANIFEST文件,ColumnFamily,Memtable,SST文件原理详解
- Linux下控制环境变量
- python的with语句
- javascript数组集锦
- 如何用CSS快速布局(一)—— 布局元素详细
- Spark Steaming 点滴
- Sourse Insight使用教程及常见的问题解决办法
- Creating Apps With Material Design —— Defining Custom Animations