RK3588开发板Android14 6.1.99 适配 LT9211 MIPI-LVDS 模块手记

原创 作者 forlinx 2026-03-17 15:25:00 RK3588开发板 屏幕适配

作者简介 我是燕南无声,拥有十二年嵌入式开发经验,长期深耕 ARM 架构嵌入式平台开发,专注系统底层定制、软硬件适配优化、源码编译、开发环境搭建与底层驱动开发。在工业级嵌入式场景中,长期负责产品落地、问题定位与系统稳定性优化,擅长用容器等工具解决复杂开发环境冲突,能够高效处理各类嵌入式底层与应用适配问题。

适配背景与平台特性分析

适配背景

我正在基于飞凌嵌入式RK3588开发板,做Android14系统(内核版本6.1.99)下的工业级显示方案开发,需要完成LT9211 MIPI转LVDS模块的适配,配套1280×800分辨率的LVDS屏幕与GT911触摸屏,核心目标是稳定点亮屏幕并实现正常触控功能。

RK3588开发板

适配前的平台特性分析

瑞芯微RK3588平台的Android14 BSP,显示框架采用标准DRM架构,MIPI DSI桥接芯片的适配,核心离不开三个闭环环节:驱动正确编译进内核、设备树硬件资源无冲突配置、显示时序与屏幕参数完全匹配。

在动手修改前,我先通过编译环境命令确认了内核配置的分层规则:OK3588-Android14的内核配置由rockchip_defconfig(芯片级)、android-14.config(系统级)、OK3588-C-Android.config(板级)三个文件组成。所有板级自定义配置必须放在第三个文件中,避免后续SDK升级时配置被覆盖,这是工业级开发必须遵守的版本兼容规则。

具体适配实施步骤

一、驱动层部署

1. LT9211驱动文件与Makefile配置

LT9211是龙讯的MIPI转LVDS桥接芯片,属于DRM bridge类驱动,必须放在对应驱动目录下才能被框架正确识别。

将lt9211.c驱动文件拷贝到kernel-6.1/drivers/gpu/drm/bridge目录下,修改同目录的Makefile文件,在文件末尾添加编译配置,确保驱动被编译进内核镜像。

Makefile
# 原有配置保留,末尾新增如下内容
obj-y += lt9211.o

完整上下文参考:

Makefile
27 obj-$(CONFIG_DRM_SIMPLE_BRIDGE)      += simple-bridge.o
28 obj-$(CONFIG_DRM_THINE_THC63LVD1024) += thc63lvd1024.o
29 obj-$(CONFIG_DRM_TOSHIBA_TC358762)   += tc358762.o
30 obj-$(CONFIG_DRM_TOSHIBA_TC358764)   += tc358764.o
31 obj-$(CONFIG_DRM_TOSHIBA_TC358767)   += tc358767.o
32 obj-$(CONFIG_DRM_TOSHIBA_TC358768)   += tc358768.o
33 obj-$(CONFIG_DRM_TOSHIBA_TC358775)   += tc358775.o
34 obj-$(CONFIG_DRM_I2C_ADV7511)        += adv7511/
35 obj-$(CONFIG_DRM_TI_DLPC3433)        += ti-dlpc3433.o
36 obj-$(CONFIG_DRM_TI_SN65DSI83)       += ti-sn65dsi83.o
37 obj-$(CONFIG_DRM_TI_SN65DSI86)       += ti-sn65dsi86.o
38 obj-$(CONFIG_DRM_TI_TFP410)          += ti-tfp410.o
39 obj-$(CONFIG_DRM_TI_TPD12S015)       += ti-tpd12s015.o
40 obj-$(CONFIG_DRM_NWL_MIPI_DSI)       += nwl-dsi.o
41 obj-$(CONFIG_DRM_ITE_IT66121)        += ite-it66121.o
42 obj-y                                 += lt8912b.o
43
44 obj-y                                 += analogix/
45 obj-y                                 += cadence/
46 obj-y                                 += imx/
47 obj-y                                 += lt9211.o

2. 内核配置修改

本次适配配套的是GT911触摸屏,需要在内核中启用Goodix系列触控驱动。按照之前确认的配置分层规则,修改板级配置文件kernel-6.1/kernel/configs/OK3588-C-Android.config,添加如下配置:

Plain Text
# 原有配置保留,新增如下内容
CONFIG_TOUCHSCREEN_GOODIX=y

完整上下文参考:

Plain Text
CONFIG_TOUCHSCREEN_EDT_FT5X06=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_SND_SOC_NAU8822=y
CONFIG_NET_VENDOR_INTEL=y
CONFIG_R8169=y
CONFIG_E1000E=y
CONFIG_RTC_DRV_PCF8563=y
CONFIG_RTC_DRV_RX8010=y
CONFIG_NXPWIFI=m
CONFIG_VIDEO_OV5645=y
CONFIG_USB_SERIAL_EXAR=y
CONFIG_TOUCHSCREEN_GOODIX=y

