文章目录
- 前言
- 一、适配内容概述
- 二、适配步骤
-
- 1. HAL层配置修改
-
- 1.1 添加声卡名称识别 (`audio_hw.c`)
- 1.2 注册声卡路由配置 (`config_list.h`)
- 1.3 定义路由配置表 (`es8388_config.h`)
- 2. 内核设备树修改
-
- 2.1 禁用默认声卡
- 2.2 配置ES8388声卡节点
- 2.3 配置I2C和Codec节点
- 2.4 配置I2S接口
- 2.5 配置Pinctrl
- 3. 内核驱动微调
- 三、完整补丁
- 总结
前言
随着嵌入式设备的不断发展,音频功能的适配和调试成为了开发过程中的重要环节。本文记录了在RK3568开发板上定制的ES8388音频编解码器添加支持的完整过程,包括内核设备树配置、驱动修改以及Android HAL层的适配。
一、适配内容概述
本次适配主要针对基于ES8388音频编解码器的音频板。由于该硬件设计与Rockchip原版参考设计存在差异,耳机的通道OUT1接了SPK,而SPK的通道OUT2接了耳机。如下图:
所以需要在原有ES8388驱动的基础上,新增一个特定的设备配置,并确保Android音频 HAL能够正确识别和控制该设备。
主要修改点包括:
- HAL层配置:在Android的tinyalsa_hal中添加新的声卡名称和路由配置。
- 内核设备树:禁用默认的RK809声卡,配置ES8388的I2C、I2S和GPIO控制引脚。
- 内核驱动:对多功能编解码器驱动进行微调,增加调试信息。
二、适配步骤
1. HAL层配置修改
主要修改了