From b45487e51fddfc18a763e8df14c4d01215981730 Mon Sep 17 00:00:00 2001 From: vb6174 Date: Wed, 17 Nov 2021 15:06:13 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E3=80=90Audio=E3=80=91=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: vb6174 --- .../driver/driver-peripherals-audio-des.md | 1433 +++++++++++++++++ ...0\346\265\201\347\250\213\345\233\276.png" | Bin 0 -> 31482 bytes ...6\346\265\201\347\250\213\345\233\276.png" | Bin 0 -> 7216 bytes ...6\346\265\201\347\250\213\345\233\276.png" | Bin 0 -> 60550 bytes ...o\346\241\206\346\236\266\345\233\276.png" | Bin 0 -> 1800199 bytes ...L\346\265\201\347\250\213\345\233\276.jpg" | Bin 0 -> 120610 bytes ...\346\265\201\347\250\213\345\233\2761.png" | Bin 0 -> 2828 bytes ...\346\265\201\347\250\213\345\233\2762.png" | Bin 0 -> 3023 bytes 8 files changed, 1433 insertions(+) create mode 100644 zh-cn/device-dev/driver/driver-peripherals-audio-des.md create mode 100644 "zh-cn/device-dev/driver/figure/ADM\345\220\257\345\212\250\346\265\201\347\250\213\345\233\276.png" create mode 100644 "zh-cn/device-dev/driver/figure/ADM\346\216\247\345\210\266\346\265\201\347\250\213\345\233\276.png" create mode 100644 "zh-cn/device-dev/driver/figure/ADM\346\222\255\346\224\276\346\265\201\347\250\213\345\233\276.png" create mode 100644 "zh-cn/device-dev/driver/figure/Audio\346\241\206\346\236\266\345\233\276.png" create mode 100644 "zh-cn/device-dev/driver/figure/HAL\346\265\201\347\250\213\345\233\276.jpg" create mode 100644 "zh-cn/device-dev/driver/figure/\345\274\200\345\217\221\346\265\201\347\250\213\345\233\2761.png" create mode 100644 "zh-cn/device-dev/driver/figure/\345\274\200\345\217\221\346\265\201\347\250\213\345\233\2762.png" diff --git a/zh-cn/device-dev/driver/driver-peripherals-audio-des.md b/zh-cn/device-dev/driver/driver-peripherals-audio-des.md new file mode 100644 index 00000000000..b963b4e78f0 --- /dev/null +++ b/zh-cn/device-dev/driver/driver-peripherals-audio-des.md @@ -0,0 +1,1433 @@ +# AUDIO + +[Audio驱动概述](#section1000) + +[Audio驱动框架介绍](#section2000) + +[Audio驱动开发步骤](#section3000) + +- [Audio ADM模块框架介绍](#section3100) + - [ 启动流程](#section3111) + - [播放流程](#section3112) + - [控制流程](#section3113) +- [Audio驱动开发步骤](#section3200) + - [已有平台开发](#section3221) + - [新平台开发](#section3222) +[Audio驱动开发实例](#section4000) +- [Codec驱动开发实例](#section4100) + - [Codec数据结构填充](#section4111) + - [codecDevice和codecDai设备初始化](#section4112) + - [Codec操作函数集实现](#section4113) + - [Codec注册绑定到HDF](#section4114) + - [HCS配置流程](#section4115) +- [Accessory驱动开发实例](#section4200) + - [Accessory数据结构填充](#section4221) + - [accessoryDevice和accessoryDai设备初始化](#section4222) + - [Accessory操作函数集实现](#section4223) + - [Accessory注册绑定到HDF](#section4224) + - [HCS配置流程](#section4225) +- [Platform驱动开发实例](#section4300) + - [Platform数据结构填充](#section4331) + - [dmaDevice设备初始化](#section4332) + - [DMA操作函数集实现](#section4333) + - [Platform注册绑定到HDF](#section4334) + - [HCS配置流程](#section4335) +- [Dai数据结构填充](#section4441) + - [Dai驱动开发实例](#section4400) + - [Dai数据结构填充](#section4441) + - [daiDevice设备初始化](#section4442) + - [Dai操作函数集实现](#section4443) + - [Dai注册绑定到HDF](#section4444) + - [HCS配置流程](#section4445) +- [Makefile中添加编译配置](#section4500) +- [源码结构与目录](#section4600) +[五使用HAL的开发步骤与实例](#section5000) +- [HAL模块使用步骤](#section5100) +- [HAL使用实例](#section5200) + +[总结](#section9999) + +# Audio驱动概述 + +多媒体系统是物联网设备开发中不可缺少的一部分,Audio作为其中重要的一个模块,Audio驱动模型的构建显得尤为重要。 + +本文主要介绍基于HDF(Hardware Driver Foundation)驱动框架开发的Audio驱动,包括Audio驱动的架构组成和功能部件。芯片厂商可以根据此驱动架构,进行各自驱动的开发及HAL层接口的调用。 + + + +# Audio驱动框架介绍 + +Audio驱动框架基于[HDF驱动框架](https://device.harmonyos.com/cn/docs/documentation/guide/driver-hdf-overview-0000001051715456)实现。 + +Audio驱动架构组成: + +![](figure/Audio框架图.png) + +驱动架构主要由 Audio HDI,HDI adapter,Audio Interface Lib,ADM(Audio Driver Model,音频驱动模型),Platform Driver 这几部分组成。 + +**HDI adapter:** 实现Audio HAL层驱动(HDI接口适配),给Audio服务(frameworks)提供所需的音频硬件驱动能力接口。包含 Audio Manager、Audio Adapter、 Audio Control、Audio Capture、Audio Render 等接口对象。 + +**Audio Interface lib:** 配合内核中的Audio Driver Model使用,实现音频硬件的控制、录音数据的读取、播放数据的写入。它里面包括Stream_ctrl_common 通用层,主要是为了和上层的audio HDI adapter 层进行对接。 + +**ADM(Audio Driver Model):** 音频驱动框架模型,向上服务于多媒体音频子系统,便于系统开发者能够更便捷的根据场景来开发应用。向下服务于具体的设备厂商,对于Codec和DSP设备厂商来说,可根据ADM模块提供的向下统一接口适配各自的驱动代码,就可以实现快速开发和适配HOS系统。 + +**Audio Control Dispatch:** 接收lib层的控制指令并将控制指令分发到驱动层。 + +**Audio Stream Dispatch:** 向上通过lib层完成数据流的接收,向下完成数据流对驱动层的分发。 + +**Card Manager:** 多声卡管理模块。每个声卡含有Dai、Platform、Codec、Accessory、Dsp、Sapm模块。 + +**Platform Drive:** 驱动适配层。 + +**SAPM(Smart Audio Power Manager):** 电源管理模块,对整个ADM电源进行功耗策略优化。 + + + +# Audio驱动开发步骤 + +下面先讲解audio驱动的ADM框架;再以hi3516dv300平台为例,对所需实现具体驱动开发步骤进行介绍。 + +## Audio ADM模块框架介绍 +audio驱动对HDI层提供三个服务hdf_audio_render、hdf_audio_capture、hdf_audio_control。开发板dev目录下audio驱动服务节点如下: + +```c +# ls -l hdf_audio* +crw-rw---- 1 system system 248, 6 1970-01-01 00:00 hdf_audio_capture //音频数据录音流服务。 +crw-rw---- 1 system system 248, 4 1970-01-01 00:00 hdf_audio_codec_dev0 //音频声卡设备0名称。 +crw-rw---- 1 system system 248, 4 1970-01-01 00:00 hdf_audio_codec_dev1 //音频声卡设备1名称。 +crw-rw---- 1 system system 248, 5 1970-01-01 00:00 hdf_audio_control //音频控制流服务。 +crw-rw---- 1 system system 248, 7 1970-01-01 00:00 hdf_audio_render //音频数据播放流务。 +``` + +音频声卡设备包括的驱动服务: + +| hdf_audio_codec_dev0 | 音频设备名称 | +| -------------------- | :--------------------------| +| dma_service_0 | dma 服务 | +| dai_service | cpu dai 服务 | +| codec_service_0 | codec 服务(特指内置codec) | +| dsp_service_0 | dsp 服务(可选项) | + +| hdf_audio_codec_dev1 | 音频设备名称 | +| -------------------- | :----------------------------| +| dma_service_0 | dma 服务 | +| dai_service | cpu dai 服务 | +| codec_service_1 | accessory 服务(特指smartPA) | +| dsp_service_0 | dsp 服务(可选项) | + +### 启动流程 + +![](figure/ADM启动流程图.png) + +1. 系统启动时audio模块的Platform、Codec、Accessory、Dsp、Dai各个驱动首先被加载,各驱动从各自私有配置文件中获取配置信息,并将获取的配置信息保存到各驱动的Data数据结构中。 + +2. 各驱动模块调用ADM注册接口将自己添加到各驱动模块的链表中。 + +3. ADM模块读取hdf_audio_driver_0和hdf_audio_driver_1配置信息,加载各模块的具体设备。 + +4. ADM模块调用各模块的初始化函数对各模块设备进行初始化。 + +5. 将初始化成功的音频设备添加到cardManager链表。 + +### 播放流程 + +![=](figure/ADM播放流程图.png) + +1. 播放音频时,Interface Lib层通过播放流服务下发Render Open指令,Render Stream Dispatch服务收到指令后分别调用各模块的函数接口对指令进行下发。 + +2. Interface Lib层通过控制服务下发通路选择指令,Control Dispatch控制服务收到指令后调用Dai模块接口设置通路。 + +3. Interface Lib层通过播放流服务下发硬件参数,Render Stream Dispatch服务收到参数后分别调用各模块参数设置接口,对硬件参数进行设置。 + +4. Interface Lib层通过播放流服务下发播放启动指令,Render Stream Dispatch服务收到指令后分别调用各模块启动接口,对各模块进行启动设置。 + +5. Interface Lib层通过播放流服务下发音频数据,Render Stream Dispatch服务收到数据后调用Platform AudioPcmWrite接口将音频数据传给Dma。 + +6. Interface Lib层通过播放流服务下发播放停止指令,Render Stream Dispatch服务收到指令后分别调用各模块停止接口,对各模块进行停止设置。 + +7. Interface Lib层通过播放流服务下发Render Close指令,Render Stream Dispatch服务收到指令后调用Platform AudioRenderClose对已申请资源进行释放。 + +### 控制流程 + +![](figure/ADM控制流程图.png) + +1. 设置音量,首先Interface Lib层通过控制服务下发获取音量范围指令,Control Dispatch控制服务收到指令后进行解析并调用Codec模块Get函数接口获取可设置音量范围。 +2. Interface Lib层通过控制服务下发设置音量指令,Control Dispatch控制服务收到指令后进行解析并调用Codec模块Set函数接口设置音量。 + +## Audio驱动开发步骤 + +### 已有平台开发 + +ADM适配已有平台(hi3516dv300)Codec或Accessory(Smart PA)的驱动开发流程 + +![](figure/开发流程图1.png) + +- 根据芯片说明将相关寄存器信息配置到Codec或Smart PA的私有HCS中。 + +- 如果新添加Codec或Smart PA和已适配Codec或Smart PA的工作流程相同则不需要实现Codec或Smart PA的操作函数集和配置编译文件。 + + +- 进行编译调试验证。 + +### 新平台开发 + +ADM适配新平台Audio驱动开发流程 + +![](figure/开发流程图2.png) + +Audio驱动需要将Audio相关的Codec(可选)、Dai、DMA、DSP(可选)、Smart PA(可选)驱动进行适配。 + +- 根据芯片说明将各模块驱动的寄存器信息配置到各模块的私有配置文件中。 + +- 实现各模块的操作函数集。 + +- 修改配置Audio模块编译文件。 + +- 进行编译调试验证。 + + + +# Audio驱动开发实例 + +下面以Hi3516DV300为例,介绍audio的codec驱动、accessory驱动、dai驱动、platform驱动开发步骤。 + +## Codec驱动开发实例 + +codec驱动开发主要包含如下几个重要步骤:定义填充一个具体的codec、实现codec回调函数、注册绑定到HDF框架、配置HCS和Makefile。 + +### Codec数据结构填充 + +Codec模块需要填充如下3个结构体: + +**g_codecData**:codec设备的操作函数集和私有数据集。 + +**g_codecDaiDeviceOps**:codecDai的操作函数集,包括启动传输和参数配置等函数接口。 + +**g_codecDaiData**:codec的数字音频接口的操作函数集和私有数据集。 + +```c +struct CodecData g_codecData = { + .Init = CodecDeviceInit, // codec设备初始化(适配新平台需重新实现) + .Read = AudioDeviceReadReg, // 读寄存器(现有框架已实现,无需适配) + .Write = AudioDeviceWriteReg, // 写寄存器(现有框架已实现,无需适配) +}; + +struct AudioDaiOps g_codecDaiDeviceOps = { + .Startup = CodecDaiStartup, // 启动传输(适配新平台需重新实现) + .HwParams = CodecDaiHwParams, // 参数配置(适配新平台需重新实现) +}; + +struct DaiData g_codecDaiData = { + .DaiInit = CodecDaiDeviceInit, // codecdai设备初始化(适配新平台需重新实现) + .ops = &g_codecDaiDeviceOps, //codecdai操作函数 +}; +``` + +### codecDevice和codecDai设备初始化 + +CodecDeviceInit将完成AIAO的设置、寄存器默认值初始化、g_audioControls插入到controls链、电源管理初始化、通路选择设置等。 + +drivers/peripheral/audio/chipsets/hi3516dv300/codec/src/hi3516_codec_ops.c + +```c +int32_t CodecDeviceInit(struct AudioCard *audioCard, struct CodecDevice *codec) +{ + ... + /* hi3516平台AIAO的Set和Get 注册*/ + CodecSetCtlFunc(codec->devData, AudioCodecAiaoGetCtrlOps, AudioCodecAiaoSetCtrlOps) + ... + /* hi3516平台codec寄存器IoRemap*/ + CodecHalSysInit(); + ... + /* hi3516平台codec寄存器默认值初始化*/ + CodecRegDefaultInit(codec->devData->regCfgGroup); + ... + /* hi3516平台g_audioControls 挂到Control链表上*/ + AudioAddControls(audioCard, codec->devData->controls, codec->devData->numControls); + ... + /* hi3516平台codec加载到sapm*/ + AudioSapmNewComponents(audioCard, codec->devData->sapmComponents, codec->devData->numSapmComponent); + ... + /* hi3516平台codec加挂到通路选择链表上*/ + AudioSapmAddRoutes(audioCard, g_audioRoutes, HDF_ARRAY_SIZE(g_audioRoutes); + ... + AudioSapmNewControls(audioCard); + ... + /* hi3516平台codec电源管理*/ + AudioSapmSleep(audioCard); + ... + return HDF_SUCCESS; +} +``` + +CodecDaiDeviceInit将完成codecDai侧初始化,hi3516此处未涉及,接口保留: + +```c +int32_t CodecDaiDeviceInit(struct AudioCard *card, const struct DaiDevice *device) + +{ + ... + AUDIO_DRIVER_LOG_DEBUG("codec dai device name: %s\n", device->devDaiName); + (void)card; + return HDF_SUCCESS; +} +``` + +### Codec操作函数集实现 + +codec模块当前封装了OSAL读写寄存器的Read、Write函数。 + +如新增平台无法使用OSAL的Read、Write函数来操作寄存器,则此Read、Write函数接口需自行实现。 + +```c +int32_t AudioDeviceReadReg(unsigned long virtualAddress, uint32_t reg, uint32_t *val) +{ + ... + *val = OSAL_READL((void *)((uintptr_t)(virtualAddress + reg))); + return HDF_SUCCESS; +} + +int32_t AudioDeviceWriteReg(unsigned long virtualAddress, uint32_t reg, uint32_t value) +{ + OSAL_WRITEL(value, (void *)((uintptr_t)(virtualAddress + reg))); + return HDF_SUCCESS; +} +``` + +CodecDaiStartup为启动时的一些设置。 + +```c +int32_t CodecDaiStartup(const struct AudioCard *card, const struct DaiDevice *device) +{ + int32_t ret; + ... + (void)card; + ret = CodecSetAdcTuneEnable(device->devData->regCfgGroup); + ... + return HDF_SUCCESS; +} +``` + +CodecDaiHwParams为参数配置,包括采样率、位宽、等。 + +```c +int32_t CodecDaiHwParams(const struct AudioCard *card, const struct AudioPcmHwParams *param) +{ + unsigned int bitWidth; + struct CodecDaiParamsVal codecDaiParamsVal; + ... + int ret = AudioFramatToBitWidth(param->format, &bitWidth); + ... + codecDaiParamsVal.frequencyVal = param->rate; + codecDaiParamsVal.formatVal = bitWidth; + ret = CodecDaiParamsUpdate(card->rtd->codecDai->devData->regCfgGroup, codecDaiParamsVal); + ... + return HDF_SUCCESS; +} +``` + +### Codec注册绑定到HDF + +此处依赖HDF框架的驱动实现方式,具体流程可参考harmonyos官方[HDF驱动框架](https://device.harmonyos.com/cn/docs/documentation/guide/driver-hdf-overview-0000001051715456)。 + +填充g_codecDriverEntry结构体,moduleName与device_info.hcs中的moduleName匹配,实现Bind、Init、Release函数指针。 + +drivers/peripheral/audio/chipsets/hi3516dv300/codec/src/hi3516_codec_adapter.c + +```c +struct HdfDriverEntry g_codecDriverEntry = { + .moduleVersion = 1, + .moduleName = "CODEC_HI3516", + .Bind = CodecDriverBind, + .Init = CodecDriverInit, + .Release = CodecDriverRelease, +}; +HDF_INIT(g_codecDriverEntry); +``` + +CodecDriverBind:将HDF中device绑定到codec,将codec service注册到HDF框架。 + +```c +static int32_t CodecDriverBind(struct HdfDeviceObject *device) +{ + struct CodecHost *codecHost = (struct CodecHost *)OsalMemCalloc(sizeof(*codecHost)); + ... + codecHost->device = device; + device->service = &codecHost->service; + return HDF_SUCCESS; +} +``` + +CodecDriverInit:获取codecServive名字和私有寄存器配置,并通过AudioRegisterCodec插入到链表中。 + +```c +static int32_t CodecDriverInit(struct HdfDeviceObject *device) +{ + ... + CodecGetConfigInfo(device, &g_codecData); + CodecSetConfigInfo(&g_codecData, &g_codecDaiData); + CodecGetServiceName(device, &g_codecData.drvCodecName); + CodecGetDaiName(device, &g_codecDaiData.drvDaiName); + AudioRegisterCodec(device, &g_codecData, &g_codecDaiData); + ... + return HDF_SUCCESS; +} +``` + +CodecDriverRelease:释放驱动资源。 + +```c +static void CodecDriverRelease(struct HdfDeviceObject *device) +{ + codecHost = (struct CodecHost *)device->service; + OsalMemFree(codecHost); +} +``` + +### HCS配置流程 + +hcs中配置驱动节点、加载顺序、服务名称等。hcs语法可参考harmonyos官方HDF框架的[配置管理](https://device.harmonyos.com/cn/docs/documentation/guide/driver-hdf-manage-0000001053493462)。 + +小型系统: + +vendor/hisilicon/hispark_taurus/hdf_config/ + +标准系统: + +vendor/hisilicon/Hi3516DV300/hdf_config/khdf/ + +**device_info.hcs中配置Codec设备信息** + +添加Codec节点配置。修改如下配置中的moduleName,该名字会与HdfDriverEntry结构体中moduleName进行匹配,一般情况需体现出硬件平台名称。例:moduleName = "CODEC_HI3516"。 + +代码片段如下: + +```c + audio :: host { + device_codec :: device { + device0 :: deviceNode { + policy = 1; // codec模块只对内核提供服务 + priority = 50; // codec模块需在HDF_AUDIO模块之前加载 + preload = 0; + permission = 0666; + moduleName = "CODEC_HI3516"; // 名字会与HdfDriverEntry结构体中moduleName进行匹配 + serviceName = "codec_service_0"; // 对外提供的服务名称 + deviceMatchAttr = "hdf_codec_driver"; //私有配置属性名称,通过此名称匹配对应的私有数据(包含寄存器配置) + } + } +``` + +**audio_config.hcs中配置私有依赖** + +配置audio_card设备依赖的codec、platform、dai、dsp、accessory之间的依赖关系。 + +代码片段如下: + +```c +root { + platfrom { + ... + controller_0x120c1001 :: card_controller { + match_attr = "hdf_audio_driver_1"; + serviceName = "hdf_audio_smartpa_dev0"; + accessoryName = "codec_service_1"; + platformName = "dma_service_0"; + cpuDaiName = "dai_service"; + accessoryDaiName = "accessory_dai"; + dspName = "dsp_service_0"; + dspDaiName = "dsp_dai"; + } + } +} +``` + +**codec_config.hcs中配置私有寄存器** + +与配置在device_info.hcs中codec的deviceMatchAttr匹配,目前配置中包含寄存器配置。 + +绑定控制功能配置主要是将控制功能及其寄存器参数按统一的结构规范,配置在HCS文件中并获取与解析后增加到控制链表中。 + +regConfig:寄存器与控制功能配置组名称。 + +ctrlParamsSeqConfig:控制功能寄存器配置组名称。 + +daiStartupSeqConfig:Dai启动配置配置组名称。 + +daiParamsSeqConfig:播放参数配置组名称。 + +resetSeqConfig:重置过程寄存器配置组名称。 + +initSeqConfig:初始化过程寄存器配置组名称。 + +controlsConfig:控制功能配置组,其中array index(具体业务场景)和 iface(与HAL保持一致)为固定的值。 + +``` +array index +0:Main Playback Volume +1:Main Capture Volume +2:Playback Mute +3:Capture Mute +4:Mic Left Gain +5:Mic Right Gain +6:External Codec Enable +7:Internally Codec Enable +8:Render Channel Mode +9:Captrue Channel Mode +iface +0:virtual dac devic +1:virtual adc device +2:virtual adc device +3:virtual mixer device +4:Codec device +5:PGA device +6:AIAO device +``` + +ctrlParamsSeqConfig:控制功能寄存器配置组,其中item与controlsConfig组中的item位置顺序一一对应,表示某一功能对应的寄存器配置。 + +```c + root { + platfrom { + template codec_controller { + match_attr = ""; + serviceName = ""; + codecDaiName = ""; + } + controller_0x120c1030 :: codec_controller { + match_attr = "hdf_codec_driver"; + serviceName = "codec_service_0"; + codecDaiName = "codec_dai"; + + /* 3516寄存器基地址 */ + idInfo { + chipName = "hi3516"; //codec名字 + chipIdRegister = 0x113c0000; //codec 基地址 + chipIdSize = 0x1000; //codec 地址偏移 + } + + /* 寄存器配置,包含各种寄存器配置信息 */ + regConfig { + /* reg: register address + rreg: register address + shift: shift bits + rshift: rshift bits + min: min value + max: max value + mask: mask of value + invert: enum InvertVal 0-uninvert 1-invert + value: value + */ + + /* reg, value */ + initSeqConfig = [ + 0x14, 0x04000002, + 0x18, 0xFD200004, + 0x1C, 0x00180018, + 0x20, 0x83830028, + 0x24, 0x00005C5C, + 0x28, 0x00130000, + 0x30, 0xFF035A00, + 0x34, 0x08000001, + 0x38, 0x06062424, + 0x3C, 0x1E1EC001, + 0x14, 0x04000002 + ]; + + /* control function config + array index, iface, enable*/ + controlsConfig = [ + 0, 0, 0, + 1, 1, 1, + 2, 0, 1, + 3, 1, 1, + 4, 2, 1, + 5, 2, 1, + 8, 6, 0, + 9, 6, 0, + ]; + /* control function register config + reg, rreg, shift, rshift, min, max, mask, invert, value */ + ctrlParamsSeqConfig = [ + 0x3c, 0x3c, 24, 24, 0x0, 0x57, 0x7F, 1, 0, //"Main Capture Volume" + 0x38, 0x38, 31, 31, 0x0, 0x1, 0x1, 0, 0, //"Playback Mute" + 0x3c, 0x3c, 31, 31, 0x0, 0x1, 0x1, 0, 0, //"Capture Mute" + 0x20, 0x20, 16, 16, 0x0, 0xF, 0x1F, 0, 0, //"Mic Left Gain" + 0x20, 0x20, 24, 24, 0x0, 0xF, 0x1F, 0, 0, //"Mic Right Gain" + 0x2000, 0x2000, 16, 16, 0x0, 0x7, 0x7, 0, 0, //"Render Channel Mode" + 0x1000, 0x1000, 16, 16, 0x0, 0x7, 0x7, 0, 0 //"Captrue Channel Mode" + ]; + + /* 上层下发参数后,写入音频相关信息的寄存器 + reg, rreg, shift, rshift, min, max, mask, invert, value */ + daiParamsSeqConfig = [ + 0x30, 0x30, 13, 13, 0x0, 0x1F, 0x1F, 0, 0x0, // i2s_frequency + 0x1C, 0x1C, 6, 6, 0x0, 0x3, 0x3, 0, 0x0, // adc_mode_sel + 0x30, 0x30, 22, 22, 0x0, 0x3, 0x3, 0, 0x0, // i2s_datawith + ]; + + /* 电源管理功能寄存器配置 + reg, rreg, shift, rshift, min, max, mask, invert, value */ + ctrlSapmParamsSeqConfig = [ + 0x20, 0x20, 23, 23, 0x0, 0x1, 0x1, 0, 0, //LPGA MIC 0 -- connect MIC + 0x20, 0x20, 31, 31, 0x0, 0x1, 0x1, 0, 0, //RPGA MIC 0 -- connect MIC + 0x30, 0x30, 27, 27, 0x0, 0x1, 0x1, 0, 0, //dacl to dacr mixer + 0x30, 0x30, 26, 26, 0x0, 0x1, 0x1, 0, 0 //dacr to dacl mixer + ]; + + /* + 电源管理组件配置 + componentName: 功能名称,{"ADCL", "ADCR", "DACL", "DACR", "LPGA", "RPGA", "SPKL", "SPKR", "MIC"} 数组索引。 + sapmType,compNameIndex,reg, mask,shift,invert, kcontrolNews,kcontrolsNum + */ + sapmComponent = [ + 10, 0, 0x20, 0x1, 15, 1, 0, 0, //ADCL + 10, 1, 0x20, 0x1, 14, 1, 0, 0, //ADCR + 11, 2, 0x14, 0x1, 11, 1, 0, 0, //DACL + 11, 3, 0x14, 0x1, 12, 1, 0, 0, //DACR + 8, 4, 0x20, 0x1, 13, 1, 1, 1, //LPGA + 8, 5, 0x20, 0x1, 12, 1, 2, 1, //RPGA + 15, 6, 0, 0x1, 0, 0, 3, 1, //SPKL + 15, 7, 0, 0x1, 0, 0, 4, 1, //SPKR + 0, 8, 0, 0x1, 0, 0, 0, 0 //MIC + ]; + + /* 电源管理功能配置 + array index, iface, enable + */ + sapmConfig = [ + 0, 5, 1, + 1, 5, 1, + 2, 0, 1, + 3, 0, 1 + ]; + } + } + } +} +``` + +在C代码中读取HCS配置文件来寄存器配置。 + +```c +static int32_t CodecDriverInit(struct HdfDeviceObject *device) +{ + ... + CodecGetConfigInfo(device, &g_codecData) ; + CodecSetConfigInfo(&g_codecData, &g_codecDaiData); + ... + return HDF_SUCCESS; +} +``` + +Codec注册时入参device中已有controller_0x120c1030的节点信息,只需要解析其中的节点就可以获取配置信息。 + +```c +int32_t CodecGetConfigInfo(const struct HdfDeviceObject *device, struct CodecData *codecData) +{ + codecData->regConfig = (struct AudioRegCfgData *)OsalMemCalloc(sizeof(*(codecData->regConfig))); + CodecGetRegConfig(device, codecData->regConfig); + return HDF_SUCCESS; +} +``` + +配置信息获取,配置节点。 + +```c +int32_t CodecGetRegConfig(const struct HdfDeviceObject *device, struct AudioRegCfgData *configData) +{ + ... + drsOps = DeviceResourceGetIfaceInstance(HDF_CONFIG_SOURCE); + ... + idNode = drsOps->GetChildNode(root, "idInfo"); + ParseAudioAttr(drsOps, idNode, &configData->audioIdInfo); + regCfgNode = drsOps->GetChildNode(root, "regConfig"); + ... + DEV_RES_NODE_FOR_EACH_ATTR(regCfgNode, regAttr) { + ... + return HDF_SUCCESS; +} +``` + +regConfig节点中子项的配置信息获取并使用。在框架进行配置文件解析后,可直接替换代码中的寄存器信息。 + +```c +int32_t CodecDeviceInit(struct AudioCard *audioCard, struct CodecDevice *codec) +{ +... + if (CodecRegDefaultInit(codec->devData->regCfgGroup) != HDF_SUCCESS) { + AUDIO_DRIVER_LOG_ERR("CodecRegDefaultInit failed."); + return HDF_FAILURE; + } +... + return HDF_SUCCESS; +} +``` + + + +## Accessory驱动开发实例 + +SmartPA归属于Accessory驱动的一种,开发步骤类似于codec。 + +重要步骤:定义填充一个具体的accesory、实现accesory回调函数、注册绑定到HDF框架、配置HCS和Makefile。 + +### Accessory数据结构填充 + +Accessory模块需要填充如下3个结构体: + +**g_tfa9879Data**:accessory设备操作函数集,其中包含HCS文件中的配置信息,且定义与映射了accessory设备的初始化、读写寄存器的方法函数。 + +**g_tfa9879DaiDeviceOps**:accessory设备DAI的数据集,其中定义与映射了accessory设备的数据访问接口的驱动名、初始化和操作集。 + +**g_tfa9879DaiData**:accessory设备DAI的数据集,其中定义与映射了accessory设备的数据访问接口的驱动名、初始化和操作集。 + +```c +struct AccessoryData g_tfa9879Data = { + .Init = Tfa9879DeviceInit, + .Read = AccessoryDeviceRegRead, + .Write = AccessoryDeviceRegWrite, +}; + +struct AudioDaiOps g_tfa9879DaiDeviceOps = { + .Startup = Tfa9879DaiStartup, + .HwParams = Tfa9879DaiHwParams, +}; + +struct DaiData g_tfa9879DaiData = { + .drvDaiName = "accessory_dai", + .DaiInit = Tfa9879DaiDeviceInit, + .ops = &g_tfa9879DaiDeviceOps, +}; +``` + +### accessoryDevice和accessoryDai设备初始化 + +设备初始化入口函数为Tfa9879DeviceInit,其中主要包括设置SmartPA I2C设备地址,获取配置数据、初始化(含重置)设备寄存器和绑定控制功能配置到控制链表中,当前Demo实现中也包括了Hi3516DV300设备的相关寄存器初始化,如初始化GPIO引脚等。 + +```c +int32_t Tfa9879DeviceInit(struct AudioCard *audioCard, const struct AccessoryDevice *device) +{ + int32_t ret; + ... + g_accessoryTransferData.i2cDevAddr = TFA9879_I2C_DEV_ADDR; // 0x6D + // 获取配置数据 + ret = AccessoryDeviceCfgGet(device->devData, &g_accessoryTransferData); + ... + // 初始化GPIO引脚 + ret = Hi35xxGpioPinInit(); + ... + // 初始化设备寄存器 + ret = AccessoryDeviceCtrlRegInit(); + ... + // 绑定功能控制配置 + ret = AudioAddControls(audioCard, g_accessoryTransferData.accessoryControls, + g_accessoryTransferData.accessoryCfgCtrlCount); + ... +} +``` + +I2C读写寄存器公用函数:AccessoryI2cReadWrite + +```c +int32_t AccessoryI2cReadWrite(struct AudioAddrConfig *regAttr, uint16_t rwFlag) +{ + int32_t ret; + DevHandle i2cHandle; + int16_t transferMsgCount = 1; + uint8_t regs[I2C_REG_LEN]; + struct I2cMsg msgs[I2C_MSG_NUM]; + ... + i2cHandle = I2cOpen(I2C_BUS_NUM); + ... + if (rwFlag == I2C_FLAG_READ) { + transferMsgCount = I2C_MSG_NUM; + } + ret = AccessoryI2cMsgFill(regAttr, rwFlag, regs, msgs); + ... + ret = I2cTransfer(i2cHandle, msgs, transferMsgCount); + ... + AccessoryI2cRelease(msgs, transferMsgCount, i2cHandle); + return HDF_SUCCESS; +} +``` + +### Accessory操作函数集实现 + +AccessoryDeviceRegRead和AccessoryDeviceRegWrite 2个回调函数中,调用I2C读写寄存器公用函数AccessoryI2cReadWrite,读写控制寄存器的值。 + +```c +int32_t AccessoryDeviceRegRead(const struct AccessoryDevice *codec, uint32_t reg, uint32_t *val) +{ + int32_t ret; + struct AudioAddrConfig regAttr; + ... + (void)codec; + regAttr.addr = (uint8_t)reg; + regAttr.value = 0; + ret = AccessoryI2cReadWrite(®Attr, I2C_FLAG_READ); + if (ret != HDF_SUCCESS) { + AUDIO_DRIVER_LOG_ERR("failed."); + return HDF_FAILURE; + } + *val = regAttr.value; + ... + return HDF_SUCCESS; +} + +int32_t AccessoryDeviceRegWrite(const struct AccessoryDevice *codec, uint32_t reg, uint32_t value) +{ + int32_t ret; + struct AudioAddrConfig regAttr; + (void)codec; + regAttr.addr = (uint8_t)reg; + regAttr.value = (uint16_t)value; + ret = AccessoryI2cReadWrite(®Attr, 0); + ... + return HDF_SUCCESS; +} +``` + +Tfa9879DaiStartup为启动时的一些设置,代码片段如下: + +```c +int32_t Tfa9879DaiStartup(const struct AudioCard *card, const struct DaiDevice *device) +{ + int ret; + (void)card; + (void)device; + // 设置SmartPA的工作状态 + ret = Tfa9879WorkStatusEnable(); + ... + return HDF_SUCCESS; +} + +``` + +Tfa9879DaiHwParams为下发播放参数接口函数,代码片段如下: + +```c +int32_t Tfa9879DaiHwParams(const struct AudioCard *card, const struct AudioPcmHwParams *param) +{ + int32_t ret; + uint16_t frequency, bitWidth; + struct DaiParamsVal daiParamsVal; + (void)card; + ... + // 匹配采样率 + ret = AcessoryDeviceFrequencyParse(param->rate, &frequency); + ... + // 匹配位宽 + ret = Tfa9879FormatParse(param->format, &bitWidth); + ... + daiParamsVal.frequencyVal = frequency; + daiParamsVal.formatVal = bitWidth; + daiParamsVal.channelVal = param->channels; // 匹配声道 + ret = AccessoryDaiParamsUpdate(daiParamsVal); + ... + return HDF_SUCCESS; +} +``` + +### Accessory注册绑定到HDF + +此处依赖HDF框架的驱动实现方式,具体流程可参考harmony官方[HDF驱动框架](https://device.harmonyos.com/cn/docs/documentation/guide/driver-hdf-overview-0000001051715456)。 + +填充g_tfa9879DriverEntry结构体,moduleName与device_info.hcs中的moduleName匹配,实现Bind、Init、Release函数指针。 + +drivers/peripheral/audio/chipsets/tfa9879/accessory/src/tfa9879_accessory_adapter.c + +```c +static int32_t Tfa9879DriverBind(struct HdfDeviceObject *device) +{ + (void)device; + AUDIO_DRIVER_LOG_INFO("success!"); + return HDF_SUCCESS; +} + +static int32_t Tfa9879DriverInit(struct HdfDeviceObject *device) +{ + int32_t ret; + ... + // 获取HCS中的配置数据 + ret = AccessoryGetConfigInfo(device, &g_tfa9879Data); + ... + ret = ret = GetServiceName(device); + ... + ret = AudioRegisterAccessory(device, &g_tfa9879Data, &g_tfa9879DaiData); + .... + return HDF_SUCCESS; +} + +/* HdfDriverEntry definitions */ +struct HdfDriverEntry g_tfa9879DriverEntry = { + .moduleVersion = 1, + .moduleName = "CODEC_TFA9879", + .Bind = Tfa9879DriverBind, + .Init = Tfa9879DriverInit, + .Release = NULL, +}; +HDF_INIT(g_tfa9879DriverEntry); +``` + +### HCS配置流程 + +配置过程可参考Codec驱动开发实例[HCS配置流程](#section4115)章节。 + + + +## Platform驱动开发实例 + +在audio驱动开发中,platform为DMA驱动的适配。platform驱动开发主要包含如下几个重要步骤:定义填充一个具体的platform、实现platform回调函数、注册绑定到HDF框架、配置HCS和Makefile。 + +### Platform数据结构填充 + +Platform模块需要填充如下2个结构体: + +**g_platformData**:platform设备私有配置,其中包含platform设备的初始化和操作函数。 + +**g_dmaDeviceOps**:Dma设备操作函数集,包含了DMA一些通用接口的封装。 + +```c +struct AudioDmaOps g_dmaDeviceOps = { + .DmaBufAlloc = Hi3516DmaBufAlloc, // dma内存申请函数接口 + .DmaBufFree = Hi3516DmaBufFree, // dma内存释放函数接口 + .DmaRequestChannel = Hi3516DmaRequestChannel, // dma申请通道函数接口 + .DmaConfigChannel = Hi3516DmaConfigChannel, // dma通道配置函数接口 + .DmaPrep = Hi3516DmaPrep, // dma准备函数接口 + .DmaSubmit = Hi3516DmaSubmit, // dma submit函数接口 + .DmaPending = Hi3516DmaPending, // dma pending函数接口 + .DmaPause = Hi3516DmaPause, // dma 暂停、停止函数接口 + .DmaResume = Hi3516DmaResume, // dma 恢复函数接口 + .DmaPointer = Hi3516DmaPointer, // dma获取当前播放或录音位置函数接口 +}; + +struct PlatformData g_platformData = { + .PlatformInit = AudioDmaDeviceInit, //dma设备初始化接口 + .ops = &g_dmaDeviceOps, +}; +``` + +### dmaDevice设备初始化 + +设备初始化入口函数为AudioDmaDeviceInit,其中主要包括设置3516平台特有的AIAO初始化等。 + +```c +int32_t AudioDmaDeviceInit(const struct AudioCard *card, const struct PlatformDevice *platformDevice) +{ +... + AiaoHalSysInit(); + /* PIN MUX */ + AiaoSysPinMux(); + /* CLK reset */ + AiaoClockReset(); + /* aiao init */ + AiaoDeviceInit(chnId); +... + return HDF_SUCCESS; +} +``` + +### DMA操作函数集实现 + +Dma设备操作函数集,包含了DMA通用接口的封装。如通用接口不能满足开发要求,可自行实现新的DMA回调函数。 + +```c +int32_t Hi3516DmaBufAlloc(struct PlatformData *data, const enum AudioStreamType streamType); +int32_t Hi3516DmaBufFree(struct PlatformData *data, const enum AudioStreamType streamType); +int32_t Hi3516DmaRequestChannel(const struct PlatformData *data); +int32_t Hi3516DmaConfigChannel(const struct PlatformData *data); +int32_t Hi3516DmaPrep(const struct PlatformData *data); +int32_t Hi3516DmaSubmit(const struct PlatformData *data); +int32_t Hi3516DmaPending(struct PlatformData *data); +int32_t Hi3516DmaPause(struct PlatformData *data); +int32_t Hi3516DmaResume(const struct PlatformData *data); +int32_t Hi3516DmaPointer(struct PlatformData *data, uint32_t *pointer); +``` + +### Platform注册绑定到HDF + +此处依赖HDF框架的驱动实现方式,具体流程可参考harmony官方[HDF驱动框架](https://device.harmonyos.com/cn/docs/documentation/guide/driver-hdf-overview-0000001051715456)。 + +填充g_platformDriverEntry结构体,moduleName与device_info.hcs中的moduleName匹配,实现Bind、Init、Release函数指针。 + +drivers/peripheral/audio/chipsets/hi3516dv300/soc/src/hi3516_dma_adapter.c + +```c +static int32_t Hi3516DmaDriverInit(struct HdfDeviceObject *device) +{ +... + OsalMutexInit(&g_platformData.renderBufInfo.buffMutex); + OsalMutexInit(&g_platformData.captureBufInfo.buffMutex); + g_platformData.platformInitFlag = false; + ret = AudioSocRegisterPlatform(device, &g_platformData); +... + return HDF_SUCCESS; +} + +static void Hi3516DmaDriverRelease(struct HdfDeviceObject *device) +{ + struct PlatformHost *platformHost = NULL; +... + platformHost = (struct PlatformHost *)device->service; +... + OsalMutexDestroy(&g_platformData.renderBufInfo.buffMutex); + OsalMutexDestroy(&g_platformData.captureBufInfo.buffMutex); + OsalMemFree(platformHost); +} + +/* HdfDriverEntry definitions */ +struct HdfDriverEntry g_platformDriverEntry = { + .moduleVersion = 1, + .moduleName = "DMA_HI3516", + .Bind = Hi3516DmaDriverBind, + .Init = Hi3516DmaDriverInit, + .Release = Hi3516DmaDriverRelease, +}; +HDF_INIT(g_platformDriverEntry); +``` + +### HCS配置流程 + +配置过程可参考Codec驱动开发实例[HCS配置流程](#section4115)章节。 + + + +## Dai驱动开发实例 + +Dai驱动开发主要包含如下几个重要步骤:定义填充一个具体的dai、实现dai回调函数、注册绑定到HDF框架、配置HCS和Makefile。 + +### Dai数据结构填充 + +Dai模块需要填充如下2个结构体: + +**g_daiData**:dai设备私有配置,其中包含dai设备的初始化、读写寄存器、操作函数。 + +**g_daiDeviceOps**:dai设备操作函数集,包含了dai的参数设置、触发、启动。 + +```c +struct AudioDaiOps g_daiDeviceOps = { + .HwParams = DaiHwParams, + .Trigger = DaiTrigger, + .Startup = DaiStartup, +}; + +struct DaiData g_daiData = { + .DaiInit = DaiDeviceInit, + .Read = AudioDeviceReadReg, + .Write = AudioDeviceWriteReg, + .ops = &g_daiDeviceOps, +}; +``` + +### daiDevice设备初始化 + +设备初始化入口函数为DaiDeviceInit,其中主要包括设置dai的配置信息初始化,添加到Controls等。 + +```c +int32_t DaiDeviceInit(struct AudioCard *audioCard, const struct DaiDevice *dai) +{ +... + struct DaiData *data = dai->devData; + struct AudioRegCfgData *regConfig = dai->devData->regConfig; +... + g_regCodecBase = OsalIoRemap(CODEC_REG_BASE, CODEC_MAX_REG_SIZE); +... + data->regVirtualAddr = (uintptr_t)g_regCodecBase; + DaiSetConfigInfo(data); + AudioAddControls(audioCard, data->controls, data->numControls); + I2c6PinInit(); +... + data->daiInitFlag = true; + return HDF_SUCCESS; +} +``` + +### Dai操作函数集实现 + +AudioDeviceReadReg和AudioDeviceWriteReg在3516平台均未使用,作为接口预留。 + +DaiHwParams中主要完成一些pcm流信息的设置。 + +```c +int32_t DaiHwParams(const struct AudioCard *card, const struct AudioPcmHwParams *param) +{ + uint32_t bitWidth; + struct DaiDevice *device = card->rtd->cpuDai; +... + DaiCheckSampleRate(param->rate); + struct DaiData *data = DaiDataFromCard(card); + data->pcmInfo.channels = param->channels; +... + AudioFramatToBitWidth(param->format, &bitWidth); +... + data->pcmInfo.bitWidth = bitWidth; + data->pcmInfo.rate = param->rate; + data->pcmInfo.streamType = param->streamType; + data->regVirtualAddr = (uintptr_t)g_regDaiBase; +... + DaiParamsUpdate(device); + data->regVirtualAddr = (uintptr_t)g_regCodecBase; + return HDF_SUCCESS; +} +``` + +DaiTrigger在3516平台也未使用,作为接口预留。 + +DaiStartup为dai的启动函数,主要包括更新初始化寄存器配置、配置I2S等。 + +```c +int32_t DaiStartup(const struct AudioCard *card, const struct DaiDevice *device) +{ + struct AudioMixerControl *regCfgItem = NULL; +... + regCfgItem = device->devData->regConfig->audioRegParams[AUDIO_DAI_STARTUP_PATAM_GROUP]->regCfgItem; + itemNum = device->devData->regConfig->audioRegParams[AUDIO_DAI_STARTUP_PATAM_GROUP]->itemNum; + + device->devData->regVirtualAddr = (uintptr_t)g_regDaiBase; + for (int i = 0; i < itemNum; i++) { + int ret = AudioUpdateDaiRegBits(device, ®CfgItem[i], regCfgItem[i].value); + if (ret != HDF_SUCCESS) { + AUDIO_DRIVER_LOG_ERR("set frequency fail."); + return HDF_FAILURE; + } + } + device->devData->regVirtualAddr = (uintptr_t)g_regCodecBase; + + if (I2sPinInit() != HDF_SUCCESS) { + AUDIO_DRIVER_LOG_ERR("I2sPinInit fail."); + } + + return HDF_SUCCESS; +} +``` + +### Dai注册绑定到HDF + +此处依赖HDF框架的驱动实现方式,具体流程可参考harmony官方[HDF驱动框架](https://device.harmonyos.com/cn/docs/documentation/guide/driver-hdf-overview-0000001051715456)。 + +填充g_daiDriverEntry结构体,moduleName与device_info.hcs中的moduleName匹配,实现Bind、Init、Release函数指针。 + +drivers/peripheral/audio/chipsets/hi3516dv300/soc/src/hi3516_dai_adapter.c + +```c +static int32_t DaiDriverBind(struct HdfDeviceObject *device) +{ +... + struct DaiHost *daiHost = (struct DaiHost *)OsalMemCalloc(sizeof(*daiHost)); +... + daiHost->device = device; + device->service = &daiHost->service; + g_daiData.daiInitFlag = false; +... + return HDF_SUCCESS; +} + +static int32_t DaiDriverInit(struct HdfDeviceObject *device) +{ +... + DaiGetConfigInfo(device, &g_daiData); + DaiGetServiceName(device); +... + OsalMutexInit(&g_daiData.mutex); + AudioSocRegisterDai(device, &g_daiData); +... + return HDF_SUCCESS; +} + +static void DaiDriverRelease(struct HdfDeviceObject *device) +{ +... + OsalMutexDestroy(&g_daiData.mutex); +... + struct DaiHost *daiHost = (struct DaiHost *)device->service; +... + OsalMemFree(daiHost); +} + +/* HdfDriverEntry definitions */ +struct HdfDriverEntry g_daiDriverEntry = { + .moduleVersion = 1, + .moduleName = "DAI_HI3516", + .Bind = DaiDriverBind, + .Init = DaiDriverInit, + .Release = DaiDriverRelease, +}; +HDF_INIT(g_daiDriverEntry); +``` + +### HCS配置流程 + +配置过程可参考Codec驱动开发实例[HCS配置流程](#section4115)章节。 + + + +## Makefile中添加编译配置 + +添加新增文件到对应的config中,将其编译链接到内核镜像。 + +标准系统(linux):drivers/adapter/khdf/linux/model/audio/Makefile + +```makefile +obj-$(CONFIG_DRIVERS_HDF_AUDIO_CODEC) += \ +$(KHDF_AUDIO_HI3516DV300_DIR)/../tfa9879/accessory/src/tfa9879_accessory_adapter.o \ +$(KHDF_AUDIO_HI3516DV300_DIR)/../tfa9879/accessory/src/tfa9879_accessory_impl.o \ +$(KHDF_AUDIO_HI3516DV300_DIR)/codec/src/hi3516_codec_adapter.o \ +$(KHDF_AUDIO_HI3516DV300_DIR)/codec/src/hi3516_codec_impl.o \ +$(KHDF_AUDIO_HI3516DV300_DIR)/codec/src/hi3516_codec_ops.o \ +$(KHDF_AUDIO_HI3516DV300_DIR)/dsp/src/dsp_adapter.o \ +$(KHDF_AUDIO_HI3516DV300_DIR)/soc/src/hi3516_dai_adapter.o \ +$(KHDF_AUDIO_HI3516DV300_DIR)/soc/src/hi3516_dai_ops.o \ +$(KHDF_AUDIO_HI3516DV300_DIR)/soc/src/hi3516_aiao_impl.o \ +$(KHDF_AUDIO_HI3516DV300_DIR)/soc/src/hi3516_dma_ops.o \ +$(KHDF_AUDIO_HI3516DV300_DIR)/soc/src/hi3516_dma_adapter.o \ +$(KHDF_AUDIO_HI3516DV300_DIR)/codec/src/hi3516_codec_adapter.o +``` + +小型系统(liteOS):drivers/adapter/khdf/liteos/model/audio/Makefile + +```makefile +LOCAL_SRCS += \ +$(KHDF_AUDIO_HI3516DV300_DIR)/../tfa9879/accessory/src/tfa9879_accessory_adapter.c \ +$(KHDF_AUDIO_HI3516DV300_DIR)/../tfa9879/accessory/src/tfa9879_accessory_impl.c \ +$(KHDF_AUDIO_HI3516DV300_DIR)/codec/src/hi3516_codec_adapter.c \ +$(KHDF_AUDIO_HI3516DV300_DIR)/codec/src/hi3516_codec_impl.c \ +$(KHDF_AUDIO_HI3516DV300_DIR)/codec/src/hi3516_codec_ops.c \ +$(KHDF_AUDIO_HI3516DV300_DIR)/dsp/src/dsp_adapter.c \ +$(KHDF_AUDIO_HI3516DV300_DIR)/soc/src/hi3516_dai_adapter.c \ +$(KHDF_AUDIO_HI3516DV300_DIR)/soc/src/hi3516_dai_ops.c \ +$(KHDF_AUDIO_HI3516DV300_DIR)/soc/src/hi3516_aiao_impl.c \ +$(KHDF_AUDIO_HI3516DV300_DIR)/soc/src/hi3516_dma_ops.c \ +$(KHDF_AUDIO_HI3516DV300_DIR)/soc/src/hi3516_dma_adapter.c +``` + + + +## 源码结构与目录 + +实现驱动接口头文件中的函数。以Hi3516为例,目录架构如下: + +驱动实现示例代码路径:drivers\peripheral\audio\chipsets\ + +``` +├── hi3516dv300 +│   ├── codec +│   │   ├── include +│   │   │   ├── hi3516_codec_impl.h +│   │   │   └── hi3516_codec_ops.h +│   │   ├── src +│   │   │   ├── hi3516_codec_adapter.c // codec驱动入口 +│   │   │   ├── hi3516_codec_impl.c // codec硬件相关操作实现 +│   │   │   └── hi3516_codec_ops.c // codec驱动函数接口实现 +│   │   └── test +│   │   └── unittest +│   ├── dsp +│   │   └── include +│   │   └── dsp_ops.h +│   │   └── src +│   │   └── dsp_adapter.c // dsp驱动入口 +│   │   └── dsp_ops.c +│   └── soc +│   ├── include +│   │   ├── hi3516_aiao_impl.h +│   │   ├── hi3516_dai_ops.h +│   │   └── hi3516_dma_ops.h +│   ├── src +│   │   ├── hi3516_aiao_impl.c +│   │   ├── hi3516_dai_adapter.c //dai驱动入口 +│   │   ├── hi3516_dai_ops.c +│   │   ├── hi3516_dma_adapter.c //dma驱动入口 +│   │   └── hi3516_dma_ops.c +│   └── test +│   └── unittest +└── tfa9879 +    └── accessory +    ├── include +    │   └── tfa9879_accessory_impl.h +    └── src +    ├── tfa9879_accessory_adapter.c // accessory驱动入口 +    └── tfa9879_accessory_impl.c +``` + +hcs文件与目录 + +``` +标准系统: +vendor/hisilicon/Hi3516DV300/ +└── hdf_config + └── khdf + ├── audio + │   ├── audio_config.hcs + │   ├── codec_config.hcs + │   ├── dai_config.hcs + │   ├── dma_config.hcs + │   └── dsp_config.hcs + ├── device_info + │   └── device_info.hcs + └── hdf.hcs + +小型系统: +vendor/hisilicon/hispark_taurus/ +├── config.json +└── hdf_config + ├── audio + │   ├── audio_config.hcs + │   ├── codec_config.hcs + │   ├── dai_config.hcs + │   ├── dma_config.hcs + │   └── dsp_config.hcs + ├── device_info + │   └── device_info.hcs + └── hdf.hcs +``` + + + +# 使用HAL的开发步骤与实例 + +## HAL模块使用步骤 + +![](figure/HAL流程图.jpg) + +1)使用入口函数GetAudioManagerFuncs()获取函数方法。 + +2)获取所支持的声卡信息GetAllAdapters(),加载对应的声卡LoadAdapter()。 + +3)创建播放类CreateRender()或者录音类,下发音频文件音频相关属性。 + +4)调用创建好的播放类中挂载的方法调用render->control.Start()、render->RenderFrame()进行下发开始命令,音频数据循环下发。 + +5)播放过程中可调用其他控制命令对播放业务进行控制操作,例如调节音量、暂停、静音等render->control.Pause()、 render->control.Resume()、 render->volume.SetVolume()。 + +6)播放业务完成后,下发停止命令、销毁播放类、卸载声卡。 + +render->control.Stop(); + +adapter->DestroyRender(); + +manager->UnloadAdapter(); + +## HAL使用实例 + +```c +#include +#include +#include "audio_types.h" +#include +#include "audio_manager.h" + + /* so动态库引用打开 */ +char *soPathHdi = "/system/lib/libhdi_audio.z.so"; +void *g_handle = dlopen(soPathHdi , 1); + +int32_t FrameStart(void *param) +{ +... + /* 循环进行下发音频数据 */ + do { + readSize = (remainingDataSize > bufferSize) ? bufferSize : remainingDataSize; + numRead = fread(frame, 1, readSize, g_file); + if (numRead > 0) { + ret = render->RenderFrame(render, frame, numRead, &replyBytes); + if (ret == HDF_ERR_INVALID_OBJECT) { + LOG_FUN_ERR("Render already stop!"); + break; + } + remainingDataSize -= numRead; + } + /* 暂停等待函数 */ + while (g_waitSleep) { + printf("music pause now.\n"); + pthread_cond_wait(&g_functionCond, &g_mutex); + printf("music resume now.\n"); + } + } while (!g_closeEnd && numRead > 0 && remainingDataSize > 0); +... +} + +static void *hal_main() +{ + /* 映射入口函数及调用 */ + struct AudioManager *(*getAudioManager)() = + (struct AudioManager *(*)())(dlsym(g_handle, "GetAudioManagerFuncs")); + struct AudioManager *manager = getAudioManager(); + + /* 获取声卡列表 */ + struct AudioAdapterDescriptor *descs = NULL; + int32_t size = 0; + int32_t ret = manager->GetAllAdapters(manager, &descs, &size); + + /* 根据用户指定的声卡名称和端口描述进行匹配声卡及端口 */ + enum AudioPortDirection port = PORT_OUT; // 端口类型为OUT,放音 + struct AudioPort renderPort; + char * adapterNameCase = "usb"; + int32_t index = SwitchAdapter(descs, adapterNameCase, port, &renderPort, size); + + /* 根据匹配到的声卡信息进行加载声卡 */ + struct AudioAdapter *adapter = NULL; + struct AudioAdapterDescriptor *desc = &descs[index]; // 根据匹配到的声卡信息获取对应设备 + manager->LoadAdapter(manager, desc, &adapter); //加载声卡,获取声卡方法实例 + + /* 创建播放类 */ + struct AudioRender *render; + struct AudioDeviceDescriptor devDesc; + struct AudioSampleAttributes attrs; + InitDevDesc(&devDesc, renderPort.portId); //初始化设置设备参数 + WavHeadAnalysis(g_file, &attrs); // 解析音频文件设置Attributes + adapter->CreateRender(adapter, &devDesc, &attrs, &render); + + /* 下发音频数播放 */ + render->control.Start((AudioHandle)render); // 下发控制命令start,准备动作 + pthread_create(&g_tids, NULL, (void *)(&FrameStart), &g_str); // 起线程进行播放 + + /* 控制命令 */ + render->control.Pause((AudioHandle)render); // 下发进行暂停操作 + render->control.Resume((AudioHandle)render); // 恢复操作 + render->volume.SetVolume((AudioHandle)render, 0.5); // 设置音量 + + /* 停止播放,销毁播放类 */ + render->control.Stop((AudioHandle)render); + adapter->DestroyRender(adapter, render); + /* 卸载声卡 */ + manager->UnloadAdapter(manager, adapter); +} +``` + + + +# 总结 + +以上就是基于Audo驱动框架进行移植开发过程中,所涉及的所有关键适配点。重点介绍了 audio驱动适配方法、HDI层接口使用方法。开发者可以根据不同芯片进行适配,方便简单。希望通过本次的文档,您能初步掌握基于HDF框架的audio驱动开发。 + + + +OpenHarmony 网站 + +https://www.openharmony.io/ + +OpenHarmony 主库组织地址 + +https://gitee.com/openharmony + +OpenHarmony SIG 组织地址 + +https://gitee.com/openharmony-sig + +OpenHarmony 三方库组织地址 + +https://gitee.com/openharmony-tpc + +OpenHarmony 在线交流平台 + +https://zulip.openharmony.cn/ + +OpenHarmony 社区贡献指南 + +https://gitee.com/openharmony/docs/blob/master/zh-cn/contribute/%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AE.md + +OpenHarmony Dev 邮件列表 + +dev@openharmony.io + +订阅链接 + +https://lists.openatom.io/postorius/lists/dev.openharmony.io/ \ No newline at end of file diff --git "a/zh-cn/device-dev/driver/figure/ADM\345\220\257\345\212\250\346\265\201\347\250\213\345\233\276.png" "b/zh-cn/device-dev/driver/figure/ADM\345\220\257\345\212\250\346\265\201\347\250\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..de6b5b83af3c1e66e7b3dd2b3bdcc8c95d79111c GIT binary patch literal 31482 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

