一、HCS 配置管理
HCS(HDF Configuration Source)是 HDF 驱动框架的配置描述参数文件,内容以 Key-Value 为主要形式。它实现了配置代码与驱动代码解耦,便于开发者进行配置管理。 HC-GEN(HDF Configuration Generator)是 HCS 配置转换工具,可以将 HDF 配置文件转换为软件可读取的文件格式。本文不涉及 HC-GEN,假设我们配置好 HCS, 利用其给定的接口可以访问对应设备节点的参数。
HCS 和硬件板卡直接相关,服务于 HDF 驱动框架。下面以一个模拟耳机插拔检测的驱动程序为例,从开发的角度逐步展开说明。
二、应用举例
第一步,找到 HDF 系统相关总入口 hdf.hcs 文件,在 audio 位置新增加 audio/analog_headset_config.hcs 参数文件,系统在加载的时候会读取该参数文件。
.\vendor\hihope\rk3568\hdf_config\khdf\hdf.hcs
#include "device_info/device_info.hcs"
......
#include "audio/audio_config.hcs"
#include "audio/codec_config.hcs"
#include "audio/dai_config.hcs"
#include "audio/dma_config.hcs"
#include "audio/dsp_config.hcs"
#include "audio/analog_headset_config.hcs" // 新增加文件
......
#include "lcd/lcd_config.hcs"
root {
module = "rockchip,rk3568_chip";
}
第二步,新增加的文件放到对应子模块的目录下
headset_info 就是耳机插拔检测用到的硬件信息,关键是 headset_gpio
.\vendor\hihope\rk3568\hdf_config\khdf\audio\analog_headset_config.hcs
root {
platform {
template headset_info {
match_attr = "";
serviceName = "";
}
headset :: headset_info {
match_attr = "analog_headset_attr";
serviceName = "analog_headset_service";
vendor = 0x0001;
product = 0x0001;
version = 0x0100;
dev_name = "rk809_analog_headset";
headset_gpio = 115;
headset_gpio_flag = 0;
mic_switch_gpio = 0;
hp_mic_io_value = 0;
main_mic_io_value = 1;
headset_wakeup = 1;
hook_gpio = 0;
adc_controller_no = 0;
adc_channel = 0;
hook_down_type = 0;
}
}
}
第三步,这个功能需要在 audio 关键模块加载之后加载
在 device_info.hcs 中找到 audio::host 主机节点,配置好服务策略、优先级、加载策略(按时还是按需)、模块名称为驱动加载的名称,服务名称则指向 analog_headset_config.hcs 中的服务名称。模块名称错误驱动程序将不会被加载,服务名称错误则读取参数失败,可能导致驱动程序异常。
关于服务策略、优先级、加载策略在后面描述。
.\vendor\hihope\rk3568\hdf_config\khdf\device_info\device_info.hcs
audio :: host {
hostName = "audio_host";
priority = 110;

最低0.47元/天 解锁文章
3591

被折叠的 条评论
为什么被折叠?