二、设备树硬件资源配置

设备树修改路径为kernel-6.1/arch/arm64/boot/dts/rockchip/OK3588-C-Common.dtsi,本次适配以MIPI0通道为例。所有原有冲突配置均采用注释方式保留,不直接删除,方便后续回滚与排查。

1. 新增触控引脚节点定义

原设备树中ft5x06触控节点占用了本次GT911所需的GPIO引脚,先注释原有节点,新增GT911的中断、复位引脚复用配置,避免引脚资源冲突。

Plain Text
    usb-typec {
        usbc0_int: usbc0-int {
            rockchip,pins = <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
        };
        typec5v_pwren0: typec5v-pwren0 {
            rockchip,pins = <0 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
        };
        usbc1_int: usbc1-int {
            rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
        };
        typec5v_pwren1: typec5v-pwren1 {
            rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
        };
    };
    tp_int {
        gt911_dsi1_gpio: gt911-dsi0-gpio {
            rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>,
                            <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
        };
    };
    /* 原ft5x06节点注释,避免引脚冲突 */
    /*
    ft5x06_dsi0_gpio: ft5x06-dsi0-gpio {
        rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>,
                        <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
    };
    */
    ft5x06_dsi1_gpio: ft5x06-dsi1-gpio {
        rockchip,pins = <3 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>,
                        <3 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
    };
    headphone {
        hp_det: hp-det {
            rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
        };
    };
};

2. I2C2节点新增设备配置

LT9211与GT911均挂在I2C2总线上,在&i2c2节点下新增两个设备的节点配置,同时注释原有冲突的ft5x06设备节点。

Plain Text
    extio: tca6424@23 {
        compatible = "ti,tca6424";
        reg =;
        interrupt-parent = <&gpio1>;
        interrupts =;
        gpio-controller;
        #gpio-cells =;
        interrupt-controller;
        #interrupt-cells =;
        pinctrl-0 = <&extio_int_gpio>;
        pinctrl-names = "default";
        status = "okay";
    };
    /* 原ft5x06节点注释,保留作为参考 */
    /*
    ft5x06_dsi0: ft5x06@38 {
        compatible = "edt,edt-ft5406", "edt,edt-ft5x06";
        reg =;
        pinctrl-names = "ft5x06_default";
        pinctrl-0 = <&ft5x06_dsi0_gpio>;
        interrupt-parent = <&gpio3>;
        interrupts =;
        // irq-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
        // reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
        touchscreen-size-x =;
        touchscreen-size-y =;
        input-phy = "ft5x06 2 38/input0";
        status = "okay";
    }
    */
    usbc0: fusb302@22 {
        compatible = "fcs,fusb302";
        reg =;
        interrupt-parent = <&gpio1>;
        interrupts =;
        pinctrl-names = "default";
        pinctrl-0 = <&usbc0_int>;
        vbus-supply = <&vbus5v_typec>;
        status = "okay";
    };
    /* LT9211 MIPI转LVDS桥接芯片设备节点 */
    lt9211: lt9211@2d {
        compatible = "lontium,lt9211";
        reg =;
        // reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>; 
        status = "okay";
    };
    /* GT911触摸屏设备节点 */
    gt911_14: gt911_14_ts@14 {
        compatible = "goodix,gt911";
        reg =;
        pinctrl-names = "default";
        pinctrl-0 = <>911_dsi1_gpio>;
        interrupt-parent = <&gpio3>;
        interrupts =;
        irq-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
        // reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
        touchscreen-size-x =;
        touchscreen-size-y =;
        // touchscreen-inverted-x; 
        // touchscreen-inverted-y; 
        touchscreen-swapped-x-y;
        status = "okay";
    };
};

3. DSI节点屏参修改

替换&dsi0节点原有的1024×600时序配置,适配本次1280×800分辨率LVDS屏幕的时序参数,所有参数需要严格对应屏幕规格书,避免出现黑屏、花屏问题。

