Audio DT介绍
1.概述
DT(Device Tree)是一种描述硬件的数据结构,DTS即设备树源码。
2.Audio DTS 文件架构
\bsp\kernel\kernel.4.14\arch\arm64\boot\sprd
ums512.dts //SOC级相关节点
------sc2730.dtsi //Codec
------sharkl5Pro.dtsi //Platform、VBC、I2S、audio misc
------sprd-sound-fe-be.dtsi //headset\sound card
------extra_sound_card_component.dtsi //Ext Smart PA 的dai-link
如果同一个SOC对应不同的board,则需要添加对应类似ums521-1h10-overlay.dtsi文件加以区分
3.Audio 各个模块DT 详解
3.1 Code 级DT
3.2 CPU 级DT
VBC DT、I2S DT、sprd_fe_dai DT(sound card FE/BE 架构里)
3.3 Platform 级DT
(1)一类是面向DAL-Link 的FE,主要实现了DMA相关的设置已经数据流向的控制
sprd_pcm,sprd_comper,sprd_pcm_iis
(2)一类用于DAI-Link 的BE,实现与FE的连接
sprd_route_pcm
3.4 声卡DT
sprdphone card 和 I2S card 两种声卡
4.SOC 级 DT
5.常用参数
compatible status reg
音频驱动概述
1.音频硬件概述
第三方smartPA接在VBC上,与平台Codec 处于并列位置
数据流向:AP _> ADSP _> VBC _> Codec
2.音频驱动结构
2.1FE 与 BE 的定义
在android 平台上,音频驱动采用DPCM 的 方式(即PCM device)对FE进行固定,BE 采用动态配置的方式进行选择
2.2 FE 与 BE 的分类
FE 根据stream 的属性进行分类
BE 根据FE与输出、输入的硬件类别进行分类
2.3 动态连接与驱动实现
2.3.1 动态连接
FE 与 BE 通过 Switch control进行链接,在audio_route.xml 中根据场景进行动态配置
2.3.2 驱动实现
snd_dai_driver 结构体定义的实例中
.probe 表示 DAI 控件和 DAI 接口
.stream_name 表示 DAI控件
.aif_name 表示 DAI路由接口
xxx_dai_ops 表示DMA 操作
SPRD Audio 介绍
AudioPolicy
AudioPolicyManagerSprd ------> AudioPolicyManager ------> Audio_policy_Configuration.xml
2.1 AudioPolicy 配置
2.2.1 engine 配置
AudioPolicy 支持2种 engine:
default:策略通过代码实现
configurable:策略通过配置实现