RV1126适配3

原创 2026-03-26 09:31:00

作者:燕南无声,十二年嵌入式开发经验,长期深耕ARM架构嵌入式平台开发,专注系统底层定制、软硬件适配优化、源码编译、开发环境搭建与底层驱动开发。在工业级嵌入式场景中,长期负责产品落地、问题定位与系统稳定性优化。

近期在基于 飞凌嵌入式OK1126B-S开发板(瑞芯微RV1126核心设计)进行项目开发时,需要完成龙迅(Lontium)LT8912B芯片的MIPI转HDMI功能适配。这是嵌入式终端显示输出扩展的常见需求,核心是完成驱动的部署编译与设备树的硬件挂载、显示参数配置。飞凌嵌入式OK1126B-S开发板采用工业级设计标准,目录结构规范、硬件设计稳定可靠,为嵌入式开发者提供了理想的开发平台,大幅简化了第三方外设适配工作。

OK1126B-S开发板LT8912B MIPI转HDMI适配测试场景

在按照常规适配流程完成基础配置后,出现了屏幕无显示且HDMI输出端提示"不能显示此视频模式,请将电脑重新设置为1920X1080"的问题,遂开展针对性的问题排查与适配优化。

问题定位:HDMI端明确提示视频模式不兼容,这类问题在MIPI转HDMI适配中多源于 驱动支持的显示模式与设备树配置的显示分辨率、时序参数不匹配。结合RV1126平台的DRM显示框架特性,该平台的显示输出由驱动层提供模式支持,设备树层配置具体的显示时序与分辨率,二者必须严格对应才能完成正常的显示初始化。

基于此,先核查已完成的适配配置步骤,确认驱动部署与设备树硬件挂载的流程无问题,再聚焦到显示模式的匹配性上,最终定位到核心问题:LT8912B的驱动文件lt8912_cp.c中,默认仅启用了1280×800这一种显示模式,而设备树中初始配置的是1920×1080分辨率,导致驱动无法识别并初始化对应的显示模式,进而出现屏幕不亮的兼容问题。

完整适配解决方案

针对上述原因,结合OK1126B-S开发板 6.1.141 Buildroot系统的特性,整理了完整的适配解决思路,分步骤完成驱动部署、编译配置、设备树硬件挂载与显示参数匹配,具体步骤如下:

1
部署LT8912B驱动文件

将龙迅LT8912B的驱动文件 lt8912_cp.c放置到飞凌嵌入式RV1126B开发板源码的OK1126B-linux-source/kernel/drivers/gpu/drm/bridge/目录下,该目录是平台DRM显示框架中桥接芯片驱动的标准存放路径,也符合瑞芯微RV1126内核的驱动目录规范。

注:lt8912_cp.c文件可联系在线客服索取
2
修改Makefile纳入驱动编译

驱动文件部署好后,编辑kernel/drivers/gpu/drm/bridge/目录下的Makefile文件,只需要在文件末尾添加如下编译指令,内核编译时将lt8912_cp.c驱动文件纳入内核编译流程,确保编译内核时能生成对应的驱动模块:

# 加入LT8912B MIPI转HDMI驱动编译
obj-y += lt8912_cp.o
3
设备树添加LT8912B硬件节点

驱动编译的问题解决了,接下来就是设备树的配置。参照OK1126B-S平台的OK1126B-S-common.dtsi设备树文件,在 i2c3节点下添加LT8912B的设备节点,完成芯片与i2c3总线的硬件绑定与挂载。由于LT8912B拥有三个i2c地址,设备树中暂配置0x01,核心i2c地址由内核驱动函数动态添加,节点配置如下:

&i2c3{
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&i2c3m1_pins>;
    // 龙迅LT8912B MIPI转HDMI设备节点
    lt8912: lt8912@1 {
        compatible = "lontium,lt8912";
        reg = <0x01>;
        i2c-bus = <&i2c3>;
        reset-gpios = <&gpio4 RK_PB1 GPIO_ACTIVE_LOW>;
        status = "okay";
    };
};
设备树配置示意图
设备树i2c3节点配置示意图
4
修改显示设备树匹配驱动显示模式

之前的黑屏问题,主要原因就是分辨率不匹配,编辑OK1126B-S-display.dtsi设备树文件,将显示时序配置修改为 1280×800,与lt8912_cp.c驱动默认支持的显示模式匹配,具体的显示时序参数配置如下:

disp_timings0: display-timings {
    native-mode = <&panel_1280x800>;
    panel_1280x800: timing0 {
        hback-porch = <10>;
        hfront-porch = <100>;
        hactive = <1280>;
        hsync-len = <10>;
        vback-porch = <1>;
        vfront-porch = <2>;
        vactive = <800>;
        vsync-len = <20>;
        clock-frequency = <71000000>;
        /* Approximate 71 MHz for ~60Hz with these timings */
        vsync-active = <0>;
        hsync-active = <0>;
        de-active = <0>;
        pixelclk-active = <0>;
    };
};
显示时序参数配置示意图
5
重新编译内核完成适配

完成上述所有文件修改后,在RV1126开发板的Buildroot编译环境中执行内核编译指令,将驱动与设备树的修改编译到内核镜像中,编译完成后将新内核烧录至开发板上,这次的MIPI转HDMI适配,就算真正完成了。

验证测试结果

开机测试,打开RV1126B开发板,LT8912B MIPI转HDMI功能已经实现正常适配,屏幕顺利点亮,之前烦人的视频模式报错再也没有出现。通过开发板终端执行指令验证适配结果,均得到符合预期的反馈:

  1. 执行 i2cdetect -y 3,可在i2c3总线中检测到LT8912B设备,确认硬件挂载成功;
  2. 执行 dmesg | grep 8912,可看到驱动正常的初始化日志,核心日志如下:
[4.964730] LT8912 ID:12,b2
[4.964736] LT8912:Start Initialization...
[5.222233] LT8912:Setting Mode 1280x800
[5.705876] LT8912:Releasing Reset (0xFF)...
[5.806216] LT8912: Enabling HDMI...
[5.806543] LT8912:Init Done.
驱动初始化日志验证截图

技术总结

本次在OK1126B-S平台上完成LT8912B MIPI转HDMI功能适配,再次印证了嵌入式底层开发中的核心原则: 驱动与设备树必须严格匹配。尤其对于显示类桥接芯片,驱动层支持的显示模式与设备树中配置的时序参数,是实现正常输出的关键。

ARM架构嵌入式平台的外设适配过程中,如果遇到硬件已成功挂载但功能无法正常工作的情况,优先排查驱动与设备树的参数一致性是最高效的定位思路,重点核对分辨率、显示时序、引脚配置及总线参数等内容。

飞凌这款OK1126B-S开发板,目录结构规范、硬件设计稳定可靠,大幅简化了本次适配工作,堪称嵌入式开发者理想的开发平台。

同时,在适配第三方桥接芯片时,需重点留意原厂驱动的默认配置——部分驱动默认仅开启基础功能模式,建议优先通过修改设备树或驱动配置进行适配,而非盲目改动驱动源码。这样既能提升适配效率,也能避免因随意修改源码引入新的稳定性问题。针对瑞芯微RV1126这类工业级芯片平台,严格遵循其DRM显示框架规范进行驱动与设备树配置,是保证显示功能稳定、兼容的基础。

咨询立即获得专属报价

华北区负责人二维码

华北区负责人

华东区负责人二维码

华东区负责人

华南区负责人二维码

华南区负责人

中西区负责人二维码

中西区负责人

推荐阅读 换一批 换一批