$9D5@u?R2mGPnSHnV(7AM| zpg=ce`SpbU>o*hn7Nz%OGz>X6hJPwdb30Gx@l$NMwk|lTNEyjY&&v9^rlzVomD*Gb zsA@&MAag(m#lp&R%+QXejmQ@tA8ghpl*^$LhR?}{SC5!gCKg2$=C}1hx=v+xO3vQd zBpL#7W@f>@4?i|G_R8)Gd-d}|$}R#34r+0&*s0vuvZXN5DOsRcq5!xY9=m%b6Z~jq zd|bECZ*S}xBU}X+F^{V8N>t%wNk>pY7x6s$>cH>Xz0@~&zW=M{y0q2xBQysNVtFqN{UMJxu2ixaeH=@d9eSz++#$XZFPf1<@#rzM{bZ`#;2&?=$qZf85d?Pf) zgPUZfG8+1GtWOxSlKw|hxMl^WI&f! zOhCXf{Zr;MN6PBx`{N?;AjLcvesvX9)xeeM>nX9105lPrg|GrdQFn>pP@V%oU3x5l zh2pNpLv*n$eqbUfi$CChu`F7DWLdO$lHwSp?e87`nG4!-f^5<-TuO&8_fkN6aCRAG z(Ub?f+;>flHkDYawSI50eu|)sq{s~Q_V)VhTvUk4QUMOC9Fk{?Ea^CzW<6uViH-NE z2^U`bY+4^3f^S5o@9}Dcxl49AuOW#R6cg-J8F!Zv;WVu@+bvF?L=_)mOH-RPcl z*Sj=Rdt#7YPwMFD*1j-9H!@Uy-sVi`u&7k}6OwO&rA|1*l^daxjUo|>@5wpF`{EzJUAH4yJON*Z9%Ov8XnxqeX3<<&R1`5aGScucsV1Uizv_|TxW+?3s>4W!23APP zpVC(L4hlLa7%d|sL#=FdH2^P}mIEF&y@Jq5B#9LT_?OybvwB(p5P*xP}7;^z!Z&jZ)i7WmR-Itk;=G{ zIVNR9kmG%TmiYY5WG0=WrY?``tObzrt+r=$_<<|W4H@(42Z4lI2AIuWESfY4WWQOm z8R2nMdD41lNOU=y4!1cFwb&!w^^JhEKn*PAvACPUvd_8CK?A@lSgynYa#+q{2 z(+q072t1Js>*Z_zDNJA<%O84*#WpHB5eKeFL+O!aw)eZtB^0q9?(Vl5Dk&bVVFHBW z?Whzja84vzLLx}JJe6uiu);6hMyb$%q;jw3qaS|UIowRVOi95Cx6#rB`Lx8uN>=U1 zO2J^H5J*-3sQYxyPEY4cVNd>li#GqMegxEiipC*>LqnOFne_obpe-dTdr0{z14J13tvImnZ5;2^ zu8a6~*8ahPf$%w^>fA;h0{%}#zowx>*}{_&sUDQ=iUX-bgqi3^f{nAQDdE>qcqc0Y zEM2mGt9_&?h7W+yHMn-@$0?+*wJ1VP9B`|m30Tm^;`jFU_V@4K`^Zo+so^HyjW$Gt zh9pGx10q(a0qgh&G0Cazxs27;(x}Y0c>*&}%0OOi8O^PCp|&}`fwq`Wz1UhOIU6-$%e`s7yHcDZ_X8%7g2AyE}3GE44>s%;``kq`vc@{{yWi-Z$4HA|#iZLxdMvlp?a1GiuN3~czo30Al+2-x0Q zO{Vw_tTVbPBJLdl^L1+y30zCcgQY{_<>5u2&v1`F3Qlw0wjH;zWEP>AG(No5EamMA z;5~N&)eOiGW}C62fKMkdq#iIB~|=&2m=4wf-`Af2l%LOa&HPuyU(}kRR>a2cZ={ zas!RuehQHLdTkZQ21iSGEE-5lvobRyHW-toH@U~}3@A|#^!PMP=<{EIah3(OA3kyO zM3y)vfyzI?tgGS!NNGA?drubmtP~-tHW7rkKbo=FGvah+O_KTi9|hEZEr34wvpNfK z7zhLyF6b>F>gyC@3N?5ih*@_9&=I_T0K_bl0&O4*BI2w|^-l1=j`knRseg|Ld?Ewt zw)RlwM<=u~Mw1Q1si_@% literal 0 HcmV?d00001 diff --git "a/zh-cn/device-dev/driver/figure/ADM\346\222\255\346\224\276\346\265\201\347\250\213\345\233\276.png" "b/zh-cn/device-dev/driver/figure/ADM\346\222\255\346\224\276\346\265\201\347\250\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..c94407d31b5d76567f051addd3c8ad541ebf5401 GIT binary patch literal 60550 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 btzGh6AG~|?F!o#C^mpI*fB)El|MmX|017yy literal 0 HcmV?d00001 diff --git "a/zh-cn/device-dev/driver/figure/HAL\346\265\201\347\250\213\345\233\276.jpg" "b/zh-cn/device-dev/driver/figure/HAL\346\265\201\347\250\213\345\233\276.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..8e1525eecb94ef7cb4f04b76b0c2848d04001074 GIT binary patch literal 120610 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 Cen5c$ literal 0 HcmV?d00001 diff --git "a/zh-cn/device-dev/driver/figure/\345\274\200\345\217\221\346\265\201\347\250\213\345\233\2762.png" "b/zh-cn/device-dev/driver/figure/\345\274\200\345\217\221\346\265\201\347\250\213\345\233\2762.png" new file mode 100644 index 0000000000000000000000000000000000000000..9ddea508b5ffffb5d4b77d1eb1cf29cf63d5471a GIT binary patch literal 3023 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 Date: Wed, 17 Nov 2021 16:49:19 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E3=80=90Audio=E3=80=91=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: vb6174 --- zh-cn/device-dev/driver/Readme-CN.md | 1 + 1 file changed, 1 insertion(+) diff --git a/zh-cn/device-dev/driver/Readme-CN.md b/zh-cn/device-dev/driver/Readme-CN.md index a5b29873e75..bca386d0fca 100755 --- a/zh-cn/device-dev/driver/Readme-CN.md +++ b/zh-cn/device-dev/driver/Readme-CN.md @@ -34,3 +34,4 @@ - [SENSOR](driver-peripherals-sensor-des.md) - [WLAN](driver-peripherals-external-des.md) - [USB](driver-peripherals-usb-des.md) + - [AUDIO](driver-peripherals-audio-des.md) \ No newline at end of file -- Gitee From 0fd29f1c018ffcc4a5604001d51212b9afca038e Mon Sep 17 00:00:00 2001 From: vb6174 Date: Thu, 18 Nov 2021 01:40:05 +0000 Subject: [PATCH 3/3] update zh-cn/device-dev/driver/driver-peripherals-audio-des.md. --- zh-cn/device-dev/driver/driver-peripherals-audio-des.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/zh-cn/device-dev/driver/driver-peripherals-audio-des.md b/zh-cn/device-dev/driver/driver-peripherals-audio-des.md index b963b4e78f0..894b548ef11 100644 --- a/zh-cn/device-dev/driver/driver-peripherals-audio-des.md +++ b/zh-cn/device-dev/driver/driver-peripherals-audio-des.md @@ -57,10 +57,7 @@ # Audio驱动框架介绍 -Audio驱动框架基于[HDF驱动框架](https://device.harmonyos.com/cn/docs/documentation/guide/driver-hdf-overview-0000001051715456)实现。 - -Audio驱动架构组成: - +Audio驱动框架基于[HDF驱动框架](https://device.harmonyos.com/cn/docs/documentation/guide/driver-hdf-overview-0000001051715456)实现。Audio驱动架构组成: ![](figure/Audio框架图.png) 驱动架构主要由 Audio HDI,HDI adapter,Audio Interface Lib,ADM(Audio Driver Model,音频驱动模型),Platform Driver 这几部分组成。 @@ -85,7 +82,7 @@ Audio驱动架构组成: # Audio驱动开发步骤 -下面先讲解audio驱动的ADM框架;再以hi3516dv300平台为例,对所需实现具体驱动开发步骤进行介绍。 +以下将基于Audio驱动框架,并以hi3516dv300平台为例,介绍相关驱动开发的具体步骤。 ## Audio ADM模块框架介绍 audio驱动对HDI层提供三个服务hdf_audio_render、hdf_audio_capture、hdf_audio_control。开发板dev目录下audio驱动服务节点如下: -- Gitee