Skip to main content

RK628 显示转换芯片开发指南

本文档基于瑞芯微官方文档 Rockchip_Developer_Guide_RK628_For_All_Porting_CN.pdf(V2.6, 2024-08-06)整理,介绍 RK628 系列显示转换芯片的 For-All 驱动配置与调试方法。

适用范围
  • 芯片型号:RK628D / RK628F / RK628H
  • 驱动框架:Display 通路基于 MISC 框架(drivers/misc/rk628/),HDMI IN 通路基于 V4L2 框架(drivers/media/i2c/rk628/
  • 读者对象:技术支持工程师、软件开发工程师

一、概述

RK628 是 Rockchip 的显示转换芯片,支持多种视频输入输出格式转换。

输入支持: RGB / BT1120 / HDMI 输出支持: RGB / BT1120 / LVDS / GVI / DSI / CSI / HDMI

1.1 RK628D 主要规格

Video InputTypical ResolutionTypical Format
HDMI IN4K@30YUV420(4K@60) / YUV422 / YUV444 / RGB888
BT1120 IN1080P@60YUV422 8bit
RGB IN1080P@60RGB888
Video OutputTypical ResolutionTypical Format
GVI OUT4K@60RGB888
MIPI CSI4K@30YUV422 8bit
MIPI DSI1080P@60 / 2.5K@60RGB888
LVDS OUT720P@60 / 1080P@60RGB888
BT1120 OUT1080P@60YUV422 8bit
RGB OUT1080P@60RGB888
HDMI OUT1080P@60RGB888/YUV444 8bit

1.2 RK628F 主要规格

相比 RK628D,RK628F 在 HDMI IN 支持更高规格:

Video InputTypical Resolution
HDMI IN4K@60
BT1120 IN1080P@60
RGB IN1080P@60

HDMI IN 支持格式:RGB888 / YUV422 8bit / YUV422 10bit / YUV420 8bit (>4K@30Hz) / YUV420 10bit (>4K@30Hz)

1.3 RK628H 主要规格

1.4 RK628F/H vs RK628D 改进

  • HDMI IN 支持更高分辨率和更多格式
  • 支持双 MIPI 模式(RK628F/H)
  • 更多功能优化

二、驱动架构

2.1 Display 通路(MISC 驱动)

代码路径: drivers/misc/rk628/

  • 支持 RGB / BT1120 / HDMI 输入
  • 支持 RGB / BT1120 / LVDS / GVI / DSI / HDMI 输出
  • 基于 DRM 框架

2.2 HDMI IN 通路(Media 驱动)

代码路径: drivers/media/i2c/rk628/

  • 支持 HDMI 输入
  • 支持 CSI / BT1120 输出
  • 基于 V4L2 框架

两套代码相互独立,可单独编译运行。


三、驱动移植说明

3.1 Display 通路

U-Boot 驱动

drivers/video/drm/rk628

Kernel 驱动

drivers/misc/rk628

3.2 HDMI IN 通路

drivers/media/i2c/rk628

四、SOC 与 RK628 I2C 通信

RK628 通过 I2C 接口与 SOC 通信,配置寄存器。


五、Misc 驱动(Display 通路)

5.1 MISC 驱动介绍

5.1.1 驱动移植说明

5.1.2 U-Boot 驱动目录结构

5.1.3 Kernel 驱动目录结构

5.1.4 驱动 DTS 配置总览

5.2 驱动核心配置

5.2.1 RK628 节点配置

rk628: rk628@34 {
compatible = "rockchip,rk628";
reg = <0x34>;
// ...
};

5.2.2 24MHz 工作时钟配置

RK628 需要 24MHz 工作时钟,可来自外部晶振或 SOC 的时钟输出。

5.2.3 输入输出模块选择

通过 DTS 配置输入源和输出目标。

5.2.4 Panel 端配置

5.2.5 不同显示组合通路应用

5.3 输入模块配置

5.3.1 RGB 输入

RGB 输入配置

5.3.2 BT1120 输入

BT1120 输入配置

5.3.3 HDMI 输入

HDMI 输入配置
与 SOC 直连模式
HDMI 线缆连接模式
音频配置

5.4 输出模块配置

5.4.1 RGB 输出

RGB 输出配置

5.4.2 BT1120 输出

BT1120 输出配置

5.4.3 DSI 输出

DSI 输出配置

5.4.4 LVDS 输出

LVDS 输出配置

支持 VESA/JEIDA 格式,单通道/双通道。

5.4.5 GVI 输出

GVI 输出配置
输出信号调节
RK628F GVI 测试型号列表

5.4.6 HDMI 输出

HDMI 输出配置
音频配置

5.5 目前 DTS 支持的几种组合

  • RGB → DSI 转换
  • RGB → LVDS 转换
  • RGB → GVI 转换
  • RGB → HDMI 转换
  • HDMI → DSI 转换
  • HDMI → LVDS 转换
  • HDMI → GVI 转换

5.6 基础调试命令

5.6.1 寄存器调试节点

cat /sys/bus/i2c/devices/0-0034/regmap

5.6.2 自测模式命令

RK628 内置自测模式,可输出测试图案。

5.6.3 RGB IN 调试命令(仅 RK628F/H 支持)

5.7 显示常见问题处理

5.7.1 没有生成 regmap 节点

  • 检查 I2C 地址是否正确
  • 检查供电是否正常

5.7.2 I2C 通信异常

  • 检查 I2C 引脚配置
  • 测量 I2C 信号

5.7.3 DSI 或 GVI 显示有内容但花屏

  • 检查数据格式配置
  • 检查 lane 顺序和极性

5.7.4 提高 clock-frequency 后 DSI 无法显示

  • 检查带宽是否足够
  • 调整 PHY 参数

5.7.5 显示有偏移问题

  • 检查时序参数
  • 调整 HBP/HFP/VBP/VFP

5.7.6 如何操作 RK628 的 GPIO

通过 regmap 读写 GPIO 控制寄存器。


六、Media 驱动(HDMI IN 通路)

6.1 驱动介绍

6.1.1 RK628F/H 对比 RK628D 改进

6.1.2 驱动目录结构

6.1.3 驱动移植说明

6.2 HDMI IN VIDEO 框架说明

6.2.1 HDMI IN APK 工作流程

6.2.2 RK628 驱动架构

6.3 DTS 配置说明

6.3.1 RK628 节点配置

6.3.2 图像接收链路组合

6.3.3 HDMI2CSI 链路

RK628D
RK628F/H

6.3.4 HDMI2DSI 转换

RK628D
RK628F/H

6.3.5 HDMI2BT1120 转换

6.4 开启 HDCP 功能

6.5 开启 Scaler 功能

6.6 CSI 支持 2 lanes

6.7 连续 MIPI 模式与非连续 MIPI

6.8 双 MIPI 模式配置(仅 RK628F/H 支持)

6.8.1 双 MIPI split 模式说明

6.8.2 双 MIPI 模式配置

RK628F/H 配置
SOC 驱动代码版本要求

6.9 不同芯片平台的接收能力

6.9.1 配置 ISP 超频的方法

6.9.2 配置 ISP 使用 CMA 内存的方法

6.10 EDID 的配置方法

6.11 camera3_profiles.xml 配置

6.12 HDMI IN APK 适配方法

Android 9/10/11 版本

Android 12+ 版本

6.13 常用驱动调试方法

6.13.1 调试工具获取

6.13.2 调试命令举例

6.13.3 打开 log 开关

6.13.4 寄存器读写

6.13.5 读取 HDMI-RX 状态信息

6.13.6 设置 pattern 输出

6.14 音频模块介绍

6.14.1 HDMIRX

6.14.2 HDMITX

6.14.3 音频常见问题处理

  1. I2S 没有输出
  2. 使能打印 v4l2_dbg
  3. 应用录音数据杂音问题
  4. 直接设置 IOMUX
  5. tmdsclk 计算错误
  6. 设置 GPIO 输出 test clk
  7. RK356X 的 IOMUX 特殊处理
  8. RK3399 的 LRCK 特殊处理
  9. HDMI-IN 声卡选择错误

6.15 常见问题排查方法

问题排查方向
clk det 异常检查输入时钟信号
HDMI RX 状态异常检查 HDMI 连接和信号
Open subdev 权限异常检查设备权限配置
信号识别不到检查 HDMI 源和线缆
显示异常检查分辨率、格式配置
显示只有一半画面检查双 MIPI 配置、lane 映射
抓图失败检查内存、分辨率配置
APK 打开失败检查应用权限、驱动绑定
DTS 连接到 rkcif 预览失败检查链路配置
RK628 GPIO 操作通过 regmap 操作寄存器
声卡注册失败检查 I2S 配置、DTS

七、常见需求处理

7.1 RK628 24M 晶振来自其他 SOC 的配置方式

当 RK628 的 24MHz 时钟由 SOC 提供时:

RK3399 添加 24M 支持

RK3288 添加 24M 支持

RK356X 添加 24M 支持

7.2 双 RK628 支持

HDMI2CSI + HDMI2CSI 支持

  • 注意事项
  • Kernel DTS 配置
  • Android 配置

HDMI2CSI + HDMI2DSI 支持

  • Kernel DTS 配置
  • Android 配置

参考资料

  • 原始文档:Rockchip_Developer_Guide_RK628_For_All_Porting_CN.pdf V2.6
  • 《Rockchip_DRM_RK628_Porting_Guide_CN.pdf》
  • 《Rockchip_MCU_RK628D_Porting_Guide_CN.pdf》
  • 《Rockchip_RK628D_Application_Notes_CN.pdf》
  • 瑞芯微官网:www.rock-chips.com