1. Rockchip 平台 HDMI 简介
Rockchip 各平台的 HDMI 功能如下:
功能 | RK3288 | rk3368 | RK322X | RK3328 | RK3399 |
最大输出分辨率 | 3840x2160 | 4096x2160 | 4096x2160 | 4096x2160 | 4096x2160 |
隔行模式 | N | N | Y | Y | Y |
4K-60/50Hz 支持的颜色 | RGB
YCbCr444
YCbCr422
YCbCr420(只有RK3288W支持) | YCbCr420 | YCbCr420 | YCbCr420 | RGB YCbCr444 YCbCr422 YCbCr420 |
是否支持10bit 色深 | Y | N | Y | Y | Y |
Rockchip 平台采用 FB 和 DRM 两种显示框架。与此相对应, HDMI 也有两套驱动。
FB:
LINUX 3.10 内核主要采用传统的 FB 框架, HDMI 驱动的路径为:
kernel/drivers/video/rockchip/hdmi/
DRM:
DRM 全称是 Direct Rendering Manager 是 DRI ( Direct Rendering Infrastructure ) 框架的一个组件。LINUX 4.4/4.19 内核采用 DRM 框架, HDMI 驱动的路径为:
kernel/drivers/gpu/drm/rockchip/dw_hdmi-Rockchip.c
kernel/drivers/gpu/drm/rockchip/inno_hdmi.c
kernel/drivers/gpu/drm/bridge/synopsys/
2. FB 框架 HDMI 介绍
2.1 HDMI 功能软件配置
2.1.1 使能 HDMI
在板级 dts 文件中添加以下内容即可使能 HDMI:
&hdmi {
status = "okay";
};
2.1.2 使能 CEC
在板级 dts 文件的 hdmi 节点里添加 rockchip,cec_enable = <1> ,例如:
&hdmi {
status = "okay";
rockchip,cec_enable = <1>;
};
RK3368 由于 CEC CLOCK 对精度的要求,还需要做以下修改:
--- a/arch/arm64/boot/dts/rk3368.dtsi
+++ b/arch/arm64/boot/dts/rk3368.dtsi
@@ -614,7 +614,7 @@
<&i2s_pll &clk_gpll>, <&spdif_8ch_pll &clk_gpll>,
<&i2s_2ch_pll &clk_gpll>, <&usbphy_480m &usb
OTG_480m_out>, <&clk_uart_pll &clk_gpll>,
<&aclk_gpu &clk_cpll>,
- <&clk_cs &clk_gpll>, <&clk_32k_mux &pvtm_clkout>;
+ <&clk_cs &clk_gpll>, <&clk_32k_mux &xin32k>;
rockchip,clocks-init-rate = <&clk_gpll 576000000>, <&clk_core_b
......
更多详细内容请下载附件查看