1. RK3588平台概述
1.1 RK3588芯片特性
RK3588是瑞芯微推出的旗舰级SoC,采用8nm制程工艺,集成四核Cortex-A76与四核Cortex-A55的大小核架构,主频最高可达2.4GHz。该芯片专为高性能嵌入式显示、边缘计算、智能交互等场景设计,在显示驱动开发中需要重点关注其多媒体与显示子系统能力。
| 特性类别 | 具体参数 | 驱动开发关注点 |
|---|---|---|
| CPU | 4×Cortex-A76 + 4×Cortex-A55 | 多核调度影响显示刷新线程 |
| GPU | Mali-G610 MP4 | GPU合成与显示叠加层交互 |
| NPU | 6 TOPS算力 | AI画质增强可复用显示管线 |
| 显示接口 | HDMI 2.1 / DP 1.4 / eDP / LVDS / MIPI DSI | 多接口复用与时钟同步 |
| 视频编解码 | 8K@60fps解码 / 8K@30fps编码 | 解码帧直接送显的路径优化 |
| 内存带宽 | LPDDR4X / LPDDR5,最高32GB | 帧缓冲带宽影响LVDS高分辨率刷新 |
驱动开发提示: RK3588的显示控制器支持4路独立显示通道,LVDS通常挂载在VP2或VP3上,与MIPI DSI共用部分PHY资源,移植时需确认管脚复用关系。
1.2 显示子系统架构
RK3588的显示子系统采用VOP (Video Output Processor) 架构,包含多个显示通路、图层混合器、时序控制器和物理接口层。理解该架构是LVDS驱动移植的基础。
架构要点: LVDS驱动移植主要涉及VP2/VP3 → 图层混合器 → TCON → TXPHY1 这条路径。VOP驱动负责配置图层格式和显示模式,PHY驱动负责LVDS信号电气特性。
1.3 LVDS接口硬件特性
RK3588集成的LVDS接口支持单通道/双通道模式,兼容JEIDA和VESA两种数据映射格式。在嵌入式工业显示、医疗设备、车载仪表等场景中,LVDS因其抗干扰能力强、传输距离远而被广泛使用。
1.3.1 电气特性与信号定义
| 参数项 | 规格值 | 说明 |
|---|---|---|
| 通道数 | 1~2通道 (Single/Dual Link) | 双通道支持更高分辨率 |
| 每通道数据对 | 4对差分数据 + 1对差分时钟 | TX0~TX3 + TXCLK |
| 差分电压 | 250~450 mV (典型350 mV) | 由PHY寄存器控制摆幅 |
| 共模电压 | 1.2V (典型) | 需匹配接收端共模范围 |
| 最大像素时钟 | 单通道85 MHz / 双通道170 MHz | 对应分辨率约WUXGA(1920×1200) |
| 数据映射格式 | VESA / JEIDA 可配置 | 通过寄存器位切换 |
1.3.2 数据映射格式对比
LVDS每个时钟周期传输7位数据,4对数据线在一个时钟周期内共传输28位。对于24位RGB(8:8:8),需要额外4位控制信号(HSync、VSync、DE、保留位)。
1.3.3 时钟与同步时序
LVDS接口的时序参数直接影响显示稳定性。RK3588的TCON模块通过配置CRTC (CRTC_TIMING) 寄存器组来生成精确的H/V同步信号。关键时序参数包括:
- HBP (Horizontal Back Porch):行同步后肩,典型值 48~88 像素时钟
- HFP (Horizontal Front Porch):行同步前肩,典型值 4~32 像素时钟
- HSW (Horizontal Sync Width):行同步脉宽,典型值 2~64 像素时钟
- VBP/VFP/VSW:垂直方向对应的后肩、前肩、脉宽参数
- Pixel Clock:像素时钟频率,由PLL分频产生,需匹配LVDS带宽
常见移植陷阱: RK3588的LVDS PHY在初始化时需要按照上电序列操作:先使能VOP时钟 → 配置TCON时序 → 初始化PHY(设置摆幅、预加重)→ 使能LVDS输出 → 最后给屏供电。顺序错误可能导致屏闪、花屏或无法点亮。
1.4 LVDS与MIPI DSI的管脚复用关系
RK3588的TXPHY1同时支持LVDS和MIPI DSI,通过GRF (General Register File) 中的IOMUX寄存器选择工作模式。以下是复用管脚对应关系:
| PHY管脚 | LVDS模式 | MIPI DSI模式 | GRF配置位 |
|---|---|---|---|
| TXPHY1_D0P/N | LVDS_TX0 (数据通道0) | DSI_D0P/N | GRF_IOMUX[2:0]=000 |
| TXPHY1_D1P/N | LVDS_TX1 (数据通道1) | DSI_D1P/N | GRF_IOMUX[2:0]=001 |
| TXPHY1_D2P/N | LVDS_TX2 (数据通道2) | DSI_CLKP/N | GRF_IOMUX[2:0]=010 |
| TXPHY1_D3P/N | LVDS_TX3 (数据通道3) | DSI_D3P/N | GRF_IOMUX[2:0]=011 |
| TXPHY1_CLKP/N | LVDS_CLK (时钟通道) | DSI_D2P/N | GRF_IOMUX[2:0]=100 |
驱动移植关键: 在设备树中通过
rockchip,grf 和 phy-grf 节点配置IOMUX,确保LVDS模式使能。同时需要在PHY驱动中调用 phy_set_mode() 接口切换到LVDS模式,否则PHY默认工作在MIPI状态。