Plain Text
/* 原有1024×600时序配置注释,保留参考 */
/*
disp_timings0: display-timings {
    native-mode = <&dsi0_timing0>;
    dsi0_timing0: timing0 {
        hback-porch     =;
        hfront-porch    =;
        hactive         =;
        hsync-len       =;
        vback-porch     =;
        vfront-porch    =;
        vactive         =;
        vsync-len       =;
        clock-frequency =;
        vsync-active    =;
        hsync-active    =;
        de-active       =;
        pixelclk-active =;
    };
};
*/
/* 新增1280×800 LVDS屏对应时序配置 */
disp_timings0: display-timings {
    native-mode = <&dsi0_timing0>;
    dsi0_timing0: timing0 {
        hback-porch     =;
        hfront-porch    =;
        hactive         =;
        hsync-len       =;
        vback-porch     =;
        vfront-porch    =;
        vactive         =;
        vsync-len       =;
        clock-frequency =;
        vsync-active    =;
        hsync-active    =;
        de-active       =;
        pixelclk-active =;
    };
};

三、内核编译与烧录

为提高验证效率,无需全量编译Android系统,使用命令单独编译内核,编译完成后生成的boot.img镜像位于rockdev/Image-ok3588_c/目录下,单独烧录该镜像即可完成适配。

Bash
# 进入SDK根目录
cd /home/forlinx/work/OK3588-android14-source/
# 加载编译环境,选择对应产品分支
source build/envsetup.sh;lunch ok3588_c-userdebug
# 单独编译内核并生成boot镜像
./build.sh -Ku

验证与经验总结

按照上述步骤完成修改与编译后,将生成的boot.img烧录至飞凌嵌入式RK3588开发板,上电后可正常点亮1280×800分辨率的LVDS屏幕,Android14系统桌面完整显示,GT911触摸屏触摸响应正常,无漂移、断触现象,连续72小时开机测试无显示异常。

这次适配的核心经验,在于瑞芯微平台Android高版本的DRM显示框架适配,必须严格遵循SDK的配置分层规则,板级自定义配置不能侵入芯片级与系统级配置文件,这是保证后续SDK可升级、方案可维护的核心;同时MIPI转LVDS桥接芯片的适配,驱动、设备树、时序三个环节必须形成闭环,任何一个参数的偏差都可能导致显示异常。工业级产品的开发,从来不是能点亮就结束,保留完整的参考配置、做好版本兼容、保证长期稳定性,才是嵌入式开发的根本。

咨询立即获得专属报价

华北区负责人二维码

华北区负责人

华东区负责人二维码

华东区负责人

华南区负责人二维码

华南区负责人

中西区负责人二维码

中西区负责人

相关产品 >

  • FET3588-C核心板

    RK3588芯片系列是Rockchip推出的旗舰级工业级产品,采用先进的8nm制程工艺,集成4核Cortex-A76+4核Cortex-A55架构,A76主频高达2.4GHz,A55核主频高达1.8GHz,能够提供强大的性能支撑。飞凌FET3588-C核心板经过了严苛的环境温度测试和压力测试,确保在高端应用中能够稳定运行。您可以通过飞凌提供的rk3588开发套件充分评估和验证其性能。

    了解详情
    FET3588-C核心板
  • OK3588-C开发板

    rk3588系列板卡是飞凌嵌入式基于国产瑞芯微旗舰级 RK3588处理器开发设计,集成了四核Cortex-A76和四核Cortex-A55,性能强大,可通过rk3588开发板产品简介了解了rk3588功能特点,评估芯片性能参数,飞凌为RK3588提供了丰富的参考资料,包括rk3588原理图、使用手册、应用笔记等,为便于客户对开发套件的参考,rk3588开发板做了多重防护设计,像静电、浪涌、脉冲群等,产品稳定可靠,值得推荐。

    了解详情
    OK3588-C开发板
  • FET3576-C核心板

    飞凌嵌入式RK3576核心板集成了强大的处理器和丰富的接口,提供出色的计算能力和扩展性。RK3576核心板以其卓越的性能、低功耗和稳定性,成为工业、AIoT、边缘计算、智能移动终端等领域的理想选择。无论是数据处理还是边缘计算,RK3576都能为项目提供强大的硬件支持。核心板推荐选择飞凌嵌入式瑞芯微系列RK3576J业级核心板、RK3576高性能核心板 了解详情
    FET3576-C核心板
  • OK3576-C开发板

    RK3576开发板CPU选用瑞芯微RK3576,采用核心板+底板分体式设计,采用4个100Pin板对板连接器的方式将处理器的功能引脚以最便利的方式全部引出,并针对不同的功能做了深度优化,方便用户二次开发的同时简化用户设计,为您的项目提供良好的评估及设计依据。RK3576是瑞芯微专为AIoT市场打造的一款高算力、高性能、低功耗的国产化应用处理器,集成了4个ARM Cortex-A72和4个 ARM Cortex-A53高性能核;内置6TOPS超强算力NPU;嵌入式3D GPU加之带有MMU的专用2D硬件引擎,最大限度提升显示性能;H.265超清硬解码,最高支持8K分辨率。 了解详情
    OK3576-C开发板

推荐阅读 换一批 换一批